本文為您介紹SAML協議的對接及配置說明。
僅獨立部署版本支持對接SAML協議,可自行完成對接。若需要緊急支持或專家指導,請聯系Quick BI運營負責人。
背景信息
SAML(Security Assertion Markup Language)協議是一種基于XML的安全認證協議,它主要用于在不同的安全域之間傳遞身份驗證和授權信息。SAML協議的主要目的是為了實現單點登錄和跨域身份驗證,本文介紹如何使用SAML協議與Qucik BI進行登錄對接。
應用場景
SAML標準定義了身份提供者IDP(identity provider)和服務提供者SP(service provider),這兩者分別對應認證系統和Quick BI。
在與Quick BI進行登錄對接時,身份提供者就是指三方使用的認證系統如微軟Azure,它會向用戶提供身份驗證服務,并生成SAML斷言。服務提供者則是指Quick BI系統,它會接收到SAML斷言,并根據其中的信息對用戶進行身份驗證,從而實現登錄對接。
快速開始
1. 前置準備
1.1 租戶側在SAML鑒權服務器上配置Quick BI客戶端
各個三方SAML的鑒權服務器(IDP)配置客戶端的方式可能不一致,根據實際情況操作,目的是獲取IDP方的聯合元數據文件,即IDP MetaData元數據文件。以對接微軟Azure為例說明如何獲取IDP MetaData元數據文件:
步驟一:在微軟Azure中搭建Quick BI SAML應用。
設置SP標識符(唯一標識)和回復URL(登錄成功后跳轉地址,格式為:http(s)://{Quick BI訪問地址}/login/saml/callback)。
步驟二:下載 IDP MetaData元數據文件
不同的平臺下載頁面不一樣,此處參考微軟Azure的SAML登錄的元數據XML下載,每個文檔下載后一定是xml文件,且包含標簽 IDPSSODescriptor
2. 在Quick BI進行對接配置
2.1 開啟SAML登錄
步驟一:使用登錄認證超管賬號進入超級管理員后臺。
若賬號無權限登錄時,會出現以下界面,提示“無權限禁止訪問”。請聯系Quick BI運維人員添加權限。
步驟二: 選擇登錄系統管理->登錄全局開關,開啟/關閉指定的三方登錄方式,保存后立即生效
2.2 SAML登錄對接配置
步驟一:打開登錄認證配置頁面
在運維中心->登錄策略配置或開放平臺->登錄認證位置打開。兩個位置打開的配置效果是一樣的,下邊以在運維中心打開對應頁面為例,頁面如下:
步驟二:添加登錄策略
若您已配置過登錄策略,則跳過步驟二。
每個登錄策略都允許配置一套域名/IP攔截策略,用來指定訪問指定域名或IP時Quick BI支持的登錄方式。
登錄策略配置請參見自定義企業登錄門戶。
步驟三:選中需要開啟SAML登錄的策略,并點擊編輯
步驟四:在「編輯策略」頁面,選擇基礎設置
步驟五:配置SAML三方登錄
在您進行SAML三方登錄配置前,若您未開啟Quick BI賬號,建議開啟,原因為:1)防止三方登錄設置錯誤后,無法登錄Quick BI;2)自定義賬號配置成功且能正常登錄后,可根據需要關閉Quick BI賬號。
Quick BI賬號配置頁面如下(相關配置項請參見內置賬號配置說明):
開啟SAML登錄
在彈出窗口填寫SAML的配置信息。
其中,標準SAML賬號相關的配置項及說明。
配置項 | 說明 | 參考值 | 提供方 |
系統名稱 | 對接的系統名稱,用于在登錄項的按鈕組標題顯示。 | 三方SAML | 由租戶側自定義 |
系統icon 說明 配置項為“認證平臺類型”,說明為“用于記錄當前對接的IDP類型,包括但不限于azure、ad-fs、ascm等”,參考值為空。提供方為“由租戶側鑒權服務器(IDP)提供”。 | 對接的系統圖標,用于在登錄項中顯示圖標,最大3MB。 | 由租戶側自定義 | |
認證平臺數據 | 由外部身份提供商(IdP)提供的元數據文檔,它包括 IdP 的登錄服務地址以及 X.509 公鑰證書(用于驗證 IdP 所頒發的 SAML Assertion 的有效性)。 | https://login.microsoftonline.com/9eXXXXXf-XXXX-XXXX-XXXX-XXXXXXXXXXX5/samlX | 由租戶側鑒權服務器(IDP)提供 |
認證憑條證書 | 由元數據文檔上傳自動填入,不可編輯。 | -----BEGIN CERTIFICATE-----XXXXXXXXXXXXXXXXXX-----END CERTIFICATE----- | 由租戶側鑒權服務器(IDP)提供 |
登錄有效期 說明
| -1,表示隨瀏覽器關閉失效; > 0,指定失效時間,失效后重新登錄。 | -1 | 由租戶側自定義 |
步驟六: 保存并發布策略
保存發布后立即生效,請慎重操作。
推薦新建無痕模式窗口或者打開其他瀏覽器測試登錄配置是否成功,以防退出登錄后由于登錄配置錯誤導致無法登錄。
3. 登錄驗證
在您完成SAML登錄對接配置后,請訪問Quick BI服務地址,并點擊SAML登錄,進行登錄驗證。
為了防止其他因素干擾,推薦新建無痕窗口用來測試登錄。
需要注意的是所有的無痕窗口共用cookies,通過關閉窗口清空登錄態時需要保證所有無痕窗口被關閉。
登錄對接成功效果:當您登錄后,出現以下頁面,則說明已對接成功。 拋錯原因是您當前登錄的三方賬號還未同步到Quick BI組織中,鑒權不通過,此時,您需要進行三方賬號同步,請參見獨立部署:三方賬號同步方案。
4. 登錄常見問題
1. AE0580800018 權限不足禁止訪問,請聯系組織管理員添加到具體組織
無組織用戶默認無法訪問Quick BI,需要先將三方賬號添加到Quick BI,請參見獨立部署:三方賬號同步方案。
協議說明
1.登錄流程
Quick BI作為SAML協議中的SP角色,用戶請求登錄Quick BI,SP生成SAML請求,IDP接收并解析SAML請求并進行用戶認證后返回SAML響應,SP接收并解析SAML響應后,提取斷言Assertion中的用戶信息用于登錄Quick BI。
以微軟Azure為例:
用戶訪問Quick BI,點擊已配置好的SAML登錄渠道。
Quick BI根據IDP Meta元數據文件,構造請求體(SAMLRequest)并跳轉到IDP的登錄地址
IDP登錄成功后會自動跳轉回在IDP配置的回復(回調)地址:http(s)://{Quick BI訪問地址}/login/saml/callback
接收到IDP登錄成功的信息后解析返回體(SAMLResponse),根據IDP Meta元數據文件對x509證書驗簽
解析SAMLResponse中的用戶數據用于Quick BI登錄
最佳實踐-對接微軟Azure的SAML應用
1. 資源準備
1.1. 在IDP(Azure AD)中搭建Quick BI SAML應用
該流程使用微軟的Azure平臺作為IDP,在使用期間需要對微軟的賬號進行服務訂閱(賬號訂閱Azure Active Directory)。
選擇 Azure Active Directory。
選擇企業應用程序。
創建你自己的應用程序。
選擇集成未在庫中找到的任何其他應用程序(非庫),假設名稱是saml-test,并點擊創建。
設置單一登錄->開始。
選擇單一登錄方法-SAML。
上傳元數據文件或手動進行SAML配置。
若選擇上傳元數據文件,即SP MetaData
示例SP MetaData元數據文件,里面的${domain}需要替換成配置的域名。其中,X509Data證書需要與IDP MetaData中的保持一致,證書內容可以替換,以下為示例。
<?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="${domain}">
<md:SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIDdzCCAl+gAwIBAgIEcLh01DANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdVbmtub3duMRAw
DgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYD
VQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3duMB4XDTE0MDUxMzE0MTEwMVoXDTE0MDgxMTE0
MTEwMVowbDEQMA4GA1UEBhMHVW5rbm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5r
bm93bjEQMA4GA1UEChMHVW5rbm93bjEQMA4GA1UECxMHVW5rbm93bjEQMA4GA1UEAxMHVW5rbm93
bjCCASIwDQYJKcccsad23QEBBQADggEPADCCAQoCggEBAM7Z3B24Js7QFGqsQALG2PorXMrUEGdT
+mmnGeNYeZ0b7faUFUVc7xyGAoAdaRKqUsMYMcTInk1iC6KxpGNiemnpgwApB9S3sZOP2lxl42bI
relsrhZ+dWGvE6tbszOCGJGCB2/P+qydAbYHOsRxElIxDiiygbPzYZdGmpQXHl2qmegymWHss9+f
1W3+2+wCCr3wdTsyeXFQp/Z4uFJtHrUaN1FgCsL3MWepJEaaWegElu5XnN40/3vT216L0Ye89uYp
GNF5bvDNufbOVnA90xDVFGBI+gJeUk3/akVQmopCcQ+cgUs2HCsqSXHbjkafgSQanMeWZJNSllP0
JVo8RjECAwEAAaMhMB8wHQYDVR0OBBYEFEeaJ0sRg9qf6cRLDdZbi4SiAGucMA0GCSqGSIb3DQEB
CwUAA4IBAQAUKVZRkNm4lR1uCogyrSnSObfg/aayrRb5/CT1bYFQCJYC53VJHKlllKg/L9jMaVRI
gmX5NJyCsuCOG4ievW91PSzPMAizgLA87VZxOddInuXeDenPAy60gUmu2ab2mnUWi0KLB/gBYGVV
HK5E9Veb3ZwKS+LCvAhy4jjes2vaM6tMWISmQtkilPS1a3wh9AY6YRCGgG6np/RNpVPYiqtWw3Zs
Jm9U8s/MOMeS/i7BC77rRVQLXaiFjPbcGU/b/SygT9kEDSgEmxXbxqWAw6DJB3b2pUR6LFuiLbRX
wrb4lOubv8GAqYt6GYxGnkAZ6OicftZbiLb0KpywDA/vOWsH</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://${domain}/login/saml/callback" index="0" isDefault="true"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
若選擇手動配置,需要設置好標識符、回復URL。
回復URL作為登錄成功后跳轉的SP地址。
下載Azure對應的元數據文件。
該元數據XML內的包含了公鑰x509證書,即IDP MetaData。
1.2 在Azure AD中分配用戶
在Azure AD中選擇用戶->創建新用戶。
新建用戶后,到企業應用程序并選擇進入剛剛創建的企業程序saml-test應用中,點擊概述->分配用戶和組。
添加用戶/組。
在用戶和組下邊新增的用戶訪問saml-test的權限
2. SP服務提供方(Quick BI)
Quick BI作為SP方,會提取IDP聯合元數據XML的信息,即讀取IDP MetaData元數據文件,詳見1.1步驟中的「下載聯合元數據文件」。
x509證書
登錄地址,IDP門戶的登錄地址
IDPSSODescriptor是作為SAML協議中IDP方的描述內容存在
3. 在Quick BI中進行SAML協議的登錄認證
配置詳情請參見配置說明。
配置完成之后,訪問Quick BI,即可選擇SAML跳轉登錄