「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[OAuth 2.0 拡張]]([[OAuth2.0 Proof of Possession]])~ [[Financial API (FAPI)]]([[FAPI1>FAPI Part 1 (Read Only API Security Profile)]]、[[FAPI2>FAPI Part 2 (Read and Write API Security Profile)]])、[[OAuth 2.1]] --[[UserAgentでOAuth2のTokenを取得するベスト・プラクティス]] ---[[OAuth2.0 mTLS>OAuth 2.0 Mutual TLS Client Authentication and Certificate Bound Access Tokens]](最初の派生) ---Token Binding(廃止の傾向) ---[[OAuth2.0 DPoP]] * 目次 [#zd5404ef] #contents *概要 [#n025cb23] [[OAuth2.0 mTLS>OAuth 2.0 Mutual TLS Client Authentication and Certificate Bound Access Tokens]]と同じTLS依存だが、コチラはブラウザが対応しインフラ構築不要の予定だったがブラウザ対応が頓挫し廃止 [[記名式切符>トークン#b38de47f]]作成に関する仕様:[[OAuth2.0 mTLS>OAuth 2.0 Mutual TLS Client Authentication and Certificate Bound Access Tokens]]と同じTLS依存だが、コチラはブラウザが対応しインフラ構築不要の予定だったがブラウザ対応が頓挫し廃止 -Token Binding(コア仕様)とはTLSセッションから派生した鍵にトークンを紐付ける仕組み。 -TLSのブラウザ・サポートが必須であり、実装をブラウザ・ベンダに期待していた。 -現在では廃止となり、よりアプリ層で完結できる[[OAuth2.0 DPoP]]によって代替された。 *詳細 [#y2a190ca] **仕組み [#i2a66cd5] -TLSハンドシェイク時にクライアントが鍵ペアを生成 -TLSセッション固有の「Token Binding ID」を導出 -すべてのトークン(Cookie, OAuth token等)をこの ID に束縛 **3本柱 [#o2b5d337] 2018 年 10 月初旬に Token Binding 関連RFC * 3 の[[RFC 8471、8472、8473>#z9b55bcd]]がリリースされた。 -RFC 8471 Token Binding Protocol本体(鍵導出・証明の方法) -RFC 8472 TLS拡張(TLSハンドシェイクへの組み込み方) -RFC 8473 HTTP上での運搬方法(Sec-Token-Binding ヘッダー) **廃止までの流れ [#h60f528d] ドラフトの作成段階では、比較的少数のサポートしかなかった。~ (TLSスタックなどインフラレイヤの変更を伴い、アプリケーションレイヤだけで解決できない)。 ***2015年頃 — 提案・草案 [#ob3ac654] -MicrosoftとGoogleが中心となり、IETFに提案 -TLSハンドシェイク時にクライアントが鍵ペアを生成し、サーバーにバインドするという概念が登場 -RFC草案(draft-ietf-tokbind-*)シリーズとして議論開始 ***2019〜2020年 — ブラウザ実装 [#sbd666b7] -Google Chromeがサポート(フラグ付き) -Microsoft EdgeもWindows環境で実装 -しかし、Firefoxは実装せず ***Chromeがサポートを中止 [#e00870e5] ChromeがHTTP/3・QUIC との互換性問題などを理由に実装を削除 -コミュニテイから強く要望されたにも関わらず~ https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/OkdLUyYmY1E -Chrome は Token Binding サポート中止を決定~ https://www.chromestatus.com/feature/5097603234529280 ※ 背景:実装コストの高さ、ベンダー合意の欠如、不参加代替技術の台頭 ***事実上の撤退 [#va92bdee] 2021〜2022年 — 事実上の撤退 -ブラウザ・ベンダー間での合意が得られず、広範な普及には至らず -IIETFのToken Binding WGがクローズ、仕様ごと事実上廃止 ***[[CDR>https://consumerdatastandardsaustralia.github.io/]]では利用禁止 [#fb235f5e] 11.3. Holder of Key Mechanism – Consumer Data Right Security Profile~ https://consumerdatastandardsaustralia.github.io/infosec/#11-3-holder-of-key-mechanism -MTLS MUST be supported as a Holder of Key (HoK) Mechanism.~ MTLSは、鍵保有者(HoK)メカニズムとしてサポートされなければなりません。 -OAUTB SHALL NOT be supported due to a lack industry support.~ OAUTBは、業界でのサポートが不足しているため、サポートされません。 -MTLS HoK allows issued tokens to be bound to a client certificate as specified in section 3 of [MTLS].~ MTLS HoKは、[MTLS]のセクション3で規定されているように、発行されたトークンをクライアント証明書に紐付けることを可能にします。 *参考 [#la68673c] **[[OAuth 2.0 Token Binding]] [#mded6633] **関連RFC [#z9b55bcd] ***TLS Extension for Token Binding Protocol Negotiation [#te470607] - https://tools.ietf.org/html/draft-ietf-oauth-token-binding-06#ref-I-D.ietf-tokbind-negotiation --https://tools.ietf.org/html/draft-ietf-tokbind-negotiation-10 ↓ ↓ ↓ -RFC 8472 - Transport Layer Security (TLS) Extension for Token Binding Protocol Negotiation~ https://tools.ietf.org/html/rfc8472 ***The Token Binding Protocol Version 1.0 [#a15d285a] -https://tools.ietf.org/html/draft-ietf-oauth-token-binding-06#ref-I-D.ietf-tokbind-protocol --https://tools.ietf.org/html/draft-ietf-tokbind-protocol-16 ↓ ↓ ↓ -RFC 8471 - The Token Binding Protocol Version 1.0~ https://tools.ietf.org/html/rfc8471 ***Token Binding over HTTP [#y8043850] -https://tools.ietf.org/html/draft-ietf-oauth-token-binding-06#ref-I-D.ietf-tokbind-https --https://tools.ietf.org/html/draft-ietf-tokbind-https-12 ↓ ↓ ↓ -RFC 8473 - Token Binding over HTTP~ https://tools.ietf.org/html/rfc8473 ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:ASP.NET Identity]], [[:OAuth]]