SCAPI Admin API の認可
Account Manager で API クライアントを作成し、API クライアントの認証情報を使用して SCAPI Admin API のアクセストークンをリクエストする方法を説明します。
- SCAPI Admin API は Account Manager で保護されますが、SCAPI Shopper API は代わりに Shopper Login and API Access Service (SLAS) で保護されます。このガイドでは、SCAPI Admin API にアクセスする方法について のみ 説明します。Shopper API にアクセスする方法については、Shopper API の認可を参照してください。
- SLAS Admin API への呼び出しには、Sandbox API User (サンドボックス API ユーザー) の役割が必要です。
- Account Manager API クライアントシークレットには、英数字のパスワードのみを使用してください。
SCAPI Admin API にアクセスするための API クライアント (またはクライアント) を作成する前に、アクセスする必要のある API ファミリーごとに OAuth のスコープのリストを作成する必要があります。使用可能なすべてのスコープは、認可スコープカタログにリストアップされています。
たとえば、CDN ゾーンを使用するには次のスコープをリストに追加します。
スコープのリストを作成したら、このガイドに戻り、続けてお読みください。このリストは、Account Manager の Allowed Scopes (許可されるスコープ) フィールドに値を入力するときに必要になります。
SCAPI Admin API を使用するには、まず、管理者が (または管理者権限をもつユーザーが)、以下の手順に従って API クライアントを作成する必要があります。
-
Account Manager にログインします。
-
左のナビゲーションで API Client (API クライアント) をクリックします。
-
Add API Client (API クライアントの追加) をクリックします。
-
Display Name (表示名) フィールドに、API クライアントの内容を示す一意の名前を入力します。例: Admin Client for Pia Larson。
-
Password (パスワード) フィールドに、セキュアなパスワードを入力します。
-
Confirm Password (パスワードの確認入力) フィールドに、パスワードを再度入力します。
-
パスワード (クライアントシークレットともいう) をパスワードマネージャーなどのセキュアな場所に保存します。
-
Organizations (組織) セクションに移動し、次の操作を行います。
- Add (追加) をクリックします。
- 1 つまたは複数の組織を選択します。
- Add (追加) をクリックします。
-
Roles (役割) セクションに移動し、次の操作を行います。
- Add (追加) をクリックします。
- Salesforce Commerce API のカテゴリを検索し、
Salesforce Commerce API
を選択します。 - Add (追加) をクリックします。
- フィルターボタンをクリックします。
- 組織を選択します。
- API クライアントでアクセスしたい各インスタンスで、次の操作を行います。
- インスタンスを選択します。
- Add (追加) をクリックします。
-
OpenID Connect (OpenID コネクト) セクションに進み、次の操作を行います。
- Default Scopes (デフォルトのスコープ) フィールドに、以下のスコープを (個別の行に) 入力します。
-
Allowed Scopes (許可されるスコープ) フィールドに、前もって用意したスコープのリストを入力します。スコープは、それぞれ 1 行に 1 つずつ入力します。
- 買い物客関連のスコープを Account Manager クライアントに追加しないでください。
- データ関連または管理関連のスコープを SLAS クライアントに追加しないでください。
- 上記のアクションはトークンの肥大化を引き起こし、期待どおりに機能しません。
-
Token Endpoint Auth Method (トークンエンドポイント認証方法) フィールドで
client_secret_post
を選択します。 -
Access Token Format (アクセストークンの形式) フィールドで
JWT
を選択します。
-
Redirect URIs (リダイレクト URI) フィールドに、
http://localhost:8080
を追加します。 -
Save (保存) をクリックします。
-
保存後に表示される API クライアントのテーブルで、新しい API クライアントを探します。
-
テーブルの API Client ID (API クライアント ID) 列の値をコピーします。例:
1d763261-6522-4913-9d52-5d947d3b94c4
。
B2C Commerce API に使用される API クライアントを Open Commerce API (OCAPI) で使用することはできず、その逆も同様です。各 API フレームワーク (B2C Commerce API と OCAPI) には、独自の API クライアントが必要です。また、OCAPI 用の API クライアントに、「Salesforce Commerce API」という役割を割り当てることはできません。
SCAPI Admin API 用のアクセストークンをリクエストするには、Account Manager の oauth2
リソースにリクエストします。
ここに掲載されているサンプルでは、リクエストの作成をシンプルにするために、Unix のシェルコマンドを使用して環境変数を設定しています。Unix 系の OS を使用していない場合は、文字列置換を手動で行うか、Postman などのツールで変数置換を処理できます。
リクエストの際、HTTP ヘッダーに、クライアント ID、続いてコロン (:
)、そしてクライアントシークレット (パスワード) からなる認証情報文字列を指定する必要があります。client_id
は、SLAS サービスに必要な各テナントのユニバーサル一意識別子 (UUID) です。
次のコマンドを使用して、認証情報文字列の書式を正しく設定し、環境変数として保存します。
以下のコマンドを実行する前に、サンプルのクライアント ID (1d763261-6522-4913-9d52-5d947d3b94c4
) とサンプルのクライアントシークレット (GS8KmdDEUKfWnEnv
) を、先ほど作成した API クライアントの認証情報に置き換えます。
リクエストには、scope
クエリパラメーターを使用して追加情報も含める必要があります。
API クライアントに複数のインスタンスの役割を追加することはできますが、一度にリクエストできるアクセストークンは 1 つのインスタンス用のもののみです。アクセストークンに関連付けるインスタンスを特定するために、そのレルム ID とインスタンス ID を環境変数に設定します。
以下のコマンドを実行する前に、サンプルのレルム ID (zzte
) とサンプルのインスタンス ID (053
) を実際の B2C Commerce インスタンスの値に置き換えます。(これらの値の検索方法については、ベース URL とリクエストの作成のガイドを参照してください。)
scope
パラメーターには、パラメーターをもう 1 つ追加する必要があります。それは、リクエストされたスコープをスペースで区切ったリストです。リクエストされたスコープは、クライアント ID 用に事前に構成した、許可されるスコープのリストに照らしてチェックされます。
この例では、必要なスコープは 1 つだけです (sfcc.catalogs
)。複数のスコープをリクエストする場合は、スペースで区切ります。
スコープに -rw
バージョンを含める場合は、読み取り専用の対応するバージョンは冗長であるため、使用しないでください。これは Account Manager と SLAS の両方のクライアントスコープに適用されますが、SLAS はトークン内のすべてのスコープを提供し、冗長性によってトークンが不必要に大きくなる可能性があるため、SLAS 買い物客のアクセス呼び出しでは特に重要です。
これで、oauth2
エンドポイントの文字列をすべて収集したので、以下のように HTTP リクエストを使用して、アクセストークンをリクエストできます。
環境変数を使用していない場合は、curl
コマンドを実行する前に、手動で文字列置換を行ってください。環境変数の代わりにサンプル文字列を使用すると、同じコマンドは以下のようになります。
SCAPI Admin API へのアクセスでサポートされている付与タイプは、client_credentials
のみであることに注意してください。
リクエストが正しく行われると、JSON オブジェクトの一部としてアクセストークンが返されます。
Account Manager からのアクセストークン (および正しいスコープ) を使用すれば、Assignments、Catalogs、Customers、Inventory Availability、Orders、Products、および その他 8 つを含め、どの SCAPI Admin API にもアクセスできるようになります。
これで、Account Manager で API クライアントを設定し、SCAPI Admin API のアクセストークンを取得する方法を学び終えました。次は、API リクエストを実行してみましょう。
入門ガイドシリーズの最後のガイド、ベース URL とリクエストの作成では、API リクエストをどのように作成するかについて説明します。
Shopper API にアクセスする方法については、Shopper API の認可を参照してください。