

# Salesforce Commerce Cloud 接続の設定
<a name="salesforce-commerce-cloud-configuring-connections"></a>

 Salesforce Commerce Cloud は、OAuth2 の CLIENT CREDENTIALS グラントタイプをサポートしています。
+  このグラントタイプは、クライアントがユーザーのコンテキスト外でアクセストークンを取得するために使用するため、2-legged の OAuth 2.0 とみなされます。AWS Glue は、クライアント ID とクライアントシークレットを使用して、定義したカスタムサービスによって提供される Salesforce Commerce Cloud API を認可できます。
+  各カスタムサービスは、特定のアクションを実行することをサービスに許可する一連のロールとアクセス許可を持つ API 専用ユーザーによって所有されます。アクセストークンは 1 つのカスタムサービスに関連付けられています。
+  このグラントタイプは、有効期間が短いアクセストークンになり、ID エンドポイントを呼び出すことで更新される場合があります。
+  クライアント認証情報の生成に関する Salesforce Commerce Cloud ドキュメントの詳細については、[Salesforce のドキュメント](https://developer.salesforce.com/docs/commerce/commerce-api/guide/authorization.html)を参照してください。

Salesforce Commerce Cloud 接続を設定するには:

1.  AWS Secrets Manager で、次の詳細を含むシークレットを作成します。AWS Glue で接続ごとにシークレットを作成する必要があります。

   1.  カスタマーマネージド接続アプリケーションの場合 – シークレットには、USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET を使用して接続されたアプリケーションのコンシューマーシークレットをキーとして含める必要があります。

1. AWS Glue Studio で、以下の手順に従って **[データ接続]** の下に接続を作成します。

   1.  [データ接続] の **[接続を作成]** を選択します。

   1. **[データソース]** を選択する際に、[Salesforce Commerce Cloud] を選択します。

   1. Salesforce Commerce Cloud の**ショートコード**、**組織 ID**、**サイト ID** を指定します。

   1. Salesforce Commerce Cloud アカウントの Salesforce Commerce Cloud ドメイン URL を選択します。

   1.  AWS Glue が次のアクションを担い、その権限を持つことができる IAM ロールを選択します。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  OAuth スコープを指定します。オプションで、接続する Salesforce Commerce Cloud の [ユーザーマネージドクライアントアプリケーション ClientId] を入力します。

   1.  AWS Glue でこの接続に使用する `secretName` を選択して、トークンを配置します。

   1.  ネットワークを使用する場合は、ネットワークオプションを選択します。

1.  AWS Glue ジョブに関連付けられている IAM ロールに `secretName` を読み取るアクセス許可を付与します。

1.  AWS Glue ジョブ設定で、**[追加のネットワーク接続]** として `connectionName` を指定します。