63

googleapiに対してoauth2を実行しようとすると、次の結果が得られました。1つだけ:ドキュメントでid_tokenが何に使用されているかが見つかりませんでした。

{
  "access_token": "xxxx",
  "token_type": "Bearer",
  "expires_in": 3600,
  "id_token": "veryverylongstring",
  "refresh_token": "abcdefg"
}
4

2 に答える 2

68

id_tokenはJSONWebToken(JWT)です。デコードすると、ユーザーのIDを含む複数のアサーションが含まれていることがわかります。詳細については、この回答を参照してください。

于 2012-12-17T21:06:05.257 に答える
16

id_tokenは、OpenID Connectプロトコルで使用さ、ユーザーは認証および承認されます。(認証と承認には重要な違いがあります。)id_tokenaccess_tokenを取得します。

id_token値には、ユーザーの認証に関する情報が含まれていますIDトークンは、OpenIDプロバイダー(OIDP)によって署名された標準のJWT形式のIDカードの概念に似ています。これを取得するには、クライアントは認証要求を使用してユーザーをOIDPに送信する必要があります。

IDトークンの機能:

  1. OpenID(サブ)でサブジェクトと呼ばれるユーザーのIDをアサートします。
  2. 発行機関(iss)を指定します。
  3. 特定のオーディエンス、つまりクライアント(aud)用に生成されます。
  4. ナンス(ノンス)が含まれる場合があります。
  5. いつ(auth_time)、どのようにユーザーが認証されたか(acr)を指定できます。
  6. 問題(iat)と有効期限(exp)があります。
  7. 名前や電子メールアドレスなど、件名について要求された追加の詳細が含まれる場合があります。
  8. デジタル署名されているため、対象の受信者が確認できます。オプションで、機密保持のために暗号化できます。

IDトークンステートメントまたはクレームは、単純なJSONオブジェクトにパッケージ化されています。

{
  "sub"       : "alice",
  "iss"       : "https://openid.c2id.com",
  "aud"       : "client-12345",
  "nonce"     : "n-0S6_WzA2Mj",
  "auth_time" : 1311280969,
  "acr"       : "c2id.loa.hisec",
  "iat"       : 1311280970,
  "exp"       : 1311281970
}
于 2019-02-22T07:02:02.973 に答える