

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アカウントリンクの OAuth 2.0 要件
<a name="concepts-account-linking"></a>

すべての C2C コネクタは、エンドユーザーを認証するために OAuth 2.0 認可サーバーに依存しています。このサーバーを通じて、エンドユーザーはサードパーティーアカウントを顧客のデバイスプラットフォームにリンクします。アカウントリンクは、エンドユーザーが C2C コネクタでサポートされているデバイスを使用するために必要な最初のステップです。アカウントリンクと OAuth 2.0 のさまざまなロールの詳細については、「」を参照してください[アカウントリンクロール](roles-account-linking.md)。

C2C コネクタは認可フローをサポートするために特定のビジネスロジックを実装する必要はありませんが、C2C コネクタに関連付けられた OAuth2.0 認可サーバーは を満たす必要があります[OAuth 設定要件](#oauth-config-requirements)。

**注記**  
のマネージド統合は、認可コードフローを持つ OAuth 2.0 AWS IoT Device Management のみをサポートします。詳細については、[「RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1)」を参照してください。

アカウントリンクは、マネージド統合とコネクタがアクセストークンを使用してエンドユーザーのデバイスにアクセスできるようにするプロセスです。このトークンは、コネクタが API コールを通じてエンドユーザーのデータとやり取りできるように、エンドユーザーのアクセス許可を持つ AWS IoT Device Management のマネージド統合を提供します。詳細については、「[アカウントリンクワークフロー](account-linking-flow.md)」を参照してください。

これらの機密トークンはログに記録しないことをお勧めします。ただし、ログに保存されている場合は、CloudWatch Logs データ保護ポリシーを使用してログ内のトークンをマスクすることをお勧めします。詳細については、「[Help protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html)」を参照してください。

のマネージド統合 AWS IoT Device Management では、アクセストークンは直接取得されません。これは、認可コード付与タイプを通じて取得されます。まず、AWS IoT Device Management のマネージド統合は認可コードを取得する必要があります。次に、コードをアクセストークンと更新トークンと交換します。更新トークンは、古いアクセストークンの有効期限が切れたときに新しいアクセストークンをリクエストするために使用されます。アクセストークンと更新トークンの両方の有効期限が切れている場合は、アカウントリンクフローを再度実行する必要があります。これを行うには、 `StartAccountAssociationRefresh` API オペレーションを使用します。

**重要**  
発行されるアクセストークンはユーザーごとにスコープする必要がありますが、OAuth クライアントごとにスコープすることはできません。トークンは、クライアント内のすべてのユーザーのすべてのデバイスへのアクセスを提供するべきではありません。  
 認可サーバーは、次のいずれかを実行する必要があります。  
JWT トークンなどの抽出可能なエンドユーザー (リソース所有者) ID を含むアクセストークンを発行します。
発行された各アクセストークンのエンドユーザー ID を返します。

## OAuth 設定要件
<a name="oauth-config-requirements"></a>

次の表は、AWS IoT Device Management のマネージド統合で[アカウントリンク](account-linking-flow.md)を実行するために必要な OAuth 認可サーバーからのパラメータを示しています。


**OAuth サーバーパラメータ**  

|  |  |  | 
| --- |--- |--- |
| フィールド | 必須 | [Comment] (コメント) | 
|  `clientId`  |  あり  |  アプリケーションのパブリック識別子。これは認証フローを開始するのに使用され、パブリックに共有できます。  | 
|  `clientSecret`  |  あり  |  特にアクセストークンの認可コードを交換するときに、認可サーバーでアプリケーションを認証するために使用されるシークレットキー。機密に保持し、公開しないでください。  | 
|  `authorizationType`  |  あり  |  この認可設定でサポートされている認可のタイプ。現在、サポートされている値はOAuth 2.0」のみです。  | 
|  `authUrl`  |  あり  |  サードパーティーのクラウドプロバイダーの承認 URL。  | 
|  `tokenUrl`  |  あり  |  サードパーティーのクラウドプロバイダーのトークン URL。  | 
|  `tokenEndpointAuthenticationScheme`  |  あり  |  「HTTP\$1BASIC」または「REQUEST\$1BODY\$1CREDENTIALS」のいずれかの認証スキーム。HTTP\$1BASIC は、クライアント認証情報が認可ヘッダーに含まれていることをシグナルし、ラダーはリクエスト本文に含まれていることをシグナルします。  | 

アクセストークンの文字列値が UTF-8 文字セットでエンコードされた Base64 になるように、使用する OAuth サーバーを設定する必要があります。