Admin API の認可

Account Manager で API クライアントを作成し、API クライアントの認証情報を使用して Admin API のアクセストークンをリクエストする方法を説明します。

Admin API は Account Manager でセキュアにされていますが、Shopper API は代わりに Shopper Login and API Access Service (SLAS) でセキュアにされています。このガイドでは、Admin API にアクセスする方法について のみ 説明します。Shopper API にアクセスする方法については、Shopper API の認可を参照してください。

Admin API にアクセスするための API クライアント (またはクライアント) を作成する前に、アクセスする必要のある API ファミリーごとに OAuth の範囲のリストを作成する必要があります。使用可能なすべての範囲は、認可範囲カタログにリストアップされています。

たとえば、CDN ゾーンを使用するには次の範囲をリストに追加します。

範囲のリストを作成したら、このガイドに戻り、続けてお読みください。このリストは、Account Manager の Allowed Scopes (許可される範囲) フィールドに値を入力するときに必要になります。

Admin API を使用するには、まず、自分で (または管理者権限をもつユーザーが)、以下の手順で API クライアントを作成する必要があります。

  1. Account Manager にログインします。

  2. 左のナビゲーションで API Client (API クライアント) をクリックします。

  3. Add API Client (API クライアントの追加) をクリックします。

  4. Display Name (表示名) フィールドに、API クライアントの内容を示す一意の名前を入力します。例: Admin Client for Pia Larson。

  5. Password (パスワード) フィールドに、セキュアなパスワードを入力します。

  6. Confirm Password (パスワードの確認入力) フィールドに、パスワードを再度入力します。

  7. パスワード (クライアントシークレットともいう) をパスワードマネージャーなどのセキュアな場所に保存します。

  8. Organizations (組織) セクションに移動し、次の操作を行います。

    • Add (追加) をクリックします。
    • 1 つまたは複数の組織を選択します。
    • Add (追加) をクリックします。
  9. Roles (役割) セクションに移動し、次の操作を行います。

    • Add (追加) をクリックします。
    • Salesforce Commerce API のカテゴリを検索し、Salesforce Commerce API を選択します。
    • Add (追加) をクリックします。
    • フィルターボタンをクリックします。
    • 組織を選択します。
    • API クライアントでアクセスしたい各インスタンスの名前を入力します。
    • 各インスタンスを選択します。
    • Add (追加) をクリックします。
  10. OpenID Connect (OpenID コネクト) セクションに進み、次の操作を行います。

    • Default Scopes (デフォルトの範囲) フィールドに、以下の範囲を (個別の行に) 入力します。

    • Allowed Scopes (許可される範囲) フィールドに、前もって用意した範囲のリストを入力します。範囲は、それぞれ 1 行に 1 つずつ入力します。

      関連スクリーンショット

    • Token Endpoint Auth Method (トークンエンドポイント認証方法) フィールドで client_secret_post を選択します。

    • Access Token Format (アクセストークンの形式) フィールドで JWT を選択します。

  11. Redirect URIs (リダイレクト URI) フィールドに、http://localhost:8080 を追加します。

  12. Save (保存) をクリックします。

  13. 保存後に表示される API クライアントのテーブルで、新しい API クライアントを探します。

  14. テーブルの API Client ID (API クライアント ID) 列の値をコピーします。例: 1d763261-6522-4913-9d52-5d947d3b94c4

Salesforce Commerce API で使用される API クライアントは、Open Commerce API (OCAPI) では使用できず、その逆も同様です。各 API フレームワーク (Salesforce Commerce API および OCAPI) には、それぞれに専用の API クライアントが必要です。また、OCAPI 用の API クライアントに、「Salesforce Commerce API」という役割を割り当てることはできません。

Admin API 用のアクセストークンをリクエストするには、Account Manager の oauth2 リソースにリクエストします。

ここに掲載されているサンプルでは、リクエストの作成をシンプルにするために、Unix のシェルコマンドを使用して環境変数を設定しています。Unix 系の OS を使用していない場合は、文字列置換を手動で行うか、Postman などのツールで変数置換を処理できます。

リクエストの際、HTTP ヘッダーに、クライアント ID、続いてコロン (:)、そしてクライアントシークレット (パスワード) からなる認証情報文字列を指定する必要があります。

次のコマンドを使用して、認証情報文字列の書式を正しく設定し、環境変数として保存します。

以下のコマンドを実行する前に、サンプルのクライアント ID (1d763261-6522-4913-9d52-5d947d3b94c4) とサンプルのクライアントシークレット (GS8KmdDEUKfWnEnv) を、先ほど作成した API クライアントの認証情報に置き換えます。

リクエストには、scope クエリパラメーターを使用して追加情報も含める必要があります。

API クライアントに複数のインスタンスの役割を追加することはできますが、一度にリクエストできるアクセストークンは 1 つのインスタンス用のもののみです。アクセストークンに関連付けるインスタンスを特定するために、そのレルム ID とインスタンス ID を環境変数に設定します。

以下のコマンドを実行する前に、サンプルのレルム ID (zzte) とサンプルのインスタンス ID (053) を実際の B2C Commerce インスタンスの値に置き換えます。(これらの値を確認する方法については、構成値ガイドを参照してください。)

scope パラメーターには、パラメーターをもう 1 つ追加する必要があります。それは、リクエストされた範囲をスペースで区切ったリストです。リクエストされた範囲は、クライアント ID 用に事前に構成した、許可範囲のリストに照らしてチェックされます。

この例では、必要な範囲は 1 つだけです (sfcc.catalogs)。複数の範囲をリクエストする場合は、スペースで区切ります。

これで、oauth2 エンドポイントの文字列をすべて収集したので、以下のように HTTP リクエストを使用して、アクセストークンをリクエストできます。

環境変数を使用していない場合は、curl コマンドを実行する前に、手動で文字列置換を行ってください。環境変数の代わりにサンプル文字列を使用すると、同じコマンドは以下のようになります。

リクエストが正しく行われると、JSON オブジェクトの一部としてアクセストークンが返されます。

Account Manager からのアクセストークン (および正しい範囲) を使用すれば、AssignmentsCatalogsCustomersInventory AvailabilityOrdersProducts、および その他 8 つを含め、どの Admin API にもアクセスできるようになります。

これで、Account Manager で API クライアントを設定し、Admin API のアクセストークンを取得する方法を学び終えました。次は、API リクエストを実行してみましょう。

入門ガイドシリーズの最後のガイド、ベース URL とリクエストの作成では、API リクエストをどのように作成するかについて説明します。

Shopper API にアクセスする方法については、Shopper API の認可を参照してください。