ベアラー・トークンの生成
ZenApiKey 許可トークンを使用できないまれなシナリオでは、 IBM Cloud Pak for Data 資格情報を使用してベアラー・トークンを生成できます。 ベアラー・トークンを使用して、 IBM Cloud Pak for Data API に対する認証を行い、 IBM Cloud Pak for Data エンドポイントにアクセスできます。
このタスクについて
トークンと API キーは、許可検査の対象になります。 API エンドポイントの呼び出しは、プラットフォームおよびサービスで付与されている役割と許可によって異なります。
API キーを使用して認証を行い、ベアラー・トークンを生成する場合は、まず API キーを生成します。 詳しくは、『認証用の API キーの生成』を参照してください。
手順
- Red Hat®
OpenShift®ユーザー名とパスワードで認証するが、 OpenShiftユーザー名に接頭部
IAM#が含まれていない場合は、roksUserPrefixパラメーターを空の値で更新して、必要な接頭部を削除する必要があります。- 以下のコマンドを実行して、認証カスタム・リソース (CR) から
roksUserPrefixを直接更新します。oc patch Authentication.operator.ibm.com example-authentication \ --type=merge \ -p '{"spec":{"config":{"roksUserPrefix":""}}}'コマンドを実行すると、プラットフォーム・ポッドが自動的に再始動します。
- 以下のコマンドを実行して、
roksUserPrefixにパッチが適用されたことを確認します。oc get Authentication.operator.ibm.com example-authentication \ -o jsonpath='{.spec.config.roksUserPrefix}'
roksUserPrefixについて詳しくは、 OpenShiftへの認証の委任 を参照してください。 - 以下のコマンドを実行して、認証カスタム・リソース (CR) から
- 以下の cURL コマンドのいずれかを使用して、 API を呼び出します。 認証に使用する資格情報を使用するコマンドを選択します。
- ユーザー名とパスワードを使用して認証します。
curl -k -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ -H "Content-Type: application/json" \ -d '{ "username": "<username>", "password": "<password>" }' - パスワードで認証し、自己署名証明書も検証するには、以下のようにします。
curl -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ --cacert /<path_to_root-ca>.crt -H "Content-Type: application/json" \ -d "{ "username": <username>, "password": <password> }"証明書が適切なルート認証局 (CA) によって署名されている場合、 curl は既にルート CA を認識しているため、
-kパラメーターも--cacertパラメーターも必要ありません。 - API キーを使用して認証します。
curl -k -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ -H "Content-Type: application/json" \ -d '{ "username":"<username>", "api_key":"<api_key>" }'
<instance_route>をサービス・インスタンスの詳細に置き換えます。<username>、<password>、および<api_key>を、 IBM Cloud Pak for Data 資格情報に置き換えます。 自己署名証明書を使用する場合は、<path_to_root-ca>も置き換えます。 - ユーザー名とパスワードを使用して認証します。
{
"_messageCode_": "200",
"message": "Success",
"accessToken": "<bearer-token>"
}/icp4d-api/v1/authorize エンドポイントについて詳しくは、 IBM® Software Hub Platform API の『 許可トークンの取得 』を参照してください。
次の作業
生成したベアラー・トークンを、後続の API 呼び出しの許可ヘッダーで使用します。
curl -H "Authorization: Bearer <token>" "https://<platform_instance_route>/<endpoint>"