CP4D 4.8 Webクライアントで従来のログインを使いたい時は


Cloud Pak for Data (CP4D) バージョン4.8では、CP4D をインストールすると、IBM Cloud Pak foundational services Identity Management Serviceによって提供される LDAP 統合を使用するように自動的に構成されます。

バージョン4.7.x までのように、CP4Dによって提供される LDAP 統合を使用する場合は、こちらの手順を実行する必要があります。

https://www.ibm.com/docs/ja/cloud-paks/cp-data/4.8.x?topic=iims-configuring-cloud-pak-data-use-embedded-ldap-integration


::: note alert
組み込み LDAP 統合は推奨されません。 このタスクは、 Identity Management Serviceによって提供される推奨 LDAP 統合を採用する準備ができていない場合にのみ実行してください。
:::

## CP4D 4.8 インストール直後のログイン画面

CP4D 4.8 インストール直後に、`cpd-cli manage get-cpd-instance-details` コマンドで取得した `CPD Url` にアクセスするとこちらのログイン画面が表示されます。
![login1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/3a0e2c6c-553e-b33c-4791-6d196590219b.png)

この画面から、同じく `cpd-cli manage get-cpd-instance-details` コマンドで取得したデフォルト資格情報（ユーザー名はcpadmin）を使用すると、ログインできますが、`IDプロバイダー` 画面になります。
＊推奨 LDAP 構成を完了しないと、通常の CP4D ホームページ画面を表示できません。

![IDProvider1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/e49fc34c-d70e-552f-c722-68dd6267ff79.png)



## 参考) CP4D 4.8で設定されるroute

CP4D 4.8では、4.7までに比べて、インストール中に作成されるrouteが増えています。`cpd-cli manage get-cpd-instance-details` コマンドで取得できる `CPD Url` は `cp-console` という名前のrouteに示されるURLで、こちらは「組み込み LDAP 統合を使用するための Cloud Pak for Data の構成」を実行しても変更されません。 `cp-console` という名前のrouteに示されるURLにアクセスすると常に上の「IBM Cloud Pak にログイン」画面が表示されます。

CP4Dインストール直後の `oc get route` の出力例：
```
NAME                    HOST/PORT                                                                                                  PATH                        SERVICES                       PORT                   TERMINATION          WILDCARD
cp-console              cp-console-cpd.clustername.location.containers.appdomain.cloud   /                           common-web-ui                  3000                   reencrypt/Redirect   None
cpd                     cpd-cpd.clustername.location.containers.appdomain.cloud                                      ibm-nginx-svc                  ibm-nginx-https-port   reencrypt/Redirect   None
id-mgmt                 cp-console-cpd.clustername.location.containers.appdomain.cloud   /idmgmt/                    platform-identity-management   4500                   reencrypt/Redirect   None
platform-auth           cp-console-cpd.clustername.location.containers.appdomain.cloud   /v1/auth/                   platform-identity-provider     4300                   reencrypt/Redirect   None
platform-id-auth        cp-console-cpd.clustername.location.containers.appdomain.cloud   /idauth                     platform-auth-service          9443                   reencrypt/Redirect   None
platform-id-provider    cp-console-cpd.clustername.location.containers.appdomain.cloud   /idprovider/                platform-identity-provider     4300                   reencrypt/Redirect   None
platform-login          cp-console-cpd.clustername.location.containers.appdomain.cloud   /login                      platform-identity-provider     4300                   reencrypt/Redirect   None
platform-oidc           cp-console-cpd.clustername.location.containers.appdomain.cloud   /oidc                       platform-auth-service          9443                   reencrypt/Redirect   None
saml-ui-callback        cp-console-cpd.clustername.location.containers.appdomain.cloud   /ibm/saml20/defaultSP/acs   platform-auth-service          9443                   reencrypt/Redirect   None
social-login-callback   cp-console-cpd.clustername.location.containers.appdomain.cloud   /ibm/api/social-login       platform-auth-service          9443                   reencrypt/Redirect   None
```

## CP4D ホームページ画面を表示するには

cpd という名前のrouteに表示されるURLにアクセスすると、同様に「IBM Cloud Pak にログイン」画面が表示されますが、`cpd-cli manage get-cpd-instance-details` コマンドで取得したデフォルト資格情報（ユーザー名はcpadmin）でログインすると、CP4D ホームページ画面が表示されます。
![login3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/2cbf47c6-1c65-1e90-7751-7ad5b4e6a26f.png)

## 組み込み LDAP 統合を使用するための構成

CP4D ホームページ画面にて、管理 > アクセス制御画面からユーザーを追加できますが、CP4D 4.8 のデフォルト状態では、`IDプロバイダー` から選択してユーザーを追加することしかできません。

![ユーザー追加画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/230435b0-9f4a-f1b4-87ef-8b1ac70786dd.png)

[組み込み LDAP 統合を使用するための Cloud Pak for Data の構成](https://www.ibm.com/docs/ja/cloud-paks/cp-data/4.8.x?topic=iims-configuring-cloud-pak-data-use-embedded-ldap-integration) をすることにより、バージョン4.7.x までのように、CP4Dによって提供される LDAP 統合を使用することができるようになります。

https://www.ibm.com/docs/ja/cloud-paks/cp-data/4.8.x?topic=iims-configuring-cloud-pak-data-use-embedded-ldap-integration

実行例：
（実行内容の説明は上のリンク先をご参照ください。）

```
# ${OC_LOGIN}

# export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})

# oc patch cm product-configmap \
> --namespace=${PROJECT_CPD_INST_OPERANDS} \
> --type=merge -n ${PROJECT_CPD_INST_OPERANDS} \
> --patch '{"data": {"zen_native_auth": "enabled"}}'
configmap/product-configmap patched

# oc rollout restart deployment usermgmt \
> --namespace=${PROJECT_CPD_INST_OPERANDS}
Warning: would violate PodSecurity "restricted:v1.24": seccompProfile (pod or container "usermgmt-container" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
deployment.apps/usermgmt restarted

# oc rollout restart deployment zen-core \
> --namespace=${PROJECT_CPD_INST_OPERANDS}
Warning: would violate PodSecurity "restricted:v1.24": allowPrivilegeEscalation != false (containers "zen-objstore-init-container", "zen-objstore-mirror-container" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers "zen-objstore-init-container", "zen-objstore-mirror-container" must set securityContext.capabilities.drop=["ALL"]), seccompProfile (pod or containers "zen-objstore-init-container", "zen-core-container", "zen-objstore-mirror-container" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
deployment.apps/zen-core restarted

# ADMIN_PASSWORD=$(oc get secret admin-user-details -n=${PROJECT_CPD_INST_OPERANDS} -o 'jsonpath={.data.initial_admin_password}' | base64 -d)

# AUTH_TOKEN=$(curl -k -H "username: admin" -H "password: ${ADMIN_PASSWORD}" https://${CPD_ROUTE}/v1/preauth/validateAuth 2> /dev/null | jq -r '.accessToken')

# CPADMIN_PASSWORD=XXXXXXXXX

# curl --insecure --location --request PUT "https://${CPD_ROUTE}/api/v1/usermgmt/v1/user/cpadmin" \
> --header "Content-Type: application/json" \
> --header "Authorization: Bearer ${AUTH_TOKEN}" \
> --data @- << EOF
> {
>   "username": "cpadmin",
>   "authenticator": "default",
>   "password": "${CPADMIN_PASSWORD}"
> }
> EOF
{"uid":"1000331001","_messageCode_":"success","message":"success"}

# unset ADMIN_PASSWORD
# unset AUTH_TOKEN
# unset CPADMIN_PASSWORD

```

この構成をすることにより、管理 > アクセス制御画面 は次のようになり、独自のユーザーを追加できるようになります。
![ユーザー追加画面b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/ef29949e-2d43-f75b-ece7-81aa6ebbbfbb.png)

また、この構成の後は、`cpd` という名前のrouteに表示されるURLにアクセスすると、従来のログイン画面「ログイン先: IBM Cloud Pak for Data」が表示されるようになります。
そして、この画面からは、ユーザー名 cpadmin のパスワードは`CPADMIN_PASSWORD`で設定したものでログインします。
![login2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/e0c3b7dd-d399-7a37-f2ff-09e9fdc13c51.png)



:::note alert
組み込み LDAP 統合は推奨されません。推奨 LDAP 統合を採用する準備ができ次第、推奨 LDAP 統合に移行してください。
:::