ベアラー・トークンの生成

ZenApiKey 許可トークンを使用できないまれなシナリオでは、 IBM Cloud Pak for Data 資格情報を使用してベアラー・トークンを生成できます。 ベアラー・トークンを使用して、 IBM Cloud Pak for Data API に対する認証を行い、 IBM Cloud Pak for Data エンドポイントにアクセスできます。

このタスクについて

トークンと API キーは、許可検査の対象になります。 API エンドポイントの呼び出しは、プラットフォームおよびサービスで付与されている役割と許可によって異なります。

重要: 一部の cURL コマンドは、一部の認証方式でのみ機能します。 SAML SSO が有効になっている場合は、 API キーを使用して認証する必要があります。

API キーを使用して認証を行い、ベアラー・トークンを生成する場合は、まず API キーを生成します。 詳しくは、『認証用の API キーの生成』を参照してください。

手順

  1. Red Hat® OpenShift®ユーザー名とパスワードで認証するが、 OpenShiftユーザー名に接頭部 IAM#が含まれていない場合は、 roksUserPrefixパラメーターを空の値で更新して、必要な接頭部を削除する必要があります。
    1. 以下のコマンドを実行して、認証カスタム・リソース (CR) から roksUserPrefix を直接更新します。
      oc patch Authentication.operator.ibm.com example-authentication \
      --type=merge \
      -p '{"spec":{"config":{"roksUserPrefix":""}}}'

      コマンドを実行すると、プラットフォーム・ポッドが自動的に再始動します。

    2. 以下のコマンドを実行して、 roksUserPrefixにパッチが適用されたことを確認します。
      oc get Authentication.operator.ibm.com example-authentication \
      -o jsonpath='{.spec.config.roksUserPrefix}'

    roksUserPrefixについて詳しくは、 OpenShiftへの認証の委任 を参照してください。

  2. 以下の 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>"