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實現網格內應用單點登入。
在工作負載和匹配規則設定精靈,單擊添加工作負載組。在建立工作負載組對話方塊,進行相關配置,單擊確定,然後單擊提交。
本樣本配置如下。
配置項
說明
工作負載組名稱
配置為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
開頭的請求,無需登入即可訪問成功。以
/api
和/static
開頭的請求,只有登入成功,才能進行訪問。
修改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。