エフサステクノロジーズ株式会社

本ページの製品は2024年4月1日より、エフサステクノロジーズ株式会社に統合となり、順次、切り替えを実施してまいります。一部、富士通表記が混在することがありますので、ご了承ください。

ONTAP 9.14

to English version

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

セキュリティ上のニーズに応じて、オプションで相互TLS(mTLS)を設定して強力なクライアント認証を導入できます。OAuth 2.0環境の一部としてONTAPでmTLSを使用すると、アクセス トークンが、その発行を受けたクライアントしか使用できなくなります。

相互TLSとOAuth 2.0

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

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

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

それぞれの設定で、結果とONTAPによって実行されるアクションは、設定パラメーターの値、アクセス トークンの内容、クライアント証明書によって異なります。表内のパラメーターは、制限が最も緩いものから最も厳しいものの順に並んでいます。
パラメーター 説明

なし

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

リクエスト

送信者限定アクセス トークンがクライアントから提示された場合に、OAuth 2.0の相互TLS認証が実行されます。つまり、確認クレーム(プロパティx5t#S256が含まれるもの)がアクセス トークンに存在する場合のみ、mTLSが実行されます。これがデフォルト設定です。

必須

許可サーバーによって発行されたすべてのアクセス トークンについて、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では、オプションのパラメーターuse-mutual-tlsを指定して、security oauth2 clientコマンドを使用します。詳細については、「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つの値が一致した場合、API要求を行ったクライアントが、アクセス トークンの発行元であるクライアントと同じであることが、ONTAPにより確認されます。

Top of Page