
![[8.5.5.4 以降]](../ng_v8554.gif)
OpenID Connect の UserInfo エンドポイントの起動
UserInfo エンドポイントは、OpenID Connect 認証で認証されたユーザーについてのクレームを返します。
このタスクについて
ユーザーについてのクレームを取得するため、クライアントはクレデンシャルとしてアクセス・トークンを使用することによって UserInfo エンドポイントに要求を行います。 そのアクセス・トークンは、OpenID Connect 認証を介して取得したものでなければなりません。そのアクセス・トークンによって表されるユーザーについてのクレームは、 クレームの名前と値のペアの集合を含んでいる 1 つの JSON オブジェクトとして返されます。UserInfo エンドポイントは OAuth 2.0 保護リソースです。 これは、このエンドポイントにアクセスするのに必要なクレデンシャルがアクセス・トークンであることを意味します。
UserInfo エンドポイントによって返されるクレームは OpenID Connect プロバイダー構成でカスタマイズできます。 『UserInfo エンドポイントによって返されるクレームの構成』を参照してください。
https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo
手順
- OpenID Connect 認証を介して取得されたアクセス・トークンを使用して認証をセットアップします。アクセス・トークンは、 HTTP Basic Authorization ヘッダーに入れるか、access_token 要求パラメーターで指定できます。どちらの場合でも、アクセス・トークンのエンコードは不要です。
- GET 要求または POST 要求を UserInfo エンドポイント URL に送信します。
タスクの結果
要求が有効であれば、UserInfo エンドポイントは、application/json 形式の JSON オブジェクトとともに HTTP 200 応答を返し、 このオブジェクトには OpenID Connect プロバイダー用に構成されたクレームが含まれます。
例
以下の例は、有効なトークンが使用された要求と無効なトークンが使用された要求を示します。
- HTTP Bearer Authorization ヘッダーを使用してアクセス・トークンを渡す要求
- 有効なアクセス・トークンの場合の応答
- 無効なアクセス・トークン
POST /register HTTP/1.1
Accept: application/x-www-form-urlencoded
Authorization: Bearer fAAdLO1c6QWDbPs9HrWHz5e7nRWVAnxqTTP7i88G
POST /register HTTP/1.1
Accept: application/x-www-form-urlencoded
access_token=fAAdLO1c6QWDbPs9HrWHz5e7nRWVAnxqTTP7i88G
HTTP 要求パラメーターは機密情報を含むことができ、ブラウザー履歴またはキャッシュに保存されることがあるため、 access_token 要求パラメーターを使用するのではなく、 HTTP Authorization ヘッダーを使用するのがベスト・プラクティスです。
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"sub" : "bob",
"groupIds" : [ "bobsdepartment","administrators" ],
"given_name" : "Bob",
"name" : "Bob Smith",
"email" : "bob@mycompany.com",
"phone_number" : "+1 (604) 555-1234;ext5678",
"address" : { "formatted" : "123 Main St., Anytown, TX 77777" },
"picture" : "http://mycompany.com/bob_photo.jpg"
}
HTTP/1.1 401 Unauthorized
CONTENT-LENGTH : 0
WWW-AUTHENTICATE : Bearer error=invalid_token,
error_description=CWWKS1617E: A userinfo request was made with
an access token that was not recognized. The request URI was
/oidc/endpoint/MyOAuthProvider/userinfo.