OIDC(OpenID Connect)是基於OAuth 2.0協議實現的一種身份認證與授權協議,主要用於實現單點登入(SSO)。通過在ASM安全性原則中配置OIDC單點登入,您可以藉助阿里雲IDaaS或其他符合OIDC標準的身份提供者,無需修改應用本身,即可實現一次登入、多次訪問。不僅增強了應用的安全性,還簡化了應用系統的開發和管理。
前提條件
-
已建立網關規則和虛擬服務,確保以下路徑可以正常訪問。具體操作,請參見使用Istio資源實現版本流量路由的步驟一到步驟三。
http://${網關地址}/productpage http://${網關地址}/api/v1/products/1 http://${網關地址}/static/jquery.min.js -
已完成身份供應商IdP(Identity Provider)的配置。具體操作,請參見ASM整合阿里雲IDaaS實現網格內應用單點登入的步驟一和步驟二。
IdP配置完成後,您可以得到如下資訊,用於下文步驟5的配置。
redirect uri:http://${網關地址}/oauth2/callback issuer:https://eiam-api-cn-hangzhou.aliyuncs.com/v2/idaas_tbn25osdlmz6gtqfq3j2pz****/app_ml5tzapsl7zmfo53wb3nwk****/oidc client id:app_ml5tzapsl7zmfo53wb3nwk**** client secret:CSCfHeZ1nyvfMWyKHtE8ZRdif7j89dv9CvmJLurtGC****
操作步驟
本文以阿里雲IDaaS的IdP為例。若您使用自建的OIDC服務,請參考ASM中整合Keycloak實現網格內應用單點登入實現網格內應用的單點登入。
-
登入ASM控制台,在左側導覽列,選擇。
-
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇。
-
在ASM安全性原則頁面,單擊建立。
-
在建立ASM安全性原則對話方塊,單擊OIDC單點登入,然後單擊確定。
-
在OIDC配置設定精靈,進行相關配置,然後單擊下一步。
本樣本配置如下。
配置項
說明
ASM安全性原則名稱
配置為test-oidc。
登入重新導向地址
支援使用網關IP地址和使用自訂網域名本樣本選擇使用網關IP地址,然後選擇http和ingressgateway。
callback地址
重新導向地址。
OIDC頒發者URL
用於標識和驗證OpenID Connect提供者的URL。
頒發者提供的客戶端ID(ClientID)
頒發者提供的用戶端ID。
頒發者提供的客戶端密鑰(ClientSecret)
頒發者提供的用戶端密鑰。
Cookie密鑰
Secure Cookies的種子(支援Base64編碼)。
Cookie到期時間
到達該時間後Cookie會到期。配置為0表示不會到期。
Cookie重新整理時間
每間隔該時間重新整理Cookie。配置為0表示關閉。
使用者資訊範圍Scopes
指定擷取的Scopes。指定的Scope必須被Issuer支援。
關於Scopes的更多資訊,請參見ASM整合阿里雲IDaaS實現網格內應用單點登入。
本樣本中,Cookie到期時間配置為
3600s,Cookie重新整理時間配置為600s,使用者資訊範圍Scopes勾選openid和phone。 -
在工作負載和匹配規則設定精靈,單擊添加工作負載組。在新建工作負載組對話方塊,進行相關配置,單擊確定,然後單擊提交。
本樣本配置如下。
配置項
說明
工作負載組名稱
配置為test-policy。
工作負載列表
預設選中上一步登入重新導向地址配置的網關,且不支援修改。若您需要選擇其他工作負載,請返回OIDC配置設定精靈,修改登入重新導向地址相關資訊。
說明若上一步OIDC配置設定精靈中,登入重新導向地址選擇使用自訂網域名,請參照以下步驟進行操作。
-
在新建工作負載組對話方塊,單擊添加工作負載,選擇網關生效。
-
在選擇負載地區,選中目標負載,單擊
表徵圖,將選中的負載添加到已選擇地區,然後單擊確定。
匹配規則列表
匹配模式有以下兩種:
-
選中請求必須經過認證:只有登入成功,才能進行訪問。
-
選中請求可跳過認證:無需登入即可訪問成功。
本樣本匹配模式選擇選中請求必須經過認證,匹配模式選中自訂匹配規則,單擊添加匹配規則,進行如下配置。該配置表示對/static和/api開頭的請求,必須經過OIDC認證。
-
規則1:開啟HTTP路徑(Path)開關,配置為/static/*。
-
規則2:開啟HTTP路徑(Path)開關,配置為/api/*。
建立成功後,在完成設定精靈,會顯示ASM安全性原則建立成功。您可以單擊查看YAML,查看建立的資源,也可以單擊完成,返回ASM安全性原則頁面,查看新建立的安全性原則。
-
-
驗證OIDC單點登入配置是否生效。
-
在瀏覽器中,依次訪問以下網址。
http://${網關地址}/productpage http://${網關地址}/api/v1/products/1 http://${網關地址}/static/jquery.min.js訪問結果如下,表明OIDC單點登入配置生效。
-
以
/productpage開頭的請求,無需登入即可訪問成功。訪問 BookInfo Sample 應用的 productpage 頁面時,頁面展示書籍 The Comedy of Errors 的摘要資訊。 -
以
/api和/static開頭的請求,只有登入成功,才能進行訪問。訪問非 /productpage 開頭的請求時,頁面將跳轉至阿里雲 IDaaS 登入頁面,需在賬戶名、手機號或郵箱輸入框中輸入登入資訊,在密碼輸入框中輸入密碼,然後單擊登入完成身份認證。
-
-
修改OIDC單點登入配置。
-
在ASM安全性原則頁面的操作列,單擊目標OIDC安全性原則對應的編輯。
-
在OIDC配置設定精靈,單擊下一步。
-
在工作負載和匹配規則設定精靈的操作列,單擊目標工作負載組對應的編輯,修改相關配置,單擊確定,然後單擊提交
本樣本配置如下。
配置項
說明
匹配模式
選擇選中請求可跳過認證。
匹配規則
單擊添加匹配規則,配置如下規則。該配置表示對/productpage和/static開頭的請求,無需經過OIDC認證,即可訪問成功。
-
規則1:開啟HTTP路徑(Path)開關,配置為/productpage。
-
規則2:開啟HTTP路徑(Path)開關,配置為/static/*。
-
-
-
重新在瀏覽器開啟一個無痕頁面,依次訪問以下網址,驗證修改後的OIDC單點登入配置是否生效。
http://${網關地址}/productpage http://${網關地址}/api/v1/products/1 http://${網關地址}/static/jquery.min.js訪問結果如下,表明修改後的OIDC單點登入配置生效。
-
以
/productpage和/static開頭的請求,無需登入即可訪問成功。 -
以
/api開頭的請求,只有登入成功,才能進行訪問。
-
-
相關文檔
-
關於OIDC應用的相關配置項說明,例如介面訪問、密鑰輪轉、IDaaS對OIDC不同模式的支援、IDaaS側配置、應用側配置等,請參見基本配置、單點登入通用說明、OIDC SSO配置和OIDC id_token擴充值填寫規範。
-
當您通過IDaaS SSO登入應用後,需要退出登入,可以在應用側發起全域退出,將IDaaS主登入工作階段同步終止。具體操作,請參見單點登出SLO。