當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

SAML單點登入插件

1. 概述

1.1 版本

FineBI版本插件版本SAML 版本說明
6.0
V1.0.12.0
6.0
V1.0.12.0

新增配置項:「開啓debug模式

詳見3.2節說明

1.2 功能簡介

使用者需要實現透過SAML認證登入數據決策系統,本文提供配置 SAML 單點登插件方案。

使用者可下載 SAML 單點登插件,無需代碼,簡單快速地實現透過 SAML 認證登數據決策系統的效果。

注:遠端設計時不走 SAML認證,預設放行。

2. 插件介紹

2.1 插件下載

請點選連結填寫試用申請表單,獲取插件試用安裝包:http://s.fanruan.com/w9gm5

或QR code聯系工作人員line/微信:

伺服器-設計器插件安裝方法請參見:插件管理

2.2 頁面介紹

安裝插件後無需重啓,超管進入平台,點選「管理系統>系統管理」,新增「SAML-SP配置」頁面。

需注意以下幾點:

  • 使用者需要有「管理系統」權限,才可見配置頁面。

  • 支援熱部署,安裝啟用插件無需重啓工程。

  • 修改配置無需重啓工程。

3. 操作步驟

3.1 開啓 SAML 單點登入

點選「開啓SAML單點登入」按鈕,如下圖所示:

3.2 SAML 配置

填寫設定項後,需點選「儲存」按鈕,如下圖所示:

各設定項介紹如下表所示:

設定項

說明

是否必填

開啓SAML單點登入

點選即可開啓SAML單點登入功能。

開啓後會載入filter攔截器,使用者存取原決策平台URL後,走單點邏輯。

注:無需重啓。

/

開啓debug模式

點選即可開啓插件debug模式。

開啓後會將saml單點登入過程中收集到的斷言資訊列印在fanruan.log的error級別日誌中。

注:建議一般不開啓,僅用於插件除錯,開啓後將會在日誌中匯出斷言內容,可能包含帳號、郵箱等資訊。

/

IDP元資料

填寫由身分認證工具提供的IDP原資料。

一般為xml格式的頁面,這裏需要填寫頁面所在的地址。

IDP唯一標識

填寫由身分認證工具提供的IDP唯一標識。

建議獲取方式:從IDP元資料中尋找“entityID”這一關鍵詞,後面的連結就是IDP唯一標識。

IDP SSO地址

填寫過濾器需要跳轉到的IDP地址。

不同IDP過程的獲取方式不同,需按照實際情況操作。

IDP公鑰

填寫IDP傳送斷言時加密所用的公鑰。

建議獲取方法:從IDP元資料中尋找“ds:X509Certificate”這一關鍵詞,關鍵詞後面的字串為公鑰。

帳號映射

此項為輔助功能,非必要項。

可使用IDP使用者聯動的其他屬性欄位進行單點登入,預設或為空時使用IDP傳回的“nameid”欄位,可以配置成其他欄位比如:username、email等。

SP唯一標識

填寫服務提供商的標識,自行配置即可。

SP 預設跳轉地址

填寫FineBI工程的存取路徑,url到/decision為止。

例如:https://localhost:8443/webroot/decision

SP證書

上傳加密所用憑證,支援crt、cer、 pem格式。
注:此處憑證僅用作加密,可自行生成憑證或從憑證服務商處獲取。

SP私鑰

上傳鍵檔案,支援key格式。

生成元資料xml檔案

點選按鈕,即可下載服務提供商所用的MetaData.xml檔案。

將MetaData檔案匯入到身分認證服務即可自動生成一個新SAML實體。

如果SP相關的5個屬性(IDP公鑰、SP唯一標識、SP預設跳轉地址、SP證書、SP私鑰)存在空值則提示:“請將sp相關資訊填寫完整”。

開啓SAML單點登出

選擇是否開啓saml單點登出功能。

開啓後展示“saml單點登出地址”配置項。

SAML單點登出地址

填寫跳出IDP的API,實現跳出FineBI同時跳出IDP。

例如:http://localhost:8080/auth/realms/FineReport/protocol/openid-connect/logout?redirect_uri=http://localhost:8075/webroot/decision/login

參數說明:

http://localhost:8080/auth/realms/FineReport/protocol/openid-connect/logout為idp的登出API部分

?redirect_uri= 後面填寫登出後跳轉的位置,建議配置為FineBI登入頁面。

跳過SAML認證的請求-h5請求

是否放行h5請求。

開啓後h5不需要進行SAML認證,不開啓則只能透過SAML登入。

跳過SAML認證的請求-平台登入頁

開啓後允許使用決策平台登入頁進行登入。

注1:配置時建議開啟

注2:如果不開啓,則只能透過SAML登入, 且未開啓SAML單點登出情況下,無法手動登出決策平台;如果開啓跳過,則跳出時會跳轉到FineBI原本的登入頁。

自訂請求放行

自訂需要放行的請求,以分號;隔開不同請求。

請求路徑可以使用通配符。

欄位值範例:/webroot/decision/t*;/webroot/decision/map/edit

注:只配置 SAML 登入,未配置 SAML 登出時:

  • 未開啓「平台登入頁」:點選右上角的「跳出」按鈕,瀏覽器重新整理下頁面,不會登出。

  • 開啓「平台登入頁」:點選右上角的「跳出」按鈕,強制跳轉到平台預設登入頁,但是實際上沒有登出平台,直接存取http://ip:埠/工程名/decision,還是顯示之前使用者的登入狀態。

3.3 關閉 SAML 單點

超管進入平台,點選「管理系統>系統管理>SAML-SP 配置」,關閉「開啓SAML單點登入」按鈕,點選「儲存」,如下圖所示:

 

4. 範例-Azure AD

注: 使用Azure AD做SAML單點前需配寘FineBI決策平臺為HTTPS。

4.1 填寫配置,生成元資料xml檔案

1. 填寫「SP唯一標識」,該配置項自訂即可,如下圖所示:

2. 填寫「SP 預設跳轉地址」,此配置項需要填寫FineBI工程的存取路徑,url到/decision為止。例如: https://localhost:8443/webroot/decision

3. 上傳服務提供商所用憑證檔案以及鍵檔案,如下圖所示:

4. 點選「生成元資料xml檔案」,如下圖所示:

4.2 在Azure AD中匯入元資料xml檔案

1. 點選「上傳中繼資料檔案」,選擇4.1節生成的MetaData.xml檔案,點選加入,即可看到配置資訊一鍵匯入進Azure AD中,如下圖所示:

注:若不使用MetaData.xml匯入,需要在Azure AD手動填寫相關配置。

2. 獲取需要在FineBI平台上填寫的配置資訊。

FineBI中配置項對應AzureAD資訊
IDP元資料

應用過程同盟中繼資料 URL

IDP唯一標識

Azure AD 識別碼

IDP SSO地址

登入 URL

IDP公鑰

點選下載證件 (Base64),下載後用記事本獲取內容

4.3 FineBI中完善配置項

在FineBI中將4.2節內容填入對應設定項,此案例開啓了跳過「平台登入頁」,最後點選「儲存」儲存配置。

注:需要根據Azure AD中的使用者,在FineBI中做好使用者同步後才能實現單點登入。

4.4 效果查看

存取原報表連結 https://localhost:8443/webroot/decision,會進行SAML單點登入。

點選跳出登入當前使用者,會傳回到https://localhost:8443/webroot/decision/login。如下圖所示:

4.gif

5. 範例-ADFS

5.1 ADFS 設定

1. 開啟ADFS, 選擇「Start> Administrative Tools > ADFS Management」,跳轉至「Relying Party Trusts」資料夾。

2. 選擇「Action > Add Relying Party Trust」。

3. 選擇「Start」來運作「Add Relying Party Trust Wizard」。

4. 開啟「Select Data Source」視窗,選擇 「Import data about the relying party from a file」, 選擇從插件配置頁上傳的metadata.xml檔案並點選「Next」。

5. 選擇「Next」,跳過「Configure Multi-factor Authentication Now?」訊問視窗。

6. 開啟「Choose Issuance Authorization Rules」視窗, 選擇 「Permit all users to access this replying party」 並點選 「Next」。

11.png

7. 在 「Ready to Add Trust」 視窗:

點選「Encryption」, 從FineBI伺服器上傳「SP Certificate」(SP允許證); 點選「Advanced」, 設定為「SHA-1」。

8. 開啟「Ready to Add Trust」視窗, 點選「Next」。

9. 開啟「Finish」 視窗, 點選「Open the Edit Claim Rules dialog for this replying party trust when the wizard closes」 並點選「Close」。

如果在關閉向導時沒有彈出「Edit Claim Rules」對話框, 右鍵選擇使用者設定的the Relying Party Trust名稱,並選擇「Edit Claim Rules...」。

10. 開啟 「Edit Claim Rules」對話框, 選擇「Add Rule」。

12.png

11. 開啟「Select Rule Template」 對話框, 在「Choose Rule Type」下拉列選擇「Send LDAP Attributes as Claims」並點選「Next」。

12. 填寫「the Configure Rule」對話框:

  • 在「Claim rule name」欄輸入「UseridentiferToNameID 」(可自訂)。

  • 在 「Attribute store」欄選擇 「Active Directory」。

  • 在 「LDAP Attribute」欄選擇「SAM-Account-Name」 (或帳號的任意屬性)。

  • 在「Outgoing Claim Type」欄輸入「Name ID」。

注:帳號映射欄位應設定為相同的值。在一些ADFS版本中,允許使用自訂值而不限定於名稱ID,此處的設定應為與插件設定中的帳號映射相同。

13. 點選「Finish」。

5.2 常見問題及解決方案

注:V1.0.2版本新增除錯功能,無需除錯時請保持按鈕關閉。如遇問題可聯系技術支援協助使用除錯功能進行排查。

AD FS的正確XML響應將包含Name屬性,正確格式如下:

...... 
<AttributeStatement> 
<Attribute Name="Name ID"> 
<AttributeValue>username@fanruan.com</AttributeValue> 
</Attribute> 
</AttributeStatement> 
......

5.2.1 在檔案中找不到名稱ID

./logs/fanruan.log
~ https-openssl-nio-443-exec-16 ERROR [standard] No name id found in Document.
~ com.onelogin.saml2.exception.ValidationError: No name id found in Document.

可能的原因:

1. 未配置「Outgoing Claim Mapping」。

2. 在一些ADFS版本中, 「Outgoing Claim Mapping」必須包含「Name ID」。

5.2.2 XML中未傳回名稱欄位

「Name」欄位(屬性名稱)未出現在ADFS傳回的XML中。

./logs/fanruan.log
~ http-nio-37799-exec-35 ERROR [standard] null
~ java.lang.NullPointerException: null

可能的原因:

1. SP SSL 證書未上傳至ADFS。

2. ADFS加密型別未設定為「SHA-1」。

5.2.3 找不到匹配的帳號

ADFS傳回的XML中存在「Name」欄位(屬性名稱),但登入應用過程無法識別。

./logs/fanruan.log
~http-nio-37799-exec-12 ERROR [standard] No matching user name found!

可能的原因:

SAML插件中的「Username Mapping」與「Outgoing Claim Type」設定的值不同。

5.2.4 帳號不存在或密碼錯誤

ADFS傳回的XML中存在「Name」欄位(屬性名稱),但登入不成功。

./logs/fanruan.log
~http-nio-37799-exec-23 WARN [standard]
com.fr.decision.webservice.exception.login.UserLoginException : User not exist, or wrong password!

可能的原因:

ADFS中設定為「Outgoing Claim Type」的欄位不是FineBI中的「username」欄位。

附件列表


主題:
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!