14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-09-28

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

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>で囲ってみたら一応なんとかなったんですが、他に方法ないんでしょうか…?

14
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?