翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザー属性エンドポイント
OIDC がユーザー属性を含む ID トークンを発行する場合、OAuth 2.0 は /oauth2/userInfo エンドポイントを実装します。認証されたユーザーまたはクライアントは、scopes クレームを含むアクセストークンを受け取ります。このクレームは、認可サーバーが返す属性を決定します。アプリケーションが userInfo エンドポイントにアクセストークンを提示すると、認可サーバーは、アクセストークンスコープによって設定された境界内にあるユーザー属性を含む応答本文を返します。アプリケーションは、少なくとも openid スコープクレームを持つ有効なアクセストークンを保持している限り、userInfo エンドポイントからユーザーに関する情報を取得できます。
userInfo エンドポイントは OpenID Connect (OIDC) userInfo エンドポイントopenid スコープはアクセストークンクレームのいずれかである必要があります。
Amazon Cognito は、InitiateAuth などのユーザープール API リクエストに応答してアクセストークンを発行します。スコープが含まれていないため、userInfo エンドポイントはこれらのアクセストークンを受け入れません。代わりに、トークンエンドポイントからアクセストークンを提示する必要があります。
OAuth 2.0 サードパーティーの ID プロバイダー (IdP) は、userInfo エンドポイントもホストしています。ユーザーがその IdP で認証すると、Amazon Cognito は、IdP token エンドポイントと認可コードを表示せずに交換します。ユーザープールは IdP アクセストークンを渡して、IdP userInfo エンドポイントからのユーザー情報の取得を認可します。
ユーザーのアクセストークンのスコープは、認証scopesリクエストのリクエストパラメータ、またはトークン生成前の Lambda トリガーが追加するスコープによって決まります。アクセストークンをデコードし、scopeクレームを調べて、それらに含まれるアクセスコントロールスコープを確認できます。以下は、userInfoエンドポイントから返されるデータに影響を与えるスコープの組み合わせです。リザーブド Amazon Cognito スコープaws.cognito.signin.user.adminは、このエンドポイントから返されるデータには影響しません。
アクセストークンのスコープとそのuserInfoレスポンスへの影響の例
openid-
アプリケーションクライアントが読み取ることができるすべてのユーザー属性を含むレスポンスを返します。
openid profile-
ユーザー属性
name、family_name、、given_name、middle_name、nickname、preferred_username、、profile、picture、websitegender、、birthdatezoneinfolocale、、、および を返しますupdated_at。また、カスタム属性も返します。各属性への読み取りアクセスを持たないアプリクライアントでは、このスコープへのレスポンスは、アプリクライアントが読み取りアクセスを持つ仕様内のすべての属性です。 openid email-
基本的なプロファイル情報と
emailおよびemail_verified属性を返します。 openid phone-
基本的なプロファイル情報と
phone_numberおよびphone_number_verified属性を返します。
GET /oauth2/userInfo
アプリケーションは、ブラウザではなく、このエンドポイントへのリクエストを直接生成します。
詳細については、OpenID Connect (OIDC) 仕様の「UserInfo エンドポイント
ヘッダーのリクエストパラメータ
Authorization: Bearer<access_token>-
認可ヘッダーフィールド内でアクセストークンを渡します。
必須。
例 – リクエスト
GET /oauth2/userInfo HTTP/1.1 Content-Type: application/x-amz-json-1.1 Authorization: Bearer eyJra12345EXAMPLE User-Agent:[User agent]Accept: */* Host: auth.example.com Accept-Encoding: gzip, deflate, br Connection: keep-alive
例 – 肯定応答
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length:[Integer]Date:[Timestamp]x-amz-cognito-request-id:[UUID]X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: 0 Strict-Transport-Security: max-age=31536000 ; includeSubDomains X-Frame-Options: DENY Server: Server Connection: keep-alive { "sub": "[UUID]", "email_verified": "true", "custom:mycustom1": "CustomValue", "phone_number_verified": "true", "phone_number": "+12065551212", "email": "bob@example.com", "username": "bob" }
OIDC クレームのリストについては、「スタンダードクレームemail_verified と phone_number_verified の値を文字列として返します。
否定応答の例
例 – 不正なリクエスト
HTTP/1.1 400 Bad Request WWW-Authenticate: error="invalid_request", error_description="Bad OAuth2 request at UserInfo Endpoint" invalid_request-
リクエストに必須パラメータが含まれていないか、サポートされていないパラメータ値が含まれているか、または正しい形式ではありません。
例 – 不正なトークン
HTTP/1.1 401 Unauthorized WWW-Authenticate: error="invalid_token", error_description="Access token is expired, disabled, or deleted, or the user has globally signed out." invalid_token-
アクセストークンの有効期限が切れているか、失効しているか、正しい形式ではないか、または無効です。