2. Mutual TLS for OAuth Client Authentication
2. Mutual TLS for OAuth Client Authentication
本セクションは OAuth 2.0 [RFC6749] のセクション 2.3 の拡張として, mutual-TLS X.509 クライアント証明書を client credentials として用いる 2 つの異なる方法を定義する. クライアント認証に mutual TLS を要するかは, クライアントが動的登録, 静的設定, その他の方法で確立されたかにかかわらず, authorization server が当該クライアントのポリシーまたは設定に基づいて決定する.
OAuth クライアント認証に TLS を利用するには, クライアントと authorization server 間の TLS 接続は mutual-TLS X.509 証明書認証で確立または再確立されていなければならない (すなわち TLS ハンドシェイク中にクライアントの Certificate および CertificateVerify メッセージが送られる).
mutual-TLS クライアント認証を用いる authorization server へのすべての要求において, クライアントは OAuth 2.0 [RFC6749] のセクション 2.2 に記載の client_id パラメータを含めなければならない. client_id の存在により authorization server は証明書の内容とは独立にクライアントを識別しやすくなる. authorization server はクライアント識別子で設定を検索し, TLS ハンドシェイクで提示された証明書を当該クライアントの期待クレデンシャルと照合する. authorization server は以下のセクション 2.1 または 2.2 に記載のとおりクライアントと証明書のバインドを強制しなければならない. 証明書が提示されないか, 提示されたものが与えられた client_id の期待と一致しない場合, authorization server は [RFC6749] のセクション 5.2 に従い invalid_client エラーコードで通常の OAuth 2.0 エラー応答を返し, クライアント認証の失敗を示す.