通過OIDC協議與企業的認證鑒權系統整合,可以實現對內部服務的統一認證和授權管理,避免了重複的對接工作,同時簡化了認證流程。雲原生API Gateway提供了統一認證鑒權,加強了系統的安全性,並提供了更加靈活的安全性原則配置。整合OIDC協議還能實現單點登入,您只需一次登入即可訪問多個服務。
前提條件
已建立統一的認證鑒權服務,且支援標準的OIDC(OpenID Connect)協議。
背景資訊
網關作為外界訪問內部服務的一個控制點,需要對外部的請求進行認證鑒權,確保內部服務的安全性。企業內一般會自建一套統一的認證鑒權體系,雲原生API Gateway支援通過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是否合法,然後返回業務應答。
雲原生API GatewayOIDC認證流程
在上述OIDC認證流程中,如果有不同的商務服務,例如使用者服務、訂單服務等,則每個商務服務都需要實現認證鑒權邏輯,包括校正請求是否合法、對接認證服務等。通過雲原生API Gateway的OIDC認證功能,可以實現在網關統一認證鑒權。
商務程序如下:
用戶端向網關申請認證。
網關向認證服務申請認證。
認證服務返回 Code 給網關。
網關返回 Code 給用戶端。
用戶端攜帶 Code 回調網關。
網關向認證服務交換 Token。
認證服務返回 ID Token 給網關。
網關向用戶端返回認證成功響應,並設定 Cookie。
用戶端攜帶 Cookie 發起業務請求,網關驗證 Token。
網關攜帶 ID Token 轉寄業務請求給商務服務。
商務服務應答經網關返回用戶端。
在整個認證鑒權過程中,雲原生API Gateway會驗證請求是否合法。如果請求不合法,雲原生API Gateway會重新導向到使用者登入頁面,並能代理請求認證服務實現使用者登入認證,實現商務服務對認證服務無感知。
建立認證鑒權規則
在左側導覽列,選擇实例,並在頂部功能表列選擇地區。
在實例頁面,單擊目標網關執行個體名稱。
在左側導覽列,單擊。
在頁面左上方,單擊创建鉴权配置網關鑒權相關參數,然後單擊确定。
雲原生API GatewayOIDC認證鑒權參數說明如下。
參數
描述
开启
是否開啟雲原生API Gateway鑒權。
鉴权名称
自訂雲原生API Gateway鑒權的名稱。
鉴权类型
選擇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的所有子網域名稱。Cookie Secret
用於在建立Cookie時添加數位簽章,確保其不會被非法篡改。
Scope
輸入授權範圍,多個域值用英文分號(;)分隔。
授权
授權模式支援白名单模式和黑名单模式。
白名單模式:白名單中的hosts+paths不需要校正即可訪問,其餘的都需要校正。
黑名單模式:黑名單中的hosts+paths需要校正,其餘可直接存取。
單擊规则条件,佈建要求網域名稱和路徑。
域名:請求訪問的網域名稱,即hosts。
路径(Path):請求訪問的介面路徑,即paths。
查看鑒權詳情
在左側導覽列,選擇实例,並在頂部功能表列選擇地區。
在實例頁面,單擊目標網關執行個體名稱。
在左側導覽列單擊。
在全局认证鉴权頁面,單擊鑒權規則名稱或操作列的详情,可查看當前认证配置和授权信息的管理。
認證配置詳情頁麵包含三個地區:基本資料顯示名稱和來源;認證配置顯示Issuer、Client-ID、Cookie-Domain、重新導向URL、Client-Secret、Scope等欄位;授權資訊顯示當前授權模式(白名單模式或黑名單模式),多行規則條件之間為"或"關係,每行規則條件內的多個匹配項之間為"與"關係。
您可在授权信息地區單擊创建授权信息,在對話方塊中輸入请求域名和请求Path,並選擇匹配方式,單擊确定新增授權規則。
結果驗證
返回全局认证鉴权頁面查看鑒權資訊,如果已包含建立網關鑒權資訊,則說明網關認證鑒權建立成功。
相關操作
您還可以執行以下其他動作,管理網關的認證鑒權:
-
開啟鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的开启,使認證鑒權資訊生效。
-
關閉鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的关闭,關閉網關認證鑒權資訊。
-
編輯鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的编辑,可編輯網關認證鑒權資訊。
-
刪除鑒權:在全局认证鉴权頁面,單擊目標鑒權規則操作列的删除,可刪除網關認證鑒權資訊。
只有在認證鑒權資訊關閉的狀態下才可執行刪除操作。
相關文檔
如果您想瞭解其他認證鑒權機制,請參見全域認證鑒權。