Upgrade to Pro — share decks privately, control downloads, hide ads and more …

技術勉強会 〜 OAuth & OIDC 入門編 / 20250528 OAuth and OIDC

技術勉強会 〜 OAuth & OIDC 入門編 / 20250528 OAuth and OIDC

2025.05.28 実施
技術勉強会 〜 OAuth & OIDC 入門編
https://openid.connpass.com/event/351245/

【前半】OAuth & OIDC 技術入門
この分野の初学者の方々のために、プロトコルフロー、アクセス
トークン、IDトークンなどの基礎知識をご紹介します。

【後半】OAuth & OIDC 業界入門
この分野のエキスパートを目指す方々のために、仕様策定団体、
仕様策定プロセス、拡張仕様群をご紹介します。

講師: 川崎 貴彦 Taka KAWASAKI (株式会社 Authlete)
ソフトウェアエンジニアとして、ネットワークやデータベース、Java仮想マシン、モバイルアプリ、分散システム等の開発に携わった後、OAuth 2.0 / OpenID Connect の実装を部品化・SaaS 化する独自のアーキテクチャを考案し、2015年に Authlete 社を創業。現在はグローバルな標準仕様の策定活動に参画し、実装に落とし込む作業をしている。

Tweet

More Decks by OpenID Foundation Japan

Other Decks in Education

Transcript

  1. 講義内容 【前半】OAuth & OIDC 技術入門 【後半】OAuth & OIDC 業界入門 この分野のエキスパートを目指す方々のために、仕様策定団体、

    仕様策定プロセス、拡張仕様群をご紹介します。 この分野の初学者の方々のために、プロトコルフロー、アクセス トークン、IDトークンなどの基礎知識をご紹介します。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  2. ウェブサイト サービス提供者 サービス 実店舗 窓口 人 API Application Programming Interface

    コンピュータプログラム サービス提供方法の一つとしてのAPI Copyright © 2025 Authlete, Inc. All Rights Reserved.
  3. ユーザ認証と同意確認 サービス API アプリ ⑦レスポンス ⑥ 権限確認 Authorization Server ①発行要求

    ユーザ ②認証要求と同意確認 ③認証と同意 認可サーバ ⑤リクエスト + アクセストークンを 発行する前にユーザ 認証と同意確認をお こなう。 ④ 発行 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  4. ③認証と同意 ②認証要求と同意確認 OAuth 2.0 サービス API アプリ ⑤リクエスト ⑦レスポンス ⑥

    権限確認 + Authorization Server ユーザ 認可サーバ アクセス トークン ①発行要求 ④ 発行 アクセストークンの 発行手順を標準化し たものが RFC 6749 (OAuth 2.0) RFC 6749 の正式名称は『The OAuth 2.0 Authorization Framework』 注: OAuth 2.0 は ユーザ認証や同意 確認の方法は規定 していない。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  5. ③認証と同意 ②認証要求と同意確認 BEARER 認証 サービス API アプリ ⑤リクエスト ⑦レスポンス ⑥

    権限確認 Authorization Server ユーザ 認可サーバ ①発行要求 ④ 発行 アクセストークンを 渡す方法を標準化し たものが RFC 6750 (BEARER 認証) + RFC 6750 の正式名称は『The OAuth 2.0 Authorization Framework: Bearer Token Usage』。HTTP 認証スキームの一種、BEARER 認証 として IANA に登録されている (BASIC 認証と同列扱い)。 注: OAuth 2.0 は ユーザ認証や同意 確認の方法は規定 していない。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  6. シングルサインオン (Single Sign-On) サイトA ユーザ ユーザ 認証 SSOなし サイトB ユーザ

    認証 ログイン ログイン サイトA ユーザ ユーザ 認証 SSOあり サイトB ログイン ログイン ログイン 完了 ID連携 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  7. アイデンティティプロバイダ (Identity Provider) ユーザ認証を行う側をアイデンティティ プロバイダ (Identity Provider)と呼び、 IdPと略す。 ユーザ認証を依頼する側をリライング パーティ(Relying

    Party)と呼び、RPと 略す。 サイトA ユーザ ユーザ 認証 サイトB ログイン ログイン ログイン 完了 ID連携 アイデンティティ プロバイダ リライング パーティ Copyright © 2025 Authlete, Inc. All Rights Reserved.
  8. サイトB ログイン ログイン OpenID Connect サイトA ユーザ ・サイトAでユーザ認証する ログイン 認証情報を検証する

    ログイン完了 ユーザ認証 認証リクエスト 認証レスポンス 認証情報 IDトークン 注: OpenID Connect はユーザ認証や同意 確認の方法は規定し ていない。 認証リクエスト、 認証レスポンス、 および認証情報の 形式を IDトークン として定めるのが OpenID Connect 。 OIDCと略す。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  9. 認可コードフロー 認可サーバ / IdP クライアント Webブラウザ 認可エンドポイント 認可リクエスト トークンエンドポイント トークンリクエスト

    アクセストークン IDトークン アクセストークン IDトークン トークンレスポンス 注:アクセストークンを要求する認可リクエストとIDトークンを要求する認証リクエストは一つのHTTPリクエストに まとめられる。呼称の使い分けが難しい文脈もあり、その場合はたいてい認可リクエストと呼ばれる。 リソース オーナー 認可ページ 認可コード リダイレクション エンドポイント ユーザ認証+同意 ユーザ認証+同意確認 認可コード リダイレクトURI 認可レスポンス Copyright © 2025 Authlete, Inc. All Rights Reserved.
  10. 認可リクエストと認可レスポンス GET https://as.example.com/authorize ?client_id=213488672826 &response_type=code &scope=openid+email &state=duk681S8n00GsJpe7n9boxdzen &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcallback &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM &code_challenge_method=S256

    HTTP/1.1 client_idでアプリの 一意識別子を示す。 response_typeにcode を含めることで認可コ ードが発行される。 scopeにopenidを含め ることでIDトークンが 発行される。 認可リクエスト HTTP/1.1 302 Found Location: https://client.example.org/callback ?code=x8D2zQgmG__WUaZVxiu7AEdeuW_25o4RkHrNKxGeKXw &state=duk681S8n00GsJpe7n9boxdzen &iss=https://as.example.com codeの値が発行された 認可コード。 認可レスポンス Copyright © 2025 Authlete, Inc. All Rights Reserved.
  11. トークンリクエストとトークンレスポンス POST https://as.example.com/token Content-Type: application/x-www-form-urlencoded client_id=213488672826 &grant_type=authorization_code &code=x8D2zQgmG__WUaZVxiu7AEdeuW_25o4RkHrNKxGeKXw &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcallback &code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk

    grant_typeにauthori zation_codeを指定し て認可コードフローで あることを示す。 認可レスポンスに含ま れていた認可コードの 値をcodeに指定する。 トークン リクエスト HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store (メッセージボディ → 次ページ) トークンレスポンスの メッセージボディの形 式はJSON。 トークン レスポンス 注:パブリッククライアントによるリクエストの例のため、クライアント認証関連パラメータを含んでいない。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  12. トークンレスポンス(メッセージボディ) { "access_token": "i_1X-euOC6-45zdObsQty7hgDMW9RUTjSGb0pzP69X0", "refresh_token": "RnxcnFmOufZBpyqRGOtgf5LEzYvyPVnUgw7yAeGsSTA", "scope": "email openid", "id_token":

    "eyJraWQiOiJTRC0yMDIxLTEwIiwiYWxnIjoiRVMyNTYifQ. eyJlbWFpbCI6ImpvaG5AZXhhbXBsZS5jb20iLCJpc3MiOi JodHRwczovL2V4YW1wbGUuY29tIiwic3ViIjoiMTAwMSIs ImF1ZCI6WyIyMTM0ODg2NzI4MjYiXSwiZXhwIjoxNjI4Mz k4NTEwLCJpYXQiOjE2MjgzOTQ5MTB9. 46wrzNIBOpgpn6sDKDvZQ9qgP9hcdPDyHrP7pGjQ7hga0P oCqb_dGyS5K-kRgN6RmZwcXYDCa-eg3t8TSHMCkQ", "token_type": "Bearer", "expires_in": 86400 } access_tokenの値が 発行されたアクセスト ークン。 id_tokenの値が発行さ れたIDトークン。 注:この例では可読性のためid_tokenの値に改行や空白文字を含めているが、実際は含まれない。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  13. クライアントタイプとクライアント認証 クライアント トークンレスポンス クライアントタイプ コンフィデンシャル パブリック クライアントを同定するため の秘密情報を安全に保持する ことができるクライアントを コンフィデンシャルクライア

    ントと呼ぶ。 コンフィデンシャルクライアントは、 トークンエンドポイントにアクセスす る際、クライアント認証を行う。クラ イアント認証の種類に応じ、トークン リクエストにパラメータを追加する。 認可サーバ トークンエンドポイント トークンリクエスト Copyright © 2025 Authlete, Inc. All Rights Reserved.
  14. クライアント認証の例 POST https://as.example.com/token Content-Type: application/x-www-form-urlencoded Authorization: Basic dGVzdF9jbGllbnQ6dGVzdF9zZWNyZXQ= (メッセージボディは省略) BASIC認証

    RFC 7617 POST https://as.example.com/token Content-Type: application/x-www-form-urlencoded client_assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6Ijd5TmhJSFZlYVBG SUJfMGstWXBpRkFUb21DTHB4SXYtZTJBQUZtQ1JCTEUifQ.eyJpc3MiOiJ0ZXN0X2NsaWVudCIsIn N1YiI6InRlc3RfY2xpZW50IiwiYXVkIjoiaHR0cHM6Ly9hcy5leGFtcGxlLmNvbSIsImlhdCI6MTc 0ODEzNDA1OSwiZXhwIjoxNzQ4MTM3NjU5LCJqdGkiOiI2ZTQyODU0OC1kOWUyLTQyNDAtYWJkYS0y N2E3YjQ4NzY0MmMifQ.495BcTcEu7CMA7ZltTrdHJlXj7awesmMb8mWFmXts_ZxdW4qfcNRUvcxYI isnfquM2hCC9mxihPspnGZsh-Szw &client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer &以下省略 クライアント アサーション RFC 7523 トークン リクエスト トークン リクエスト Copyright © 2025 Authlete, Inc. All Rights Reserved.
  15. IDトークンのフォーマット JWS (RFC 7515) JWE (RFC 7516) JSON Serialization (RFC

    7515, 3.2) Compact Serialization (RFC 7515, 3.1) Compact Serialization (RFC 7516, 3.1) JSON Serialization (RFC 7516, 3.2) JWT (RFC 7519) Nested JWT JWE including JWS ID Token (OIDC Core 1.0, 2) ID Token (OIDC Core 1.0, 2) 「IDトークンは署名されたJWTである。暗号化する際は署名後に暗号化という順番で行う」、と仕様で決められている。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  16. IDトークンの内容 eyJraWQiOiJTRC0yMDIxL TEwIiwiYWxnIjoiRVMyNT YifQ.eyJlbWFpbCI6Impv aG5AZXhhbXBsZS5jb20iL CJpc3MiOiJodHRwczovL2 V4YW1wbGUuY29tIiwic3V iIjoiMTAwMSIsImF1ZCI6 WyIyMTM0ODg2NzI4MjYiX SwiZXhwIjoxNjI4Mzk4NT

    EwLCJpYXQiOjE2MjgzOTQ 5MTB9.46wrzNIBOpgpn6s DKDvZQ9qgP9hcdPDyHrP7 pGjQ7hga0PoCqb_dGyS5K -kRgN6RmZwcXYDCa-eg3t 8TSHMCkQ JWS形式のIDトークン BASE64URL でデコード { "email": "[email protected]", "iss": "https://example.com", "sub": "1001", "aud": [ "213488672826" ], "exp": 1628398510, "iat": 1628394910 } ペイロード BASE64URL でデコード { "kid": "SD-2021-10", "alg": "ES256" } ヘッダ 発行者識別子 ユーザ識別子 クライアント識別子 有効期間終了日時 発行日時 署名鍵識別子 署名アルゴリズム Copyright © 2025 Authlete, Inc. All Rights Reserved.
  17. IDトークンの署名検証 IdP { "kid": "SD-2021-10", "alg": "ES256" } ヘッダ {

    "email": "[email protected]", "iss": "https://example.com", "sub": "1001", "aud": [ "213488672826" ], "exp": 1628398510, "iat": 1628394910 } ペイロード ディスカバリエンドポイント /.well-known/openid-configuration E3 AC 2B CC D2 01 3A 98 29 9F AB 03 28 3B D9 43 DA A0 3F D8 5C 74 F0 F2 1E B3 FB A4 68 D0 EE 18 1A D0 FA 02 A9 BF DD 1B 24 B9 2B E9 11 80 DE 91 99 9C 1C 5D 80 C2 6B E7 A0 DE DF 13 48 73 02 91 署名 { "jwks_uri": "https://example.com/jwks", ... } ディスカバリドキュメント 署名検証用の公開鍵 { "keys": [ { "kid": "SD-2021-10", ... }, ... } JWKセットドキュメント JWKセットドキュメント エンドポイント https://example.com 署名検証 デコードされたIDトークン ディスカバリエンドポイントの仕様は OpenID Connect Discovery 1.0 で 定義されている。 JWK セットドキュメントの仕様は RFC 7517 JSON Web Key (JWK) で定義されている。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  18. アクセストークンのフォーマット アクセス トークン JWT IDトークン • アクセストークンのフォーマットは JWTとは限らない※ • 一方、IDトークンのフォーマットは

    仕様によりJWTと決められている。 • 何らかのアクセス制御に用いるとし ても、IDトークンのことをアクセス トークンとは呼ばない。 ※ WikipediaのJWT 関する説明が不適切だった影響も あり(2020年5月訂正)、「アクセストークンのフォー マットは JWT である」という誤った解説記事を書く 者が後を絶たなかった。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  19. アクセストークンの利用 GET https://example.com/resource/1 Authorization: Bearer i_1X-euOC6-45zdObsQty7hgDMW9RUTjSGb0pzP69X0 BEARER認証 RFC 6750 GET

    https://example.com/resource/1 Authorization: DPoP i_1X-euOC6-45zdObsQty7hgDMW9RUTjSGb0pzP69X0 DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IkVTMjU2IiwiandrIjp7ImNydiI 6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiMUFtVnI0R29IZFBnazQ4TFdkUzNUOW02 bTFtUDRWVGNqOXVzb1NCbkNRayIsInkiOiJ0ZS1XSXVVSXEydzh0WG1YeWRsRVg0c GU5bE5lLVBCY296QThuN3k4WFRFIn19.eyJqdGkiOiJkaWwzVXk4R1pxUENubG56I iwiaHRtIjoiR0VUIiwiaHR1IjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9yZXNvdXJjZS 8xIiwiaWF0IjoxNzQ4MjgwNzg5LCJhdGgiOiJFWVlRSk9vWDlYLUt6TVBBNTI3NnB jelR0cHpVMjhMRzltQWRVeXdIa2dVIn0._thF84CW42Hcp_R2NxIAxUGdehmItYWV MCSbXCknIJ4i2IjdEv9jIJk5BtS6f08yO6bIwKHmY8V5TQoBHq1pqQ DPoP認証 RFC 9449 アクセストークン に紐付いた鍵の保 持者でなければ当 アクセストークン を利用できない。 アクセストークン 窃取に対する対策 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  20. アクセストークンの情報取得 アクセストークン自身に情報が 埋め込まれているか?(JWT等) 埋め込まれている Q A1 埋め込まれていない A2 アクセストークンの内容を見る 認可サーバに問い合わせる

    認可サーバ イントロスペクション エンドポイント イントロスペクションエンドポイントの仕様は RFC 7662 で定義されている。 { "active": true, "client_id": "213488672826", "scope": "email openid", "sub": "1004", "iss": "https://example.com", "iat": 1748246400, "exp": 1748332800 } Copyright © 2025 Authlete, Inc. All Rights Reserved.
  21. OAuth & OIDC 技術入門要点 APIとOAuth 2.0 • API利用時、認可サーバが発行したアクセストークンを提示する。 • アクセストークンの発行手順を標準化したものがOAuth

    2.0。 SSOとOpenID Connect • ユーザ認証をアイデンティティプロバイダに委譲すると結果としてIDトークンが得られる。 • ユーザ認証委譲手順とIDトークンを標準化したものがOpenID Connect。 トークン発行フロー • 代表的な認可コードフローでアクセストークンとIDトークンを同時に発行できる。 • トークンリクエスト時、コンフィデンシャルクライアントはクライアント認証を行う。 IDトークン • IDトークンの署名を検証する鍵は、IdPのJWKセットドキュメントから取得する。 • JWKセットドキュメントの場所は、IdPのディスカバリドキュメントから取得する。 アクセストークン • アクセストークン利用時、BEARER認証やDPoP認証を用いる。 • アクセストークンの情報はイントロスペクションエンドポイントに問い合わせる。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  22. IETF : Internet Engineering Task Force ART GEN INT OPS

    RTG SEC WIT Applications and Real-Time Area General Area Internet Area Operations and Management Area Routing Area Security Area Web and Internet Transport Area 22 3 17 17 22 31 17 ace acme cose dance dult emu hpke ipsecme jose keytrans kitten lake lamps mls oauth ohai openpgp ppm pquip privacypass radext rats scim scitt secdispatch spice sshm suit teep tls uta OAuthの文脈でRFCと言えばIETFが策定した標準仕様を指す。 Security Areaに分類されるワーキンググループ群 IETFワーキンググループ群の分類(領域) Copyright © 2025 Authlete, Inc. All Rights Reserved.
  23. OIDF : OpenID Foundation AB/Connect Artifact Binding and Connect (OIDC)

    AuthZEN Authorization related information DCP Digital Credentials Protocols EAP Authentication Security & Privacy eKYC and IDA Electronic KYC and Identity Assurance FAPI General-purpose high-security API FastFed Application federation by IdPs HEART Health-related data sharing iGov Goverment and public sector profiles IPSIE Secure Identity in the Enterprise MODRNA Profiles for mobile operators R&E Research and Education Shared Signals Sharing security threat indicators 代表的な標準仕様として、AB/Connect WGの OpenID Connect、FAPI WGのFAPI、MODRNA WGのCIBA、eKYC IDA WGのOIDC4IDA、DCP WGのOID4VCI/OID4VPなどがある。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  24. IETF RFC 策定プロセス フェーズ 説明 1 個人ドラフト 仕様著者が個人名でドラフトを作成する 2 WGドラフト

    WG Adoption Callを経てWGドラフトへ昇格する 3 仕様改訂作業 数年から十年以上に及ぶ議論と仕様改訂作業 4 WG承認 仕様改訂作業収束後、WG Last Call (WGLC) を発し、WGの承認を得る 5 IESG承認 Internet Engineering Steering Group (IESG) による承認を得る 6 RFC RFC番号が割り当てられ、RFCとして公開される Copyright © 2025 Authlete, Inc. All Rights Reserved.
  25. OpenID 仕様策定プロセス フェーズ 説明 1 ドラフト 仕様著者がドラフトを作成する 2 ドラフト改訂作業 数年に及ぶ議論と仕様改訂作業

    3 ドラフト公開レビュー きりの良いところで Implementer's Draft (実装者向け草稿) として 公開し、広くレビューを受ける 4 ドラフト承認 公開レビュー期間経過後、投票による承認を受ける 5 ドラフト公開 ドラフトに通し番号を付けて公開する 6 最終版公開レビュー ドラフト公開を繰り返し、仕様が安定したあと、最終版として公開 レビューを実施する 7 最終版承認 公開レビュー期間経過後、投票による承認を受ける 8 最終版公開 最終版として公開する Copyright © 2025 Authlete, Inc. All Rights Reserved.
  26. 例: FAPI の履歴 日付 仕様名 版 2017.02 Financial API Part

    1 ID1 2017.07 Financial API Part 2 ID1 2018.10 Financial-grade API ID2 2021.03 Financial-grade API Final 2021.07 FAPI 2.0 Baseline ID1 2023.01 FAPI 2.0 Security Profile ID2 2025.02 FAPI 2.0 Security Profile Final FAPI 1.0 ID1 から ID2 へ更新する際、Financial API は Financial-grade API へ改名 FAPI 1.0 から FAPI 2.0 へ更新する際、Financial-grade API は FAPI へ改名 FAPI 1.0 FAPI 2.0 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  27. IETF / OAuth (1/3) 仕様 説明 RFC 6749: The OAuth

    2.0 Authorization Framework★★★ OAuth 2.0の中心仕様/認可サーバ基本動作 RFC 6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage★★★ アクセストークン提示方法/BEARER認証 RFC 6819: OAuth 2.0 Threat Model and Security Considerations 脅威モデルとセキュリティ上の考慮事項 RFC 7009: OAuth 2.0 Token Revocation アクセストークン無効化 RFC 7521: Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants アサーションによるクライアント認証と認 可付与のベース仕様 (for RFC 7522/7523) RFC 7522: Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants SAMLアサーションによるクライアント認 証と認可付与 RFC 7523: JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants★★ JWTアサーションによるクライアント認証 と認可付与 RFC 7591: OAuth 2.0 Dynamic Client Registration Protocol★ 動的クライアント登録 RFC 7592: OAuth 2.0 Dynamic Client Registration Management Protocol 動的に登録されたクライアントの管理 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  28. IETF / OAuth (2/3) 仕様 説明 RFC 7636: Proof Key

    for Code Exchange by OAuth Public Clients★★ 認可コード横取り攻撃対策 RFC 7662: OAuth 2.0 Token Introspection★★ アクセストークン情報取得 RFC 8252: OAuth 2.0 for Native Apps ネイティブアプリでの考慮事項 RFC 8414: OAuth 2.0 Authorization Server Metadata★ 認可サーバに関する情報 RFC 8485: Vectors of Trust トラストの多元的表現 RFC 8628: OAuth 2.0 Device Authorization Grant デバイスフロー RFC 8693: OAuth 2.0 Token Exchange トークン交換 RFC 8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Token★★ X.509証明書によるクライアント認証と送 信者限定アクセストークン (MTLS) RFC 8707: Resource Indicators for OAuth 2.0 アクセストークン利用先限定 RFC 9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens JWT形式アクセストークン Copyright © 2025 Authlete, Inc. All Rights Reserved.
  29. IETF / OAuth (3/3) 仕様 説明 RFC 9101: The OAuth

    2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)★★ リクエストオブジェクト (JAR) RFC 9126: OAuth 2.0 Pushed Authorization Requests★★ 認可リクエストの事前登録 (PAR) RFC 9207: OAuth 2.0 Authorization Server Issuer Identification 認可レスポンスパラメータiss RFC 9396: OAuth 2.0 Rich Authorization Requests 認可詳細情報 (RAR) RFC 9449: OAuth 2.0 Demonstrating Proof of Possession (DPoP)★★ 公開鍵による送信者限定アクセストークン RFC 9470: OAuth 2.0 Step Up Authentication Challenge Protocal リソースアクセス時のユーザ再認証要求 RFC 9700: Best Current Practice for OAuth 2.0 Security ベストプラクティス RFC 9701: JSON Web Token (JWT) Response for OAuth Token Introspection イントロスペクションレスポンスのJWT化 RFC 9728: OAuth 2.0 Protected Resource Metadata★ リソースサーバに関する情報 (draft) OAuth 2.0 Attestation-Based Client Authentication アテステーションによるクライアント認証 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  30. IETF / JOSE 仕様 説明 RFC 7515: JSON Web Signature

    (JWS)★★★ JWS / 署名 RFC 7516: JSON Web Encryption (JWE)★ JWE / 暗号化 RFC 7517: JSON Web Key (JWK)★★★ JWK / 鍵 RFC 7518: JSON Web Algorithms (JWA)★ JWA / アルゴリズム RFC 7519: JSON Web Token (JWT)★★★ JWT RFC 7520: Examples of Protecting Content Using JSON Object Signing and Encryption (JOSE) JOSEの例 RFC 7638: JSON Web Key (JWK) Thumbprint JWKハッシュ値 / DPoPで利用 RFC 7797: JSON Web Signature (JWS) Unencoded Payload Option JWSのペイロード分離 RFC 7800: Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs) cnfクレーム / MTLS, DPoPで利用 RFC 8725: JSON Web Token Best Current Practices ベストプラクティス RFC 9278: JWK Thumbprint URI JWKハッシュ値のURI化 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  31. IETF / COSE 仕様 説明 RFC 8392: CBOR Web Token

    (CWT) CWT / CBOR版JWT RFC 8610: Concise Data Definition Language (CDDL): A National Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures CDDL / CBORデータ構造記法 RFC 8949: Concise Binary Object Representation (CBOR)★★ CBORフォーマットの定義 RFC 9052: CBOR Object Signing and Encryption (COSE): Structures and Process★ COSE / CBORデータの署名・暗号化 RFC 9053: CBOR Object Signing and Encryption (COSE): Initial Algorithms COSEの署名・暗号アルゴリズム RFC 9054: CBOR Object Signing and Encryption (COSE): Hash Algorithms COSEのハッシュアルゴリズム Many others 他多数 ISO/IEC 18013-5 (mdoc/mDL) 形式のVerifiable CredentialをOID4VCI/OID4VPで扱う際にCBOR/COSEの知識が必要になる。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  32. IETF / SD-JWT 仕様 説明 (draft) Selective Disclosure for JWTs

    (SD-JWT)★★ 選択的開示を実現するJWT系フォーマット (draft) SD-JWT-based Verifiable Credentials (SD-JWT VC)★★ SD-JWTベースのVerifiable Credential OID4VCI/OID4VPでSD-JWT VCを扱う。eIDAS 2.0でサポート必須とされるVCフォーマット。 ISO / mdoc 仕様 説明 ISO/IEC 18013-5 Personal identification – ISO-compliant driving license – Part 5 Mobile driving licence (mDL) application★★ CBORベースのVerifiable Credential OID4VCI/OID4VPでmdocを扱う。eIDAS 2.0でサポート必須とされるVCフォーマット。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  33. IETF / HTTP 仕様 説明 RFC 7239: Forwarded HTTP Extension

    Forwarded HTTPヘッダ RFC 7617: The 'Basic' HTTP Authentication Scheme★★★ BASIC認証 RFC 9110: HTTP Semantics★★★ HTTPセマンティックス RFC 9112: HTTP/1.1 HTTP/1.1 RFC 9113: HTTP/2 HTTP/2 RFC 9114: HTTP/3 HTTP/3 RFC 9421: HTTP Message Signatures HTTPメッセージに対する署名 RFC 9440: Client-Cert HTTP Header Field Client-Cert HTTPヘッダ RFC 9651: Structured Field Values for HTTP HTTPフィールド値の構造を標準化 Many others 他多数 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  34. IETF / Shared Signals 仕様 説明 RFC 8417: Security Event

    Token (SET) SET / セキュリティイベントトークン RFC 8935: Push-Based Security Event Token (SET) Delivery Using HTTP プッシュによるSET配送 RFC 8936: Poll-Based Security Event Token (SET) Delivery Using HTTP ポーリングによるSET配送 RFC 9493: Subject Identifiers for Security Event Tokens SET用サブジェクト識別子 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  35. OIDF / AB/Connect (1/2) 仕様 説明 OpenID Connect Core 1.0★★★

    OpenID Connectの中心仕様 OpenID Connect Discovery★★ IdPに関する情報 OpenID Connect Dynamic Client Registration 1.0★ 動的クライアント登録 OAuth 2.0 Multiple Response Type Encoding Practices★★ response_mode定義とresponse_type拡張 OAuth 2.0 Form Post Response Mode response_mode=form_post OpenID 2.0 to OpenID Connect Migration 1.0 OpenID 2.0からOpenID Connectへの移行 OpenID Connect RP-Initiated Logout 1.0 RP起点のログアウト OpenID Connect Session Management 1.0 セッション管理 OpenID Connect Front-Channel Logout 1.0 フロントチャネルでのログアウト OpenID Connect Back-Channel Logout 1.0 バックチャネルでのログアウト OpenID Connect Core Error Code unmet_authentication_requirements エラーコード登録 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  36. OIDF / AB/Connect (2/2) 仕様 説明 Initiating User Registration via

    OpenID Connect 1.0 prompt=create OpenID Federation 1.0★★ トラストチェーンによるネットワーク構築 Self-Issued OpenID Provider v2 SIOPv2 / 自己署名IDトークン発行 OpenID Connect Native SSO for Mobile Apps 同一ベンダ提供アプリ間のSSO OpenID Connect Claims Aggregation クレーム集約 OpenID Federation Extended Subordinate Listing 1.0 OpenID Federation List Endpointの拡張 OpenID Federation Wallet Architectures 1.0 ウォレットのEntity Type定義 OpenID Connect Relying Party Metadata Choices 1.0 自動登録時のRPメタデータの選択肢 OpenID Provider Commands 1.0 IdPからRPへのアカウント管理系コマンド Copyright © 2025 Authlete, Inc. All Rights Reserved.
  37. OIDF / Digital Credentials Protocols 仕様 説明 OpenID for Verifiable

    Credential Issuance (OID4VCI)★★ Verifiable Credentials発行 OpenID for Verifiable Credential Presentations (OID4VP)★★ Verifiable Presentations要求・発行 OpenID4VC High Assurance Interoperability Profile (HAIP)★ OpenID4VC仕様群のプロファイリング Security and Trust in OpenID for Verifiable Credentials Ecosystems OpenID4VC用のトラストアーキテクチャ OpenID for Verifiable Presentations over BLE Bluetooth Low EnergyでのVP送受信 Verifiable Credential / Verifiable Presentationのための仕様群。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  38. OIDF / EAP 仕様 説明 OpenID Connect Token Bound Authentication

    1.0 トークンバインディング OpenID Connect Extended Authentication Profile (EAP) ACR Values 1.0 acr値、amr値の定義 Googleによるトークンバインディング(後のRFC 8471)サポート打ち切りが決定打となり、トークンバインディングは日の目を見なかった。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  39. OIDF / eKYC and IDA 仕様 説明 OpenID Connect for

    Identity Assurance 1.0★★ OIDC4IDAの中心仕様 OpenID Identity Assurance Schema Definition 1.0 OIDC4IDAで用いるJSONのスキーマ OpenID Connect for Identity Assurance Claims Registration 1.0 OIDC4IDAで用いるクレームの定義 OpenID Connect Authority claims extension OIDC4IDAを法人に適用するための拡張 OpenID Connect Advanced Syntax for Claims (ASC) 1.0 クレーム変換構文 OpenID Attachments 1.0 証拠書類の添付 公的なエビデンスに基づく検証済みのユーザ属性情報を扱う仕様群。法的要件に基づく本人確認が必要なシーンで有用。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  40. OIDF / FAPI 仕様 説明 FAPI 2.0 Security Profile★★★ FAPI

    2.0の中心仕様 FAPI 2.0 Attacker Model FAPI 2.0攻撃者モデル Financial-grade API Security Profile (FAPI) 1.0 – Part 1: Baseline★ FAPI 1.0基本要件 Financial-grade API Security Profile (FAPI) 1.0 – Part 2: Advanced★ FAPI 1.0高度要件 JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)★★ 認可レスポンスのJWT化 Financial-grade API: Client Initiated Backchannel Authentication Profile FAPI・CIBA同時利用時の要件 Grant Management for OAuth 2.0 付与した権限の管理 FAPI 2.0 Message Signing★★ リクエスト・レスポンスに対する署名 FAPI 2.0 Http Signatures HTTPメッセージに対する署名 高度なセキュリティを実現するための仕様群。欧州・南米・中東などのAPIエコシステムで使われている。日本にも商用運用の事例がある。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  41. OIDF / FastFed 仕様 説明 FastFed Core 1.0 FastFedの中心仕様 FastFed

    Enterprise SAML Profile 1.0 SAMLによるFastFed実現 FastFed Enterprise SCIM Profile 1.0 SCIMによるFastFed実現 IdPとアプリケーション間でSSOやプロビジョニングの設定を自動でおこなうための仕様群。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  42. OIDF / HEART 仕様 説明 Health Relationship Trust Profile for

    OAuth 2.0 ヘルスケア領域へのOAuth 2.0適用 Health Relationship Trust Profile for Fast Healthcare Interoperability Resources (FHIR) OAuth 2.0 Scopes FHIR用OAuth 2.0スコープ Health Relationship Trust Profile for User-Managed Access 2.0 ヘルスケア領域へのUMA 2.0適用 Health Relationship Trust Profile for Fast Healthcare Interoperability Resources (FHIR) UMA 2 Resources FHIR用UMA 2.0リソース ヘルスケア領域のための仕様群。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  43. OIDF / iGov 仕様 説明 International Government Assurance Profile (iGov)

    for OAuth 2.0 公的機関向けOAuth 2.0要件 International Government Assurance Profile (iGov) for OpenID Connect 公的機関向けOpenID Connect要件 International Government Assurance Profile (iGov) Use Cases iGovのユースケース 公的機関のために高度なセキュリティ要件を定めることを目的としたiGovだったが、FAPIの登場により役目を終えた。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  44. OIDF / MODRNA 仕様 説明 OpenID Connect Client-Initiated Backchannel Authentication

    Flow – Core 1.0★★ CIBAの中心仕様 OpenID Connect MODRNA Authentication Profile 1.0 モバイルネットワークのユーザ認証 OpenID Connect Account Porting IdP変更対応 OpenID Connect User Questioning API 1.0 ユーザに質問を送信するためのAPI OpenID Connect MODRNA Discovery Profile 1.0 モバイルネットワーク版OIDC Discovery OpenID Connect Mobile Registration Profile 1.0 モバイルネットワーク版動的RP登録 モバイルネットワークオペレータ(MNO)向けの仕様群。ただし、MNに関係なく汎用的に使えるCIBAは他所でも使われている。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  45. OIDF / Shared Signals 仕様 説明 OpenID Shared Signals Framework

    Specification 1.0★★ Shared Signalsフレームワーク OpenID Continuous Access Evaluation Profile 1.0 CAEP / 継続的アクセス評価 OpenID RISC Profile Specification 1.0 RISC / リスク・インシデント情報共有 セキュリティ関連イベントの通知・共有のための仕様群。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  46. 認可フロー 仕様 フロー RFC 6749 Authorization Code RFC 6749 Implicit

    RFC 6749 Resource Owner Password Credentials RFC 6749 Client Credentials RFC 6749 Refresh Token RFC 7222 SAML 2.0 Assertion Authorization RFC 7523 JWT Bearer Token Authorization RFC 8628 Device Authorization RFC 8693 Token Exchange CIBA Client-Initiated Backchannel Authentication (POLL/PING/PUSH) OID4VCI Authorization Code-Based (Issuer State / RAR) OID4VCI Pre-Authorized Code Native SSO Token Exchange-Based 引き続き認可コードフローが 主要フロー。 CIBAフローサポート必須と している海外APIエコシステ ムあり。日本でも商用運用の 実績あり。 Token Exchangeフローの 採用事例が日本国内だけでも 複数存在する。建設業界では サポート必須。 OID4VCI仕様は認可コード フローを拡張。また事前認可 コードフローを新規定義。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  47. クライアント認証 仕様 クライアント認証方式 RFC 6749 client_secret_basic RFC 6749 client_secret_post RFC

    7523 client_secret_jwt RFC 7523 private_key_jwt RFC 8705 tls_client_auth RFC 8705 self_signed_tls_client_auth Attestation-Based Client Auth attest_jwt_client_auth 海外APIエコシステムでは、RFC 6749 で 定義されているクライアント認証方式は 使用されていない。共有鍵系なので安全 性が低いとみなされている。 海外APIエコシステムでは private_key _jwt または tls_client_auth が選択肢 となる。 VC用ウォレットのため、OAuth 2.0 Attestation-Based Client Authentication という仕様により、新しいクライアント 認証方式 (attest_jwt_client_auth) が 定義された。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  48. 認可リクエスト事前登録 RFC 9126 OAuth 2.0 Pushed Authorization Requests (通称 PAR)

    を用いて認可リクエスト を事前に認可サーバに登録する ことができる。 PAR を利用することで、認可 リクエストの詳細をフロント チャネルに晒すことを避けられ、 クライアント認証を使用でき、 認可エンドポイントに渡す URL の長さ制限を気にせずに大きな 認可リクエストを登録できる。 FAPI 2.0 では PAR の利用が必須 となっている。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  49. 送信者限定アクセストークン アクセストークンの正当な 所有者しかアクセストーク ンを利用できない仕組みは アクセストークン窃取への 対抗策となる。その仕組み として MTLS (RFC 8705)

    か DPoP (RFC 9449) が選択肢 となる。 FAPI 2.0 では MTLS または DPoP の利用が必須となって いる。 DPoPの仕組み Copyright © 2025 Authlete, Inc. All Rights Reserved.
  50. OAuth & OIDC 業界入門要点 標準仕様策定団体 • OAuth 2.0関連仕様はIETFのOAuth WGで策定作業が行われる。 •

    OpenID関連仕様はOIDFのWGで策定作業が行われる。 標準仕様策定プロセス • IETFの仕様は、個人ドラフト→WGドラフト→WG承認→IESG承認を経てRFCになる。 • OIDFの仕様は、Implementer's Draft公開を繰り返したのちに最終版となる。 関連仕様 • IETFのOAuth, JOSE, COSE, SD-JWT, HTTP, Shared Signals関連仕様を紹介。 • OIDFのAB/Connect, AuthZEN, DCP, EAP, eKYC&IDA, FAPI, FastFed, HEART, iGov, MODRNA, Shared Signals WGの仕様を紹介。 拡張仕様へのキャッチアップ • 拡張仕様の中でも特に留意しておくべきものを紹介。 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  51. ウェブブラウザ ウェブサービス ログインページ ログインページを生成し、 ウェブブラウザに返す。 (ID連携/開始) 選択された IdP 用の認証リクエストを 作成し、ウェブブラウザを認可エンド

    ポイントにリダイレクトする。 認可コードを添えてトークン エンドポイントにアクセスする。 アクセストークン IDトークン アクセストークンを添えてユーザー 情報エンドポイントにアクセスする。 ユーザー情報 ユーザーをログイン状態にし、 トップページに遷移させる。 (ID連携/コールバック) ログイン 登録済みアカウントでログイン ログインID パスワード l IdP Aでログイン l IdP Bでログイン l ・・・・・・ 外部 IdP でログイン IdP 認可エンドポイント 認可ページを生成し、 ウェブブラウザに返す。 (認可/決定) 認可コードを発行し、ウェブブラウザを ウェブサービスのリダイレクションエン ドポイント にリダイレクトする。 トークンエンドポイント アクセストークンと ID トークンを 発行する。 302 Found Location: ... openid, ... ウェブサービスが次の権限を要求 しています。承認しますか︖ 承認 ログインID パスワード 拒否 302 Found Location: ... ユーザー情報エンドポイント ユーザーの情報を返す。 トップページ トップページ (ログイン済み) 302 Found Location: ... エンドポイント群の URI 等、この IdP に 関する設定情報を返すエンドポイント IDトークンの署名検証用の公開鍵等、 OAuth/OIDC の処理で用いる公開鍵を 公開するエンドポイント ディスカバリーエンドポイント JWK Set エンドポイント トップページを返す。 OpenID ConnectによるID連携 Copyright © 2025 Authlete, Inc. All Rights Reserved.
  52. Authlete, Inc. and its officers, directors, employees, and agents shall

    not be liable for any damages, including direct, indirect, incidental, or consequential damages, that may arise from or relate to the use of or interpretation of this document. The information provided in this document is offered "as is" without any warranties, express or implied, regarding its accuracy, completeness, or reliability. Founded in Japan in September 2015, Authlete provides OAuth 2.0 and OpenID Connect implementation through web APIs as a SaaS solution. Authlete’s backend service has been adopted by enterprises worldwide, including the world’s top digital bank and the largest investment bank in Latin America. With a unique architecture, comprehensive implementation, and rapid adaptation to the latest specifications, Authlete maintains global competitiveness. Authlete also contributes to the development of global standards and their official conformance tests. Authlete is a member of the OpenID Foundation in the United States and sponsors the OAuth Security Workshop. With geographically distributed members, Authlete is a global company that celebrates diversity and inclusion. https://www.authlete.com/ Copyright © 2025 Authlete, Inc. All Rights Reserved.