中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

wso2~對接外部(bu)認證(zheng)系統keycloak

在 WSO2 Identity Server 或 WSO2 API Manager 中,Identity Providers (身份提供者) 功能(neng)(neng)允許(xu)您將外部身份(fen)管理(li)系統(如 Keycloak、Azure AD、Okta 等(deng))集成到(dao) WSO2 平臺中(zhong),實現(xian)聯(lian)合身份(fen)認證(Federation)。以下是使(shi)用 WSO2 Identity Providers 功能(neng)(neng)并與 Keycloak 對接的完整步驟(zou):

1. Identity Providers 功能概述**

  • 作用
    • 允許用戶通過外部身份提供者(如 Keycloak)登錄 WSO2 管理的應用或 API。
    • 支持協議:SAML 2.0、OAuth 2.0/OpenID Connect (OIDC)、WS-Federation 等。
  • 典型場景
    • 企業已有 Keycloak 用戶體系,需與 WSO2 平臺集成。
    • 需要將 WSO2 作為身份代理(Proxy),集中管理多個外部身份源。

2. 配置 Keycloak 作為外部 Identity Provider**

步驟 1:在 Keycloak 中創建客戶端(Client)

  1. 登錄 Keycloak 管理控制臺
    訪問 //keycloak-host:port/auth/admin

  2. 創建 Realm(如果尚未創建)
    進入默認的 master Realm 或新建一個(如 my-realm)。

  3. 創建客戶端(Client)

    • 導航到 ClientsCreate
    • 設置:
      • Client IDwso2-client(自定義名稱)。
      • Client Protocolopenid-connect
    • 保存后,進入客戶端配置:
      • Valid Redirect URIs:添加 WSO2 的回調地址,如 //wso2-host:9443/commonauth
      • Web Origins*(或限制為 WSO2 域名)。
      • 啟用 Client authentication(生成客戶端密鑰)。
  4. 記錄關鍵信息

    • Client IDwso2-client
    • Client Secret:在 Credentials 標簽頁中獲取。
    • Keycloak Realm 的 OpenID Endpoint
      //keycloak-host:port/auth/realms/my-realm/.well-known/openid-configuration

步驟 2:在 WSO2 中配置 Keycloak 為外部 Identity Provider

  1. 登錄 WSO2 管理控制臺
    訪問 //wso2-host:9443/carbon,使用管理員賬號(hao)登(deng)錄。

  2. 創建新的 Identity Provider

    • 導航到 MainIdentityIdentity ProvidersAdd
    • 輸入名稱(如 Keycloak-IDP)。
  3. 配置 OpenID Connect 連接

    • Federated AuthenticatorsOpenID Connect Configuration 中:
      • Enable:勾選。
      • Client IDwso2-client(Keycloak 中創建的客戶端 ID)。
      • Client Secret:Keycloak 客戶端的密鑰。
      • Authorization Endpoint:Keycloak 的 OIDC 授權端點(如 //keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/auth)。
      • Token Endpoint:Keycloak 的令牌端點(如 //keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/token)。
      • UserInfo Endpoint:用戶信息端點(如 //keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/userinfo)。
      • JWKS Endpoint:JWKS 端點(如 //keycloak-host:port/auth/realms/my-realm/protocol/openid-connect/certs)。
      • Callback URL//wso2-host:9443/commonauth(與 Keycloak 客戶端配置一致)。
  4. 配置聲明映射(Claim Mapping)

    • Claim Configuration 中,將 Keycloak 返回的用戶屬性(如 emailgiven_name)映射到 WSO2 的本地聲明。
    • 示例:
      • Remote ClaimemailLocal Claim//wso2.org/claims/emailaddress
  5. 保存配置
    點擊 Register 完成(cheng) Identity Provider 的創(chuang)建。

3. 配置服務提供者(Service Provider)使用 Keycloak 認證**

場景 1:WSO2 作為服務提供者(SP)

  1. 創建服務提供者(Service Provider)

    • 導航到 MainIdentityService ProvidersAdd
    • 輸入名稱(如 My-App)。
  2. 配置聯合認證

    • Local & Outbound Authentication Configuration 中:
      • 選擇 Federated Authentication
      • 勾選剛創建的 Keycloak-IDP
    • 可選:設置認證步驟(多因素認證)。
  3. 配置聲明映射
    確保(bao)服務提供者使用的(de)聲明與 Identity Provider 的(de)映射(she)一(yi)致。


場景 2:通過 WSO2 訪問 API(API Manager 集成)

  1. 在 API Manager 中啟用 Keycloak 認證

    • 登錄 API Publisher(//wso2-host:9443/publisher)。
    • 創建或編輯 API → Runtime ConfigurationsSecurity
    • 勾選 OAuth2OpenID Connect,并關聯 Keycloak-IDP
  2. 訂閱 API 并測試

    • 用戶通過 Keycloak 登錄開發者門戶,獲取令牌后調用 API。

4. 自定義claim的映射**

將第三方idp的用戶字段映(ying)射(she)到wso2-apim中(zhong),可以按著下面步驟實現

配置deployment.toml,開啟自定義claim

如果不開啟,它會映射默認的幾個字段,如uid,nickName,displayName,mail,roles

[authentication.endpoint]
enable_custom_claim_mappings = true

kc中定義固定的wso2角色到token中

固定的客戶端角色

自定義的token中的元素

wso2中注冊用戶后具有這個角色

用戶每次登錄時都會進行用戶信息的同步

** IDP到wso2時的對(dui)應(ying)關系的優先級

找到對應的sp,通過在sp的Claim Configuration,需要注意其它對應的sp也需要有相同的Claim Configuration,否則用戶登錄這塊(kuai)會出現(xian)無法(fa)映射(she)的問題(ti)。

  1. sp中定義的claim優先于idp
  2. 建議在idp中直接統一定于,避免每個sp中定義的不同,導致系統無法登錄的問題

5. 數據的映射

數據何時從第三方IDP同步到wso2
用戶通過第(di)三方登錄(lu)時,當數據有變更,數據會自(zi)動(dong)同步(bu)到wso2系統(tong),它在wso2am_shared_db庫中(zhong)um_user_attribute表存儲(chu),如圖

posted @ 2025-05-18 19:42  張占嶺  閱讀(278)  評論(0)    收藏  舉報