安全治理
更新時間 2025-01-21 18:06:54
最近更新時間: 2025-01-21 18:06:54
分享文章
本章節介紹微服務治理中心安全治理相關能力
全局鑒權
微服務治理中心提供全局鑒權能力,通過創建鑒權規則,無需變更所有服務即可便捷地實現多個微服務之間通信的身份驗證,搭建微服務架構安全訪問體系。
功能入口
- 登錄微服務治理控制臺。
- 在控制臺左側欄選擇安全治理,單擊全局鑒權。

相關操作
- 創建鑒權規則:單擊 創建鑒權 ,配置鑒權信息,單擊確認完成創建。
- 查看鑒權規則:單擊目標鑒權規則操作列的詳情 ,查看鑒權規則信息。
- 開啟鑒權規則:單擊目標鑒權規則操作列的開啟 ,使鑒權規則生效。
- 關閉鑒權規則:單擊目標鑒權規則操作列的關閉 ,關閉鑒權規則。
- 編輯鑒權規則:單擊目標鑒權規則操作列的編輯 ,編輯鑒權規則。
- 刪除鑒權規則:單擊目標鑒權規則操作列的刪除 ,刪除鑒權規則。
JWT鑒權
JWT(JSON Web Token)用于網絡應用間以JSON安全傳輸信息,該信息可以由使用密鑰(使用 HMAC 算法)或使用RSA密鑰對進行簽名,因此JWT是可以被信任和驗證的。
微服務治理中心的JWT鑒權能力基于JWT標準實現了一套服務安全調用的身份驗證機制,無需中心化的鑒權服務,只需接入微服務治理中心并配置JWT鑒權,應用即可通過Token驗證請求者的身份。
創建鑒權
- 進入全局鑒權頁,單擊創建鑒權。
- 在鑒權類型中選擇JWT鑒權,配置JWT鑒權相關參數,最后單擊確定。

| 配置項 | 描述 |
|---|---|
| 鑒權名稱 | 唯一標識鑒權規則的名稱。 |
| 鑒權類型 | 選擇JWT。 |
| 加密算法 | 支持HS256、HS512、RS256。 |
| base64編碼 | 選擇HS256/ HS512算法時填寫,指定密鑰是否base64編碼。 |
| 密鑰 | 選擇HS256/ HS512算法時填寫,提供密鑰。 |
| RSA密鑰 | 選擇RS256算法時填寫,需要提供RSA算法公鑰和私鑰。 |
| JWT Token配置 | 從請求獲取JWT Token的位置,支持選擇header、query或Cookie,并指定對應的key。 |
| 過期時間 | JWT Token過期時間(單位:秒),默認值86400。 |
| 鑒權應用 | 選擇需要鑒權的應用范圍。注意 :應用將驗證令牌,并攜帶令牌信息進行下游調用,因此對于每個鑒權應用,其上游調用鏈路中的應用需納入鑒權范圍。 |
驗證鑒權
- 開啟鑒權。
- 請求鑒權應用,預期請求結果為拒絕訪問。
- 簽發Token。
簽發方式一:調用微服務治理中心OpenAPI獲取簽發的Token。
簽發方式二:用戶可以基于加密算法、base64編碼、密鑰配置生成Token,滿足開放標準(RFC 7519)。 - 根據配置攜帶Token請求鑒權應用,預期請求結果為正常訪問。
自建服務鑒權
當Token為用戶自定義的格式,服務受到請求后,需要訪問中心化鑒權服務來驗證該Token,以實現對Token的安全驗證。
微服務治理中心的自建服務鑒權能力支持服務在接收請求時,攜帶Token訪問額外的鑒權服務驗證身份,實現接口的安全調用。
創建鑒權
- 進入全局鑒權頁,單擊創建鑒權。
- 在鑒權類型中選擇自建服務鑒權,配置自建服務鑒權相關參數,最后單擊確定。

| 配置項 | 描述 |
|---|---|
| 鑒權名稱 | 唯一標識鑒權規則的名稱。 |
| 鑒權類型 | 選擇自建服務鑒權。 |
| 鑒權服務 | 選擇自建鑒權服務,可以通過下拉選擇已接入服務和地址或手動輸入服務地址。 |
| 鑒權API | 鑒權服務提供的鑒權API的路徑。 |
| Token配置 | 從請求獲取Token的位置,支持選擇header、Cookie,并指定對應的key。 |
| 鑒權請求中允許攜帶的頭部 | 如果需要額外攜帶客戶端請求中的頭部,那么需要在字段中按需配置頭部。說明: Host、Path頭部會被默認添加。 |
| 超時時間 | 請求鑒權服務最大等待時間(單位:秒),默認值:10。 |
| 模式 | 支持寬松模式和嚴格模式,默認使用寬松模式: 寬松模式:當鑒權服務不可用時(鑒權服務建立連接失敗或者返回5xx請求),接受客戶端請求。 嚴格模式:當鑒權服務不可用時(鑒權服務建立連接失敗或者返回5xx請求),拒絕客戶端請求。 |
| 鑒權應用 | 選擇需要鑒權的應用范圍。注意 :應用將驗證令牌,并攜帶令牌信息進行下游調用,因此對于每個鑒權應用,其上游調用鏈路中的應用需納入鑒權范圍。 |
校驗規則:
自建鑒權服務接收請求后,可根據Token和請求頭完成身份驗證,并返回驗證結果。
- 僅通過HTTP狀態碼判定。
- 鑒權服務返回HTTP狀態碼為200,表明Token有權限訪問該后端資源。
- 鑒權服務返回HTTP狀態碼為401或403,表明Token無權訪問該后端資源。
- 通過指定HTTP響應頭部判定,適用于響應HTTP狀態碼要求為200。
- 鑒權服務的響應頭部x-msgc-auth-result=true,表明Token有權限訪問該后端資源。
- 鑒權服務的響應頭部x-msgc-auth-result=false,表明Token無權訪問該后端資源。
驗證鑒權
- 開啟鑒權。
- 請求鑒權應用,預期請求結果為拒絕訪問。
- 根據配置攜帶自主頒發的Token請求應用,鑒權應用將攜帶Token向自建鑒權服務發出請求,若請求結果符合校驗規則,則預期請求結果為正常訪問,否則拒絕訪問。
服務鑒權
在微服務場景中,若提供者和消費者使用的是同一個注冊中心,則消費者默認可以調用同一個注冊中心下的提供者服務。服務鑒權可以為提供者的服務設置鑒權規則,允許或拒絕某個消費者訪問服務。
版本限制
| 框架 | 限制 | 詳情 |
|---|---|---|
| Spring Cloud | Spring Cloud Dalston及以上版本 | 客戶端:Feign、RestTemplate |
| Dubbo | 2.5.3+ | 無 |
| jdk版本 | 1.8+ | 無 |
開通服務鑒權
- 登錄微服務治理控制臺。
- 在左側導航欄選擇安全治理,點擊服務鑒權。
- 在服務鑒權頁面單擊創建服務鑒權。

服務鑒權規則參數說明:
| 參數 | 說明 |
|---|---|
| 規則名稱 | 服務鑒權規則的名稱。 |
| 被調用方應用 | 鑒權規則生效的應用。 |
| 被調用方框架 | SpringCloud或者Dubo。 |
接口規則:
| 鑒權方式 | 白名單/黑名單 |
|---|---|
| 調用方 | 涉及的調用方。 |
| 默認狀態 | 默認開啟關閉狀態。 |