同Keycloak對接實例(SAML2.0)

簡介

案例簡介

透過配置 Keycloak 的相關實例,實現Jodoo的單點登入業務。

使用場景

當企業同時擁有多套管理系統和Jodoo平台,透過單點登入的方式,可以實現登入相關管理系統後,免登入進入Jodoo中,便於多個系統平台之間的切換,提高企業管理效率。

設定步驟

在Keycloak中建立相關實例

1. 登入到Keycloak控制檯

打開Keycloak,點擊左側「Administration Console」,輸入帳號密碼後(無帳號的需要先註冊),登入到 Keycloak 控制檯中。

2. 新增realm實例

a. 在 Keycloak 控制檯中,點擊 Master 右側的下拉箭頭,在彈出的面板中點擊「Add realm」,並修改 realm 的名字為 Test,修改完成後點擊「Create」。如下所示:

b. realm 實例建立完成後,在 realm 實例 > Keys 」處,選擇 Type 類型為「RSA」的算法,點擊該算法最右側的「Certificate」,在彈出的面板中,複製並儲存對應的祕鑰。

附註

請務必複製並儲存祕鑰,便於後面步驟的配置與使用。

3. 新增client實例

a. 切換左側導覽列至Clients」,點擊頁面右側的「Create」按鈕,建立新的 Client 實例:

  • 在「Client ID」處 ,設定 ID 名稱,如設定其為 SSO;
  • Clients Protocol」處,選擇類型為「saml」。

全部設定完成後點擊「Save」按鈕進行儲存。

b. 在「SSO > Settings」處,確認打開「Enabled」、「Include AuthnStatement」、「Sign Docunments」這 3 部分的開關。

c. 同時,對其他配置項進行如下所示操作:

  • Signature Algorithm:下拉單選內選擇「RSA_SHA256」;
  • SAML Signature Key Name:下拉單選內選擇「KEY_ID」;
  • Canonicalization Method:下拉單選內選擇「EXCLUSIVE」;
  • Name ID Format:下拉單選內選擇「username」;
  • IDP Initiated SSO URL Name:根據企業需求,設定名稱,如設定其名稱為 jdy。

其他配置項保持預設即可。

d. 以上配置項確認設定完成後,複製並儲存 SSO URL 地址,複製完成後點擊「Save」進行儲存。如下所示:

附註

請務必複製並儲存 URL 地址,便於後面步驟的配置與使用。

4. 新增mapper配置

a. 在「SSO > Mappers」處,點擊右側「Create」按鈕,新增 mapper 配置。

b. 對於新增的 mapper ,進行如下所示的配置:

  • Name:設定其名稱為username」;
  • Mapper Type:下拉單選內選擇User Property」;
  • Property:設定其為username」;
  • SAML Attribute Name:設定其為username」;
  • SAML Attribute NameFormat:下拉單選內選擇為Basic」。

設定完成後,點擊Save」按鈕,儲存以上設定。

附註

該步驟中,各項配置須與圖示保持一致,不可隨意更改。

5. 新增使用者

a. 切換左側導覽列至Users」處,點擊右側「Add user」按鈕,並在新增使用者面板上,設定 Username。設定完成後點擊「Save」進行儲存。

附註

1. 確保新增使用者的 username,在Jodoo系統中存在相同 username 的成員。

2. Keycloak 中僅能辨識小寫字母,其他如大寫字母、符號等無法辨識;故確保使用者的 username 是由小寫字母組成的。

b. 在「新增的使用者名 > Credentials」處,設定使用者密碼,如下所示:

在Jodoo中配置單一登入

1. 開啟單一登入

a. 新開一個瀏覽器頁面,登入 Jodoo帳號,進入企業管理 >企業設定頁面中。

b. 在企業安全 > 單一登入處,打開單一登入的開關,並點擊配置按鈕。

2. 配置單一登入

單一登入配置項如下所示,部分配置資訊需複製 Keycloak 中 Client 實例的配置資訊。

  • 單一登入配置方式:SAML 2.0
  • SAML 2.0 Endpoint(HTTP):複製 Keycloak 中Clients > SSO > Settings > IDP Initiated SSO URL Name 處的內容,即本文【新增client實例】中的 SSO URL 地址。
  • IdP公鑰:複製 Keycloak 中 Realm Settings > Keys > Certificate 處的內容,即本文【新增realm實例】中要求複製的祕鑰內容。
  • SAML 加密算法:下拉單選中選擇SHA-256 」。
  • Issuer URL:複製 Keycloak 中Clients > SSO > Settings > IDP Initiated SSO URL Name 處的內容,即本文【新增client實例】中的 SSO URL 地址,並去掉 test 之後的地址後綴
  • SLO Endpoint (HTTP):保持預設即可。

3. 生成單一登入資訊

完成單一登入配置後,會生成如下單一登入相關資訊,複製並儲存認證返回地址」。

附註

需要根據生成的資訊去完成 Keycloak 中的相關配置,故可以暫時不關閉此頁面。

在Keycloak中回調URL

返回到Keycloak > Clients > SSO > Settings 配置頁面,按照如下所示進行配置,配置內容需要複製Jodoo中單一登入資訊。

  • Valid Redirect URls:複製Jodoo中的認證返回地址;
  • Master SAML Processing URL:複製Jodoo中的認證返回地址。

配置完成後點擊Save」進行儲存

這項資訊有幫助嗎?
需要更多協助嗎?聯繋技術支援。