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

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

ONTAP 9.14

to English version

ONTAPクライアント許可のオプション

ONTAPクライアント許可のカスタマイズには、いくつかのオプションが用意されています。許可の決定は、最終的にはアクセス トークンに含まれる、またはアクセス トークンから導き出されたONTAP RESTロールに基づいて行われます。

OAuth 2.0用に許可を設定する際に使用できるのは、ONTAP RESTロールのみです。従来のONTAPロールはサポートされていません。

はじめに

ONTAPに導入されたOAuth 2.0は、柔軟性と堅牢性を考慮した設計になっていて、ONTAP環境の保護に必要なオプションが揃っています。ONTAPクライアント許可を定義するための設定カテゴリーは、大きく分けて3つあります。これらの設定オプションは、相互排他的です。

ONTAPでは、構成に基づく最適なオプションが1つだけ適用されます。ONTAPでアクセス可否の判定に際し構成定義がどのように処理されるかの詳細については、「ONTAPによるアクセスの制御方法」を参照してください。

OAuth 2.0の自己完結型スコープ

このスコープには、1つ以上のカスタムRESTロールが含まれ、それぞれが1つの文字列にカプセル化されています。ONTAPロールの定義には依存しません。スコープ文字列は、許可サーバーで定義する必要があります。

ローカルのONTAP固有のRESTロールとユーザー

設定に応じて、アクセス可否の判定にローカルONTAP ID定義を使用できます。次のオプションがあります。

  • 単一の指定RESTロール

  • ユーザー名とローカルONTAPユーザーの一致

指定ロールのスコープ構文は、ontap-role-<URL-encoded-ONTAP-role-name>です。たとえば、ロールが「admin」の場合、スコープ文字列は「ontap-role-admin」になります。

Active DirectoryグループまたはLDAPグループ

ローカルONTAPの定義を調べてもアクセスの可否を判定できない場合は、Active Directory(「domain」)グループかLDAP(「nsswitch」)グループが使用されます。グループ情報は、次の2つの方法のいずれかで指定できます。

  • OAuth 2.0のスコープ文字列

    グループ メンバーシップを持つユーザーがいないクライアントのクレデンシャル フローを使用する機密アプリケーションをサポートします。スコープは、ontap-group-<URL-encoded-ONTAP-group-name>の構文で指定する必要があります。たとえば、グループが「development」の場合、スコープ文字列は「ontap-group-development」になります。

  • 「グループ」のクレーム

    これは、リソース オーナー(パスワード グラント)フローを使用してADFSによって発行されるアクセス トークンが対象です。

自己完結型OAuth 2.0スコープ

自己完結型スコープは、アクセス トークンで伝送される文字列です。それぞれが完結したカスタム ロール定義であり、ONTAPがアクセスの可否を判定するために必要なものがすべて含まれています。スコープは、ONTAP内で定義されているRESTロールとは別の、独立したものです。

スコープ文字列のフォーマット

基本的に、スコープは連続した文字列で表され、コロンで区切られた6つの値で構成されます。ここでは、スコープ文字列で使用されるパラメーターについて説明します。

ONTAPリテラル

スコープは、小文字のリテラル値ontapで始まる必要があります。これにより、スコープがONTAPに固有であることが識別されます。

クラスタ

スコープが適用されるONTAPクラスタを定義します。指定できる値は、次のとおりです。

  • クラスタUUID

    単一のクラスタを特定します。

  • アスタリスク(*

    スコープをすべてのクラスタに適用することを意味します。

ONTAP CLIコマンドcluster identity showを使用すると、クラスタのUUIDを表示できます。指定しない場合は、スコープがすべてのクラスタに適用されます。

ロール

自己完結型スコープに含まれるRESTロールの名前です。この値は、ONTAPで確認されたり、ONTAPに定義されている既存のRESTロールと照合されたりすることはありません。この名前は、ロギングに使用されます。

アクセス レベル

この値は、スコープ内でAPIエンドポイントを使用する場合にクライアント アプリケーションに適用されるアクセス レベルを表します。次の表に、設定できる6つの値をまとめておきます。

アクセス レベル 説明

none

指定したエンドポイントへのアクセスをすべて拒否します。

readonly

GETを使用した読み取りアクセスのみを許可します。

read_create

読み取りアクセスと、POSTを使用した新しいリソース インスタンスの作成を許可します。

read_modify

読み取りアクセスと、PATCHを使用した既存のリソースの更新を許可します。

read_create_modify

削除以外のアクセスをすべて許可します。許可される処理は、GET(読み取り)、POST(作成)、PATCH(更新)です。

all

フル アクセスを許可します。

SVM

スコープが適用されるクラスタ内のSVMの名前です。すべてのSVMを示す場合は、値に(アスタリスク)を使用します。

この機能は、ONTAP 9.14.1では完全にはサポートされていません。SVMのパラメーターは無視して、アスタリスクをプレースホルダとして使用できます。

REST API URI

リソースまたは一連の関連リソースへの完全パスまたは部分パスです。文字列は、/apiで始める必要があります。値を指定しない場合は、ONTAPクラスタのすべてのAPIエンドポイントにスコープが適用されます。

スコープの例

自己完結型スコープの例を、いくつか紹介します。

ontap:*:joes-role:read_create_modify:*:/api/cluster

このロールを割り当てられたユーザーに、/clusterエンドポイントへの読み取り、作成、変更のためのアクセスを許可します。

CLI管理ツール

自己完結型スコープの管理をしやすく、エラーを発生しにくくするために、ONTAPでは、入力したパラメーターに基づいてスコープ文字列を生成するCLIコマンドsecurity oauth2 scopeを使用できます。

security oauth2 scopeコマンドには、入力内容に応じて次の2つのユースケースがあります。

  • CLIパラメーターからスコープ文字列を生成

    このバージョンのコマンドを使用すると、入力したパラメーターに基づいてスコープ文字列を生成できます。

  • スコープ文字列からCLIパラメーターを生成

    このバージョンのコマンドを使用すると、入力したスコープ文字列に基づいてコマンド パラメーターを生成できます。

次の例は、スコープ文字列を生成するものです。コマンド例に続いて、出力結果も掲載しています。定義は、すべてのクラスタに適用されます。

security oauth2 scope cli-to-scope -role joes-role -access readonly -api /api/cluster

ontap:*:joes-role:readonly:*:/api/cluster

ONTAPによるアクセスの制御方法

OAuth 2.0を適切に設計、導入するには、ONTAPがどのように許可設定を使用してクライアントのアクセス可否を判定しているのかを理解しておく必要があります。

手順1:自己完結型スコープ

アクセス トークンに自己完結型のスコープが含まれている場合、ONTAPは最初にそれらのスコープを調べます。自己完結型スコープがない場合は、手順2に進みます。

1つ以上の自己完結型スコープが存在する場合、ONTAPは明示的に許可または拒否を判定できるまで、各スコープを適用します。明示的な判定ができた場合、処理は終了します。

ONTAPが明示的にアクセスの可否を判定できない場合は、手順2に進みます。

手順2:ローカル ロール フラグの確認

ONTAPは、use-local-roles-if-presentフラグの値を調べます。このフラグの値は、ONTAPに定義された許可サーバーごとに、個別に設定されます。

  • 値がtrueの場合は、手順3に進みます。

  • 値がfalseの場合は、処理を終了してアクセスは拒否されます。

手順3:指定ONTAP RESTロール

アクセス トークンに指定RESTロールが含まれている場合、ONTAPはそのロールを使用してアクセスの可否を判定します。この場合、必ず許可または拒否の判定が下され、処理は終了します。

指定RESTロールがない場合、またはロールが見つからない場合は、手順4に進みます。

手順4:ローカルONTAPユーザー

アクセス トークンからユーザー名が抽出され、ローカルONTAPユーザーとの照合が試みられます。

一致するローカルONTAPユーザーがいた場合、ONTAPは、そのユーザーに定義されたロールを使用してアクセスの可否を判定します。この場合、必ず許可または拒否の判定が下され、処理は終了します。

一致するローカルONTAPユーザーがいない場合、またはアクセス トークンにユーザー名が含まれていない場合は、手順5に進みます。

手順5:グループとロールのマッピング

アクセス トークンからグループが抽出され、グループとの照合が試みられます。グループは、Active Directoryか同等のLDAPサーバーを使用して定義します。

一致するグループがある場合、ONTAPは、そのグループに定義されたロールを使用してアクセスの可否を判定します。この場合、必ず許可または拒否の判定が下され、処理は終了します。

一致するグループがない場合、またはアクセス トークンにグループが含まれていない場合、アクセスは拒否され、処理は終了します。

Top of Page