Help us understand the problem. What is going on with this article?

Google OAuth2で提供されるID tokenの詳細(翻訳)

More than 1 year has passed since last update.

なかなか正式な情報を見つけられなかったので、メモ。

ID tokenはJWTで以下のサンプルのようなjsonで提供される。

{"iss":"accounts.google.com",
 "at_hash":"HK6E_P6Dh8Y93mRNtsDB1Q",
 "email_verified":"true",
 "sub":"10769150350006150715113082367",
 "azp":"1234987819200.apps.googleusercontent.com",
 "email":"jsmith@example.com",
 "aud":"1234987819200.apps.googleusercontent.com",
 "iat":1353601026,
 "exp":1353604926,
 "nonce": "0394852-3190485-2490358",
 "hd":"example.com" }

それぞれのクレームは以下のような意味がある。

Claim        
Provided
Description
iss always レスポンスの発行者の発行者識別子。GoogleのID tokenでは常にhttps://accounts.google.comまたはaccounts.google.com
at_hash access tokenのハッシュ。access tokenとID tokenが結び付けられているかどうかを検証できる。サーバーフローの中でID tokenがaccess tokenと共に発行されている場合は、常に含まれている。CSRF攻撃に対する防御のための代替的なメカニズムとして利用することができるが、Step1Step3に従っているのであれば、access tokenの検証は必要ない。
email_verified ユーザーのメールアドレスが検証済みであればtrue、そうでなければfalse。
sub always ユーザーの識別子であり、全てのGoogleアカウントの間で唯一かつ再利用されない。Googleアカウントは異なる時点で複数のメールアドレスを持つことができるが、subは変化することがない。アプリケーションの中でのユーザーの固有識別子としては、subを使う。
azp 承認済みプレゼンターのclient_id。このクレームは、ID tokenを要求する当事者がID tokenのオーディエンスと同じでない場合にのみ必要となる。これは、WebアプリケーションとAndroidアプリのclient_idが異なるが、同じプロジェクトを共有するハイブリッドアプリのような場合に該当する可能性がある。
email ユーザーのメールアドレス。これは唯一のものではない可能性があり、ユーザーの主キーとしては適さない。Scopeに"email"を含んでいる場合にのみ提供される。
profile ユーザーのプロフィールページのURL。次の場合に提供される。
・ リクエストしたscopeが"profile"を含んでいる
・ ID tokenがトークンリフレッシュから返されている
profileクレームが存在する場合、あなたのアプリのユーザーレコードを更新するためにこれを利用できる。このクレームが存在することは保証されていないことに注意。
picture ユーザーのプロフィール画像のURL。次の場合に提供される。
・ リクエストしたscopeが"profile"を含んでいる
・ ID tokenがトークンリフレッシュから返されている
pictureクレームが存在する場合、あなたのアプリのユーザーレコードを更新するためにこれを利用できる。このクレームが存在することは保証されていないことに注意。
name 表示可能な形式の、ユーザーのフルネーム。次の場合に提供される。
・ リクエストしたscopeが"profile"を含んでいる
・ ID tokenがトークンリフレッシュから返されている
nameクレームが存在する場合、あなたのアプリのユーザーレコードを更新するためにこれを利用できる。このクレームが存在することは保証されていないことに注意。
aud always このID Tokenが対象としているオーディエンスの識別子。あなたのアプリケーションのOAuth 2.0 クライアントIDの一つでなければならない。
iat always ID Tokenが発行された時刻。Unix time(整数秒)で表現されている。
exp always ID Tokenの有効期限が切れる時刻。Unix time(整数秒)で表現されている。
nonce 認証リクエストの中であなたのアプリから提供されたナンスの値。この値が一度だけ表示されるようにすることで、リプレイ攻撃に対する保護を強化する必要がある。
hd ユーザーのホストされているG Suiteドメイン。ユーザーがホストされているドメインに属している場合にのみ提供される。

"OpenID Connect" by Google is licensed under CC BY 3.0

ところで、1、2列目が細くなりすぎるのでヘッダを<pre>で囲ってみたら一応なんとかなったんですが、他に方法ないんでしょうか…?

mshackers
ソフトウェア開発から産業用機械開発までこなすモノづくり集団
https://mshackers.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした