當您的某個微服務應用有安全要求時,您可以對該應用進行接口或方法粒度的訪問控制,對調用方進行訪問鑒權,僅允許匹配鑒權規則的調用方發起調用,以此提高應用的安全性。本文介紹如何使用服務鑒權實現Spring Cloud應用的訪問控制。

使用場景

未配置服務鑒權

  • 同一命名空間內的服務可以相互調用,Consumer 1、Consumer 2和Consumer 3默認可以調用Provider的所有Path(Path 1、Path 2和Path 3)。
  • 使用MSE網關對Consumer服務進行路由轉發,Gateway 1和Gateway 2可以調用Consumer 1、Consumer 2、Consumer 3三個應用實例。
未配置服務鑒權

配置服務鑒權

  • 設置所有接口的鑒權
    • 對Provider的所有接口設置鑒權規則。例如,Provider設置所有接口鑒權規則為:將Consumer 1加入黑名單(拒絕訪問),Consumer 2、Consumer 3加入白名單(允許調用)。
    • 對Consumer的所有接口設置鑒權規則。例如,Consumer 1只允許Gateway 1的調用,Consumer 2、Consumer 3只允許Gateway 2的調用,需進行如下操作。
      • Consumer 1設置所有接口鑒權規則,將Gateway 1加入白名單(允許調用)。
      • Consumer 2、Consumer 3設置所有接口鑒權規則,將Gateway 2加入白名單(允許調用)。
  • 設置指定接口的鑒權

    在設置所有Path的鑒權基礎上,還可設置Consumer指定Path的鑒權規則。例如,在設置所有Path的鑒權方式下,Consumer 2、Consumer 3可以訪問Provider的所有Path,但Provider的Path 2涉及一些核心業務或數據,不希望Consumer 2調用,可以將Path 2對Consumer 2的鑒權方式設置為黑名單(拒絕調用),則Consumer 2只能訪問Provider的Path 1和Path 3。

設置鑒權規則的調用示意圖如下所示。

已配置服務鑒權
說明
  • 對于作為Readiness或Liveness健康探針的接口,為避免因服務鑒權規則導致應用健康檢查失敗,請設置該接口的鑒權方式白名單(允許調用),且調用方任意來源
  • 對于在EDAS服務鑒權規則中引用的MSE網關實例,EDAS會默認開啟網關插件edas-service-auth。請勿在MSE網關管理控制臺隨意更改該插件的開啟狀態和配置內容。

創建服務鑒權規則

  1. 登錄EDAS控制臺
  2. 在左側導航欄,選擇流量管理 > 微服務治理 > Spring Cloud
  3. Spring Cloud左側導航欄,單擊服務鑒權
  4. 服務鑒權頁面,選擇所屬微服務空間后,單擊創建規則
  5. 創建規則面板設置服務鑒權參數,然后單擊確定
    服務鑒權-創建規則

    服務鑒權規則參數說明:

    配置項說明
    微服務空間服務所在的地域和微服務空間。
    規則名稱鑒權規則名稱。
    被調用方類型默認為應用
    被調用方(應用)被調用的應用。
    被調用方框架被調用的應用所使用的框架,選擇Spring Cloud
    防重放機制開啟防重放機制開關后,可在一定程度上防止重放攻擊。EDAS對于調用請求會進行超時控制和簽名驗證,請求過期或簽名驗證錯誤的請求將拒絕調用。您可自定義請求過期時間,單位:秒。
    添加所有接口規則
    重要 所有接口的通用規則僅支持添加一次。
    被調用方Path默認為所有Path,且該參數值不可修改。
    鑒權方式服務鑒權的方式。包含白名單(允許調用)黑名單(拒絕調用),請根據實際鑒權需求選擇。
    調用方需要鑒權的調用方。

    調用方類型:應用網關任意來源。您可按需選擇EDAS應用和MSE網關作為需要鑒權的調用方,也可選擇任意來源將接口完全公開。

    說明
    • 應用網關可同時選擇,您可添加多個應用和多個網關。
    • 任意來源應用網關互斥。
    添加指定接口規則
    重要 指定接口添加的規則不是追加,而是覆蓋針對所有接口的通用規則,請謹慎配置。
    被調用方Path指定被調用應用的Path。
    鑒權方式服務鑒權的方式。支持白名單(允許調用)黑名單(拒絕調用),請根據實際鑒權需求選擇。
    調用方需要鑒權的調用方。

    調用方類型:應用網關任意來源。您可按需選擇EDAS應用和MSE網關作為需要鑒權的調用方,也可選擇任意來源將接口完全公開。

    說明
    • 應用網關可同時選擇,您可添加多個應用和多個網關。
    • 任意來源應用網關互斥。
    默認狀態規則的啟用開關。
    • 打開:創建后即啟用,默認打開。
    • 關閉:創建后不啟用,需在服務鑒權頁面規則的操作列,單擊開啟規則

結果驗證

服務鑒權規則配置完成且開啟后,請根據實際業務驗證服務鑒權規則是否生效。

相關操作

服務鑒權規則創建完成后,您還可以在服務鑒權頁面,單擊對應規則操作列的編輯開啟關閉以及刪除,對規則進行管理。