公司多業務系統集成sso登錄調研

其實也說不上說什麼調研,就是根據客戶需求查找了一些資料,自己總結了一下,在博客記錄下來。

背景

客戶要求:
我們公司的產品爲雲管平臺以及自動化部署解決方案,主要對接雲平臺是甲方公司的aws。在aws上部署有代碼管理服務器,項目構建Jenkins服務器等。現在要實現的就是,要使用甲方公司自己的人事系統(類似OA系統)登錄,登錄之後實現在我們的雲管理平臺,aws,代碼管理倉庫,Jenkins都實現了登錄。其中,甲方公司的人事系統不支持saml2.0,可能支持openID,但是能夠提供驗證信息,即跳轉登錄,驗證信息返回來。而且,還有一部分甲方公司的外包人員的數據不在人事系統之內。

方案分析

目前,做單點登錄要實現我們的雲管理平臺,aws,代碼管理倉庫,Jenkins都實現登錄,經過現在狀況分析,我們平臺可以自己開發,可控性比較強,所以從aws等入手,發現aws,代碼管理倉庫,Jenkins均可支持saml2.0和openId的方式成爲一個SP(service provider),這個時候就缺少一個IDP了。後面我們提出了keycloak,ADFS等解決方案,方案分析如下
(1) keycloak
優點:開源,可以集成到我們系統,支持多種方式對接,擴展性較好

(2)ADFS
優點:比較成熟。初步調研成功,已經實現了與aws和jenkins對接。新版AD FS也支持openId
缺點:較封閉,有未知風險。

(3)雲管理平臺自己集成idp

確定方案

經過比較,考慮項目進度及當前討論情況,選擇ADFS方案,詳細步驟如下:
(1)人事系統的數據(其他的包括外包人員的數據)同步到我們雲平臺數據庫和AD數據庫

(2)雲平臺經過人事系統登錄驗證過後,鏈接ADFS,根據調斷言API實現ADFS登錄

(3)ADFS登錄之後,與ADFS相連的jenkins、代碼管理系統、aws都可以登錄了

調研情況

1.對接ADFS
使用saml2.0目前使用spring-saml-adfs提供的demo可以實現作爲一個sp,進行驗證

 參考鏈接
  1)spring-security-saml介紹:
     http://projects.spring.io/spring-security-saml/

  2)adfs對接:
  https://docs.spring.io/spring-security-saml/docs/1.0.0.RELEASE/reference/html/chapter-idp-guide.html

3)github地址:

https://github.com/spring-projects/spring-security-saml  (sample模塊)

ADFS使用openID對接

 https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/development/enabling-openid-connect-with-ad-fs

2.對接keycloak

https://github.com/eugenp/tutorials  中有包括 spring-boot-keycloak的示例

3.雲管理平臺集成idp

https://github.com/eugenp/tutorials  中有包括spring-security-sso的示例
https://github.com/MrsSunny/SSO-OpenSAML
https://github.com/xgtxxxx/sso-demo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章