ONTAPによるクライアント アクセスの制御方法
OAuth 2.0を適切に設計、導入するには、ONTAPがどのように許可設定を使用してクライアントのアクセス可否を判定しているのかを理解しておく必要があります。ここでは、アクセスを制御するために使用する主な手順をONTAPリリース別に紹介します。
|
|
ONTAP 9.15.1では、OAuth 2.0の重要な更新はありませんでした。9.15.1リリースを使用している場合は、ONTAP 9.14.1の説明を参照してください。 |
ONTAP 9.16.1
ONTAP 9.16.1では、OAuth 2.0の標準のサポートが拡張され、ネイティブのEntra IDグループ用のMicrosoft Entra ID固有の拡張機能と外部のロール マッピングが追加されています。
ONTAP 9.16.1のクライアント アクセスの制御
アクセス トークンに自己完結型のスコープが含まれている場合、ONTAPは最初にそれらのスコープを調べます。自己完結型スコープがない場合は、手順2に進みます。
1つ以上の自己完結型スコープが存在する場合、ONTAPは明示的な*ALLOW*または*DENY*の決定が下されるまで各スコープを適用します。明示的な決定が下されると、処理は終了します。
ONTAPが明示的にアクセスの可否を判定できない場合は、手順2に進みます。
ONTAPはブールパラメータ `use-local-roles-if-present`を調べます。このフラグの値は、ONTAPに定義された各認証サーバーに対して個別に設定されます。
-
値が `true`の場合は、手順 3 に進みます。
-
値が `false`の場合、処理は終了し、アクセスは拒否されます。
アクセストークンの `scope`または `scp`フィールド、あるいはクレームとして名前付きRESTロールが含まれている場合、ONTAPはそのロールを使用してアクセス決定を行います。その結果は常に*ALLOW*または*DENY*となり、処理は終了します。
指定RESTロールがない場合、またはロールが見つからない場合は、手順4に進みます。
アクセス トークンからユーザ名が抽出され、アプリケーション「http」にアクセスできるユーザとの照合が試みられます。ユーザは、認証方法に基づいて次の順序で検証されます。
-
password
-
domain(Active Directory)
-
nsswitch(LDAP)
一致するユーザーが見つかった場合、ONTAPはそのユーザーに定義されたロールを使用してアクセスを決定します。その結果は常に*ALLOW*または*DENY*となり、処理は終了します。
一致するユーザがいない場合、またはアクセス トークンにユーザ名が含まれていない場合は、手順5に進みます。
1つ以上のグループが含まれている場合、フォーマットが検査されます。グループがUUIDで表現されている場合は、内部グループマッピングテーブルが検索されます。一致するグループと関連付けられたロールがある場合、ONTAPはグループに定義されているロールを使用してアクセスを決定します。その結果は常に*ALLOW*または*DENY*となり、処理は終了します。詳細については、"ONTAP で OAuth 2.0 または SAML IdP グループを使用する"をご覧ください。
グループが名前で表現され、ドメインまたはnsswitch認証が設定されている場合、ONTAPはそれぞれActive DirectoryまたはLDAPグループとの照合を試みます。グループが一致する場合、ONTAPはグループに定義されているロールを使用してアクセス判定を行います。その結果は常に*ALLOW*または*DENY*となり、処理は終了します。
一致するグループがない場合、またはアクセス トークンにグループが含まれていない場合、アクセスは拒否され、処理は終了します。
ONTAP 9.14.1
サポートされている初期のOAuth 2.0は、OAuth 2.0の標準機能に基づいて、ONTAP 9.14.1で導入されました。
ONTAP 9.14.1のクライアント アクセスの制御
アクセス トークンに自己完結型のスコープが含まれている場合、ONTAPは最初にそれらのスコープを調べます。自己完結型スコープがない場合は、手順2に進みます。
1つ以上の自己完結型スコープが存在する場合、ONTAPは明示的な*ALLOW*または*DENY*の決定が下されるまで各スコープを適用します。明示的な決定が下されると、処理は終了します。
ONTAPが明示的にアクセスの可否を判定できない場合は、手順2に進みます。
ONTAPはブールパラメータ `use-local-roles-if-present`を調べます。このフラグの値は、ONTAPに定義された各認証サーバーに対して個別に設定されます。
-
値が `true`の場合は、手順 3 に進みます。
-
値が `false`の場合、処理は終了し、アクセスは拒否されます。
アクセストークンの `scope`または `scp`フィールドに名前付きREST roleが含まれている場合、ONTAPはそのロールを使用してアクセスを決定します。その結果は常に*ALLOW*または*DENY*となり、処理は終了します。
指定RESTロールがない場合、またはロールが見つからない場合は、手順4に進みます。
アクセス トークンからユーザ名が抽出され、アプリケーション「http」にアクセスできるユーザとの照合が試みられます。ユーザは、認証方法に基づいて次の順序で検証されます。
-
password
-
domain(Active Directory)
-
nsswitch(LDAP)
一致するユーザーが見つかった場合、ONTAPはそのユーザーに定義されたロールを使用してアクセスを決定します。その結果は常に*ALLOW*または*DENY*となり、処理は終了します。
一致するユーザがいない場合、またはアクセス トークンにユーザ名が含まれていない場合は、手順5に進みます。
1つ以上のグループが含まれていて、domainまたはnsswitchの許可が設定されている場合、ONTAPはそれらのグループとそれぞれActive DirectoryまたはLDAPグループとの照合を試みます。
グループが一致する場合、ONTAPはグループに定義されたロールを使用してアクセスを決定します。その結果は常に*ALLOW*または*DENY*となり、処理は終了します。
一致するグループがない場合、またはアクセス トークンにグループが含まれていない場合、アクセスは拒否され、処理は終了します。