リソース サーバの役割は、アクセス トークンを検証することです。

認可ポリシーの使用

このリリースではスコープがサポートされていないため、スコープとリソースのマッピングは使用できません。つまり、スコープのネイティブ サポートがないため、フェーズ 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 を使用して任意のカスタム アクションで簡単に使用できます。

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 を構成することはできません。