通過OIDC協議與企業的認證鑒權系統整合,可以實現對內部服務的統一認證和授權管理,避免了重複的對接工作,同時簡化了認證流程。雲原生網關提供了統一認證鑒權,加強了系統的安全性,並提供了更加靈活的安全性原則配置。整合OIDC協議還能實現單點登入,您只需一次登入即可訪問多個服務。
前提條件
已建立統一的認證鑒權服務,且支援標準的OIDC(OpenID Connect)協議。
背景資訊
網關作為外界訪問內部服務的一個控制點,需要對外部的請求進行認證鑒權,確保內部服務的安全性。企業內一般會自建一套統一的認證鑒權體系,雲原生網關支援通過OIDC協議與自建的認證鑒權體系打通,支援對接入的內部服務做統一認證鑒權,避免每個服務都需要對接認證鑒權體系。
基於OIDC認證
OIDC(OpenID Connect)是一種安全認證機制,第三方應用串連到身份認證供應商(Identify Provider)擷取使用者資訊,並把這些資訊以安全可靠的方式返回給第三方應用。OIDC對OAuth2.0協議進行了擴充,通過擴充的ID Token欄位,提供使用者基礎身份資訊,ID Token使用JWT(JSON Web Token)格式進行封裝,提供自包含性、防篡改機制,可以安全地傳遞給第三方應用程式並容易被驗證。
假設有以下四個角色:
用戶端:直接為使用者提供服務。
認證服務:OpenID提供方,通常是指OpenID證明伺服器,為第三方頒發用於認證的ID Token。
商務服務:提供商務服務。
使用者:指資源持有人。
商務程序如下:
用戶端發送認證請求給認證服務。
使用者在認證頁面進行授權確認(通過使用者名稱和密碼登入)。
認證服務對認證請求進行驗證,並返回Code給用戶端。
用戶端向商務服務請求回調介面,請求中攜帶Code。
商務服務請求認證服務頒發Token,請求中攜帶Code、Client ID、Client Secret。
認證服務驗證合法性,並返回ID Token。
認證成功,商務服務返回ID Token給用戶端。
用戶端向業務請求,請求中攜帶ID Token。
商務服務驗證ID Token是否合法,然後返回業務應答。
雲原生網關OIDC認證流程
在上述OIDC認證流程中,如果有不同的商務服務,例如使用者服務、訂單服務等,則每個商務服務都需要實現認證鑒權邏輯,包括校正請求是否合法、對接認證服務等。通過雲原生網關的OIDC認證功能,可以實現在網關統一認證鑒權。
商務程序如下:
用戶端向網關發起認證請求。
網關將認證請求直接轉寄到給認證服務。
認證服務讀取請求中的驗證資訊(例如使用者名稱、密碼)進行驗證,驗證通過後返回Code給網關。
網關將攜帶Code的應答返回給用戶端。
用戶端向網關請求回調介面,請求中攜帶Code。
網關請求認證服務頒發Token,請求中攜帶Code、Client ID、Client Secret。
認證服務驗證合法性,並返回ID Token。
認證成功,網關將攜帶ID Token的應答返回給用戶端。
用戶端向網關發起業務請求,請求中攜帶ID Token,網關校正請求中是否攜帶ID Token和合法性。
網關校正用戶端的業務請求合法,將請求透傳給商務服務。
商務服務進行業務處理後應答。
網關將業務應答返回用戶端。
在整個認證鑒權過程中,雲原生網關會驗證請求是否合法。如果請求不合法,雲原生網關會重新導向到使用者登入頁面,並能代理請求認證服務實現使用者登入認證,實現商務服務對認證服務無感知。
建立認證鑒權規則
登入MSE網關管理主控台。
在左側導覽列,選擇云原生网关 > 网关列表,並在頂部功能表列選擇地區。
在网关列表頁面,單擊目標網關名稱。
在左側導覽列,選擇安全管理 > 全局认证鉴权。
在頁面左上方,單擊建立鑒權配置網關鑒權相關參數,然後單擊確定。
雲原生網關OIDC認證鑒權參數說明如下。
參數
描述
鑒權名稱
自訂雲原生網關鑒權的名稱。
鑒權類型
選擇OIDC認證方式。
Issuer
設定認證服務的Issuer,即簽發人。
重新導向URL
輸入授權成功後的重新導向地址,需要與OIDC中配置的重新導向地址保持一致。
重要格式為
http(s)://yourdomain/path(地址中的path必須為/oauth2/callback)Client-ID
輸入服務註冊的應用ID。
Client-Secret
輸入服務註冊的應用Secret。
Cookie-Domain
輸入Cookie的網域名稱,認證通過後會將Cookie發送到指定的網域名稱,保持登入狀態。例如:設定
Cookie-domain=a.example.com,則Cookie會發送到網域名稱a.example.com;設定Cookie-domain=.example.com,則Cookie會發送到example.com的所有子網域名稱。Scope
輸入授權範圍,多個域值用英文分號(;)分隔。
授權
授權模式支援白名單模式和黑名單模式。
白名單模式:白名單中的hosts+paths不需要校正即可訪問,其餘的都需要校正。
黑名單模式:黑名單中的hosts+paths需要校正,其餘可直接存取。
單擊+規則條件,佈建要求網域名稱和路徑。
網域名稱:請求訪問的網域名稱,即hosts。
路徑(Path):請求訪問的介面路徑,即paths。
建立認證路由
雲原生網關認證鑒權規則建立完成後,然後建立認證相關路由規則。具體操作,請參見建立路由。
認證規則路由參數配置如下:
關聯網域名稱:選擇建立鑒權配置的重新導向URL的網域名稱,如果沒有佈建網域名可以選擇*。
重要如果使用HTTPS,必須佈建網域名並關聯。
路徑:選擇首碼匹配,並輸入
/oauth2。目標服務:選擇目標服務oauth2-proxy。
查看鑒權詳情
登入MSE網關管理主控台。
在左側導覽列,選擇云原生网关 > 网关列表,並在頂部功能表列選擇地區。
在网关列表頁面,單擊目標網關名稱。
在左側導覽列,選擇安全管理 > 全局认证鉴权。
在全域認證鑒權頁面,單擊鑒權規則名稱或操作列的詳情,可查看當前認證配置和授權資訊的管理。

您可在授權資訊地區單擊建立授權資訊,在對話方塊中輸入請求網域名稱和請求Path,並選擇匹配方式,單擊確定新增授權規則。
結果驗證
返回全域認證鑒權頁面查看鑒權資訊,如果已包含建立網關鑒權資訊,則說明網關認證鑒權建立成功。
相關操作
您還可以執行以下其他動作,管理網關的認證鑒權:
開啟鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的開啟,使認證鑒權資訊生效。
關閉鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的關閉,關閉網關認證鑒權資訊。
編輯鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的編輯,可編輯網關認證鑒權資訊。
刪除鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的刪除,可刪除網關認證鑒權資訊。
只有在認證鑒權資訊關閉的狀態下才可執行刪除操作。
相關文檔
如果您想瞭解其他認證鑒權機制,請參見全域認證鑒權。