請求身份認證
更新時間 2024-09-09 19:40:57
最近更新時間: 2024-09-09 19:40:57
分享文章
本章節介紹請求身份認證
概述
請求身份認證(RequestAuthentication)定義了終端用戶請求網格服務時候的身份認證策略;如果認證信息非法,請求將被攔截;默認情況下,如果不帶身份認證信息,請求將被放過,可以配置特定授權策略要求請求的身份信息不能為空來攔截身份認證信息為空的請求。
請求身份認證配置粒度
請求身份認證策略支持三種,全局、命名空間和工作負載級;當策略的命名空間為系統命名空間時(默認為istio-system),策略為全局生效;當策略命名空間不是系統命名空間,且沒有選擇工作負載,策略將只在當前命名空間生效并覆蓋全局策略;當策略在非系統命名空間,且選擇了工作負載,則只對指定工作負載生效。
下面的配置中RequestAuthentication定義了foo命名空間下匹配app: httpbin標簽的工作負載使用的jwt認證策略,同時AuthorizationPolicy定義了對請求來源的匹配,要求認證信息不能為空。
apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
name: httpbin
namespace: foo
spec:
selector:
matchLabels:
app: httpbin
jwtRules:
- issuer: "issuer-foo"
jwksUri: //ctyun.com/.well-known/jwks.json
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: httpbin
namespace: foo
spec:
selector:
matchLabels:
app: httpbin
rules:
- from:
- source:
requestPrincipals: ["*"]
創建請求身份認證
- 進入網格控制臺,選擇 網格安全中心 –> 請求身份認證菜單。
- 選擇命名空間,列表頁會展示當前命名空間下的請求身份認證策略。
- 點擊創建按鈕,進行請求身份認證的創建。
修改請求身份認證
- 進入網格控制臺,選擇 網格安全中心 –> 請求身份認證菜單。
- 選擇命名空間,列表頁會展示當前命名空間下的請求身份認證策略,選擇操作欄的編輯選項,修改策略,保存即可。
刪除請求身份認證
- 進入網格控制臺,選擇 網格安全中心 –> 請求身份認證菜單。
- 選擇命名空間,列表頁會展示當前命名空間下的請求身份認證策略,選擇操作欄的刪除選項,刪除選定的策略即可。
RequestAuthentication配置說明:
| 字段 | 類型 | 必選 | 說明 |
|---|---|---|---|
| selector | WorkloadSelector | No | 工作負載選擇器,選擇策略生效的工作負載。 |
| jwtRules | JWTRule | No | JWT配置列表,表示當前工作負載所支持的jwt配置(不支持一個請求帶多個jwt認證信息的情況)。 |
JWTRule
| 字段 | 類型 | 必選 | 說明 |
|---|---|---|---|
| issuer | string | Yes | Jwt簽發方。 |
| audiences | string | No | Jwt接收方列表,jwt中包含其中任意一個接收者都可以通過驗證。 |
| jwksUri | string | No | 驗證jwt簽名的公鑰URL,jwksUri和jwks只能有一個生效。 |
| jwks | string | No | 驗證jwt簽名的公鑰,jwksUri和jwks只能有一個生效。 |
| fromHeaders | JWTHeader | No | 提取Jwt信息的頭部字段。 |
| fromParams | string | No | 提取Jwt信息的query字段。 |
| outputPayloadToHeader | string | No | 向后端透傳payload的頭部字段名稱。 |
| forwardOriginalToken | bool | No | 設置為true時,原始的jwt將被透傳到后端。 |
| outputClaimToHeaders | ClaimToHeader | No | 定義payload里面的字段透傳到后端的頭部信息。 |