Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

相互TLSを使用したクライアント認証

共同作成者

セキュリティのニーズに応じて、オプションでMutual TLS(MTLS)を設定して強力なクライアント認証を実装できます。OAuth 2.0展開の一部としてONTAPで使用される場合、MTLSはアクセストークンが最初に発行されたクライアントによってのみ使用されることを保証します。

OAuth 2.0を使用した相互TLS

Transport Layer Security(TLS)は、2つのアプリケーション(通常はクライアントブラウザとWebサーバ)間にセキュアな通信チャネルを確立するために使用されます。相互TLSは、クライアント証明書を介してクライアントを強力に識別できるようにすることで、これを拡張します。OAuth 2.0を使用したONTAPクラスタで使用する場合、送信者に制約されたアクセストークンを作成して使用することで、基本的なMTLS機能が拡張されます。

送信者に制約されたアクセストークンは、最初に発行されたクライアントのみが使用できます。この機能をサポートするために、新しい確認請求 (cnf)がトークンに挿入されます。フィールドにプロパティが含まれています x5t#S256 アクセストークンを要求するときに使用されるクライアント証明書のダイジェストを保持します。この値は、トークンの検証の一環としてONTAPによって検証されます。送信者に制約されていない許可サーバーによって発行されたアクセストークンには、追加の確認要求は含まれません。

認可サーバごとにMTLSを個別に使用するようにONTAPを設定する必要があります。たとえば、CLIコマンド security oauth2 client パラメータを含む use-mutual-tls 次の表に示す3つの値に基づいてMTLS処理を制御します。

メモ 各構成で、ONTAPによって実行される結果とアクションは、構成パラメータの値、およびアクセストークンとクライアント証明書の内容によって異なります。テーブル内のパラメータは、最小から最も制限の厳しいものに分類されています。
パラメータ 説明

なし

OAuth 2.0相互TLS認証は、認可サーバーでは完全に無効になっています。ONTAPは、確認要求がトークンに含まれている場合やクライアント証明書がTLS接続で提供されている場合でも、MTLSクライアント証明書認証を実行しません。

リクエスト

OAuth 2.0相互TLS認証は、送信者に制約されたアクセストークンがクライアントによって提示された場合に適用されます。つまり、MTLSは、確認請求(財産を含む)の場合にのみ適用されます。 x5t#S256)がアクセストークンに含まれています。これがデフォルト設定です。

必須

OAuth 2.0相互TLS認証は、認可サーバーによって発行されたすべてのアクセストークンに適用されます。したがって、すべてのアクセストークンは送信者に制約される必要があります。アクセストークンに確認要求がない場合、または無効なクライアント証明書がある場合、認証およびREST API要求は失敗します。

導入フローの概要

ONTAP環境でOAuth 2.0でMTLSを使用する場合の一般的な手順を以下に示します。を参照してください "RFC 8705:『OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens』" 詳細:

手順1:クライアント証明書を作成してインストールする

クライアントIDの確立は、クライアントの秘密鍵に関する知識の証明に基づいています。対応する公開鍵は、クライアントから提示された署名付きX.509証明書に配置されます。クライアント証明書の作成手順の概要は次のとおりです。

  1. 公開鍵と秘密鍵のペアを生成する

  2. 証明書署名要求を作成する

  3. CSRファイルを既知のCAに送信する

  4. CAが要求を検証し、署名済み証明書を発行

通常、クライアント証明書はローカルのオペレーティングシステムにインストールするか、curlなどの一般的なユーティリティを使用して直接使用できます。

ステップ2:MTLSを使用するようにONTAPを設定する

MTLSを使用するようにONTAPを設定する必要があります。この設定は、認可サーバごとに個別に行われます。たとえば、CLIでは次のコマンドを使用します。 security oauth2 client は、オプションのパラメータとともに使用されます。 use-mutual-tls。を参照してください "ONTAPでのOAuth 2.0の導入" を参照してください。

手順3:クライアントがアクセストークンを要求する

クライアントは、ONTAPに設定された認証サーバからアクセストークンを要求する必要があります。クライアントアプリケーションは、手順1で作成およびインストールした証明書でMTLSを使用する必要があります。

ステップ4:認証サーバーがアクセストークンを生成する

認可サーバはクライアント要求を検証し、アクセストークンを生成します。この一部として、クライアント証明書のメッセージダイジェストが作成されます。このダイジェストは、トークンに確認要求として含まれます(フィールド cnf)。

手順5:クライアントアプリケーションがONTAPにアクセストークンを提示する

クライアントアプリケーションは、ONTAPクラスタへのREST API呼び出しを実行し、アクセストークンを* bearerトークン*として承認要求ヘッダーに含めます。クライアントは、アクセストークンの要求に使用したのと同じ証明書を持つMTLSを使用する必要があります。

ステップ6: ONTAPはクライアントとトークンを検証します。

ONTAPは、HTTP要求でアクセストークンと、MTLS処理の一部として使用されるクライアント証明書を受信します。ONTAPは最初にアクセストークンの署名を検証します。設定に基づいて、ONTAPはクライアント証明書のメッセージダイジェストを生成し、トークン内の確認要求* cnf*と比較します。2つの値が一致する場合、ONTAPは、API要求を行うクライアントがアクセストークンが最初に発行されたクライアントと同じであることを確認しました。