リソース サーバの役割は、アクセス トークンを検証することです。
認可ポリシーの使用
このリリースではスコープがサポートされていないため、スコープとリソースのマッピングは使用できません。つまり、スコープのネイティブ サポートがないため、フェーズ 1 のスコープと呼ばれる一致タイプは使用できません。
ただし、スコープはアクセス トークン内の要求(属性値のペア)の 1 つです。したがって、属性一致を使用してスコープベースの認可一致を間接的に実現できます。
たとえば、管理者が /apiA を ScopeA にマッピングし、/apiB を ScopeB にマッピングしたいとします。これは、次の認可ポリシーを使用して属性一致として記述できます。
1+----------------------------+-------------------------------+ 2| Field | Value | 3+----------------------------+-------------------------------+ 4| authz_rules[1] | | 5| match | | 6| attr_matches[1] | | 7| attribute_name | scope | 8| attribute_value_list | | 9| match_criteria | CONTAINS | 10| match_str[1] | scopeA | 11| path | | 12| match_criteria | BEGINS_WITH | 13| match_str[1] | /apiA | 14| action | | 15| type | ALLOW_ACCESS | 16| authz_rules[2] | | 17| match | | 18| attr_matches[1] | | 19| attribute_name | scope | 20| attribute_value_list | | 21| match_criteria | CONTAINS | 22| match_str[1] | scopeB | 23| path | | 24| match_criteria | BEGINS_WITH | 25| match_str[1] | /apiB | 26| action | | 27| type | ALLOW_ACCESS | 28| authz_rules[3] | | 29| match | | 30| path | | 31| match_criteria | BEGINS_WITH | 32| match_str[1] | / | 33| action | | 34| type | HTTP_LOCAL_RESPONSE | 35| status_code | HTTP_RESPONSE_STATUS_CODE_401 | 36| authz_rules[4] | | 37| index | 1 | 38+----------------------------+-------------------------------+
DataScript の使用例
DataScript API |
oauth_get_claim |
説明 |
要求の一部であるスコープをマッピングするために使用されます |
例 |
/apiA を ScopeA にマッピングし、/apiB を ScopeB にマッピングするには: path = avi.http.get_path() avi.vs.log(path) values, count = avi.http.oauth_get_claim(avi.OAUTH_ACCESS_TOKEN, "scope") for i = 1,count,1 do avi.vs.log(values[i]) avi.vs.log("checking scope11") if string.match(values[i],"scope1") and string.match(path, "api1") then allow = true avi.vs.log("api1 scope1 found ") end avi.vs.log("checking scope2") if string.match(values[i],"scope1") and string.match(path, "api2") then allow = true avi.vs.log("api2 scope 2found ") end end if allow == false then avi.http.response(403) end |
DataScript を使用したトークンの抽出
NSX Advanced Load Balancer バージョン 22.1.3 以降では、OAuth 用の新しい DataScript 関数 (avi.http.oauth_get_token) がサポートされています。この関数は、セッションの確立後にユーザーの OAuth セッションからトークンを抽出します。詳細については、avi.http.oauth_get_token(TOKEN_TYPE)(『VMware NSX Advanced Load Balancer DataScript ガイド』の「HTTP 関数」セクション)を参照してください。
OIDC でのログアウト サポート
NSX Advanced Load Balancer バージョン 22.1.3 以降では、OpenID に対するクライアント/証明書利用者 (RP) が開始したログアウトがサポートされています。
NSX Advanced Load Balancer(OAuth クライアント (RP))は、ユーザーのユーザー エージェントを IDP のログアウト エンドポイントにリダイレクトすることで ID プロバイダ (IDP) にログアウトするよう指示する要求を開始します。
詳細については、「OIDC でのログアウト サポート」を参照してください。
注意事項と制限
認可コードの付与のみがサポートされています。
スコープと同意画面はサポートされていません。
同じ仮想サービスを使用して複数の IDP を構成することはできません。