启用联邦身份验证
1.概述
联邦身份验证允许用户通过使用第三方身份提供者进行身份验证来登录到Dundas BI。例如,用户可能会被重定向到Google登录屏幕,而不是登录屏幕,在那里他们将使用相关凭证进行身份验证,并重定向到带有用户信息的Dundas BI。使用身份提供程序进行身份验证后,联邦身份验证的行为如下单点登录(SSO),允许用户访问多个服务,而无需进一步的身份验证。
设置联合身份验证Dundas BI需要两件事:
- 一个联邦身份验证清单,它是一个JSON数组,包含联邦身份验证所需的所有属性。
- 一个联邦身份验证桥接它是Dundas BI基础架构中的一个web应用程序。
一旦设置了联合身份验证,就可以自动创建外部用户帐户,或者管理员可以创建外部用户帐户和外部组帐户,这些帐户只能通过联合身份验证登录。请参阅添加帐户了解更多详情。
2.联邦身份验证清单
身份验证清单定义和配置一个或多个联邦身份验证提供者,这是您委托代表Dundas BI进行身份验证的外部应用程序。
要创建清单,请打开管理,然后选择设置和配置。
改变类别来身份验证,确保显示高级设置在工具栏上选中,选择联合会清单设置,然后点击编辑在工具栏上。
编辑联邦清单配置
清单以JSON数组的形式配置,其中包含您希望配置的每个身份验证提供程序的以下属性:
- Id(可选)。用于标识提供程序的任意字符串。如果清单只包含一个提供程序,则可以省略。如果在清单中指定了多个身份验证提供程序,则它们的所有id必须彼此唯一。注意:出于兼容性原因,该值应该只包含可以在URL中使用而不被转义的字符。
- 标题(可选)。指定应在此身份验证提供程序的“登录”页按钮上显示的文本。如果不包含,标题将默认为提供者ID。
- ProtocolId。指定身份验证提供程序要使用的协议的ID。从v10开始,Dundas BI支持以下协议,或参见下面的部分有关详细资料及早期版本:
- Saml2(可能需要安装扩展)
- OpenIdConnect
- GoogleOAuth2
- MicrosoftIdentity
- 脸谱网
- 属性。一个JSON对象,包含特定于协议的信息,如元数据URL、客户端ID和客户端秘密。有关这里可能指定的属性的详细信息,请参阅特定于协议的部分。
- ClaimTypes(可选)。一个JSON对象,提供索赔类型和Dundas BI所需的特定类型信息之间的映射(参见索赔类型映射章节)。最少需要的映射是一个声明对应于帐号名称。如果默认映射已经正确,则不需要指定显式索赔类型映射。
- CustomAttributeClaimTypeMapping(可选)。的映射,一个JSON对象自定义属性声明类型的id。当用户进行身份验证时,将使用来自相应声明的数据填充其登录会话上的每个指定自定义属性的值。
- AccountAutoCreationMode(可选)。指定当用户成功进行身份验证时,Dundas BI应如何表现。该值可以是以下值之一:
- 没有一个。永远不应该自动创建外部用户帐户。只有在Dundas BI中已有帐户的用户应该能够登录。
- 集团(默认)。如果声明中包含与外部组帐户对应的组名,则需要为该用户创建虚拟用户帐户。
- 开放。应该为任何成功通过身份验证的用户创建一个非虚拟用户帐户。创建的外部用户帐户将默认仅通过使用的身份提供程序进行身份验证,该身份提供程序可以稍后修改。
- AccountNamePrefix(可选)。附加在从索赔中提取的帐户名称之前的前缀。
- AllowMissingTenantClaim(可选)。一个值,指示当存在租户名称或ID映射,但没有返回相应的声明时应用程序是否允许身份验证。该值可以是任意一个真正的或假。默认值为假。
最小的例子:
[{"ProtocolId": "SAML2", "Properties": {"idpMetadataLocation": "https://identityprovider.example.com/FederationMetadata.xml",},},]
扩展的例子:
[{"Id": "ADFS-Saml2", "ProtocolId": "SAML2", "Caption": "Windows Active Directory Logon", "AccountAutoCreationMode": "Open", "Properties": {"idpMetadataLocation": "https://identityprovider.example.com/FederationMetadata.xml", "clientSecret": "skljdsf978dsf74A-cjmr7B6",}, "ClaimTypes": {"AccountName": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "DisplayName": "DisplayName",}, "CustomAttributeClaimTypeMapping": {"9f984590-01c6-4b3f-a892-03c10d405823":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode", "38e91753-09fd-4f91- 87bbb -b2fa8510d61b": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country",},}, {"Id": "Google", "ProtocolId": "GoogleOAuth2", "AccountAutoCreationMode": "Open", "AccountNamePrefix": "GoogleAccount_", "Properties": {"clientId": "01234567890-abcdefghijklmnopqrstuvwxyz012345.apps.googleusercontent.com", "clientSecret": "skljdsf978dsf74A-cjmr7B6",},},]
带有两个身份验证提供程序的清单示例
重要的
清单中指定的任何url(或从标识提供者的元数据中读取的url)都必须使用HTTPS协议。如果需要使用HTTP协议,请关闭联合uri必须是HTTPS配置设置。
2.1.索赔类型映射
Dundas BI中默认的索赔类型映射如下:
项 |
索赔类型 |
帐号名称 |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
DisplayName |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name |
电子邮件 |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
文化 |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality |
GroupName |
http://schemas.microsoft.com/ws/2008/06/identity/claims/role |
这些默认映射可以被身份验证协议内置的信息覆盖,并由身份验证提供程序使用ClaimTypes联邦清单中的财产。请参阅下面相应的协议特定部分,了解哪些声明类型映射被该协议覆盖(如果有的话)。
当使用多租户,其他索赔类型可以在提供者的ClaimTypes属性,以便允许将自动创建的帐户与特定租户相关联:
- TenantId- - -GUID租户的。
- TenantName- - -名字租户的。
如果声明中同时包含租户ID和租户名称,则优先考虑租户ID。如果两者都不包含,但是已经为租户ID和/或名称设置了索赔类型映射,那么在尝试自动创建帐户时将发生错误(除非AllowMissingTenantClaim属性已指定值为真正的。)
请注意
如果指定了租户ID和/或名称的映射,则会提出相应的索赔必须由标识提供者包含在响应中。这样做是出于安全原因,以减少由于错误配置身份提供者的索赔规则而导致帐户不正确地与租户关联的可能性。
2.2.身份验证协议
本节列出Dundas BI支持的联邦身份验证协议。
2.2.1.SAML 2.0
注意:本协议可能要求安装扩展。
协议ID:SAML2
属性:
- idpMetadataLocation。标识提供程序的元数据文档的URL。
- spEntityId(可选)。这是服务提供者ID, Dundas BI将使用它向身份提供者标识自己。如果未指定该值,则默认为联邦网桥URL。注意:如果为这个属性指定了一个值,它必须是一个格式良好的URI。
- requestSigningBehavior(可选)。签名请求的首选行为。这些值可以是总是,从来没有,或IfIdpWantAuthnRequestsSigned(只有当身份提供程序元数据指定需要签名时,才会对传出请求进行签名)。如果未指定该值,则默认为IfIdpWantAuthnRequestsSigned。
- minIncomingSigningAlgorithm(可选)。签名中可接受的最小安全散列算法(SHA)。若要允许使用SHA1,该值应为http://www.w3.org/2000/09/xmldsig#rsa-sha1。如果不指定,则默认为SHA2。
请注意
如果身份提供程序元数据指定必须对身份验证请求进行签名,则将使用适用配置设置(签名证书在基于windows的安装或签名证书路径(基于linux的安装)。
请注意
此时,Dundas BI不支持未经请求的idp发起的SAML响应;必须使用sp发起的流。
2.2.2.OpenID连接
协议ID:OpenIdConnect
属性:
- metadataAddress(可选)。标识提供程序的元数据文档的URL。
- 权威(可选)。在进行OpenID Connect调用时使用的权限。如果没有指定元数据位置,则需要这样做。
- clientId。的client_id协议中使用的参数。
- clientSecret(可选)。由标识提供程序提供的密钥,用于为访问令牌兑换授权代码。在很多情况下都不是必需的。
- 范围(可选)。的值范围参数。如果未指定,默认为“openid profile”。
重定向的URI
如果您的身份提供者要求,Dundas BI的重定向URL应该是以下格式之一。
Linux安装和所有v10及以上版本的安装:
{Dundas BI Base URL}/AuthBridge/sign -oidc/{providerId}
在Windows上安装v9及更早版本:
{Dundas BI Base URL}/AuthBridge/
例如,如果您在联邦身份验证清单中设置了一个提供者,并使用Id”:”MyProvider”, URI可能类似于https://dbi.example.com/AuthBridge/signin-oidc/MyProvider。
2.2.3.Microsoft Identity (Office 365和Azure Active Directory)
协议ID:
- Dundas b10及以上:MicrosoftIdentity
- 早期版本:OpenIdConnect
要使用Azure Active Directory配置联邦身份验证,请在Azure Portal (https://portal.azure.com):
- 为Dundas BI创建一个新的应用注册。重定向URI应该按照以下格式设置{Dundas BI Base URL}/AuthBridge/sign -oidc/{providerId}用于Dundas BI v10及更高版本。要了解更多详细信息或其他版本,请根据重定向URI部分用于OpenID连接。
- 使用管理>证书和秘密为App注册创建一个新的客户端秘密。的值clientSecret联邦清单中的财产。
- 在“管理>认证”刀片,启用ID标记选项下的隐式授予节,并保存更改。
- 使用“管理> API权限”为Dundas BI授予基本权限。以下委托权限将需要在微软图:
- 用户。读取(登录并读取用户配置文件)
- (作为登录用户访问目录)
- 添加了上述权限后,单击授予管理同意按钮,然后是的在确认弹出框中。
- 编辑App注册的Manifest,并更改groupMembershipClaims财产归"SecurityGroup”。
请注意
Dundas BI v9及更早版本的Linux只支持Azure Active Directory组id作为声明值,而不支持组名。
属性:(v10及更高版本)
- tenantId。与Azure Active Directory实例关联的Azure订阅的租户GUID(目录ID)。
- clientId。来自Azure门户中应用程序注册的应用程序ID。
- clientSecret。在Azure门户中生成的密钥。
- 域(可选)。要用于身份验证的域的显式名称。
- 实例(可选)。要进行身份验证的实例的URL。如果未指定,默认为https://login.microsoftonline.com/。
- metadataAddress(可选)。标识提供程序的元数据文档的URL。
- 权威(可选)。通常是这样的https://login.microsoftonline.com/ < TENANT_GUID >。
覆盖的索赔类型映射:(v10及更高版本)
项 |
索赔类型 |
帐号名称 |
preferred_username |
DisplayName |
名字 |
电子邮件 |
preferred_username |
GroupId |
组 |
属性:(v9及以下版本)
- 权威。通常是这样的https://login.microsoftonline.com/ < TENANT_GUID >。
- clientId。来自Azure门户中应用程序注册的应用程序ID。
- clientSecret。在Azure门户中生成的密钥。
- 模式。这必须设置为油气地质。
- aadTenantId。与Azure Active Directory实例关联的Azure订阅的租户GUID(目录ID)。
- aadResourceId(可选)。在为访问令牌兑换授权代码时要使用的Azure Active Directory资源ID。如果未指定,将默认为https://graph.windows.net。
覆盖的索赔类型映射:(v9及以下版本)
项 |
索赔类型 |
帐号名称 |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name |
DisplayName |
名字 |
电子邮件 |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name |
2.2.4.谷歌OAuth 2.0
协议ID:GoogleOAuth2
必须使用Google API管理器来启用Google+ API并注册Dundas Authentication Bridge web应用程序。对象必须指定授权的重定向URI网络平台,格式如下:
{Dundas BI Base URL}/AuthBridge/sign -google/{providerId}
例如,如果您在联合身份验证清单中设置了Google提供程序,那么提供程序的ID是MyGoogleProvider, URI可能类似于https://dbi.example.com/AuthBridge/signin-google/MyGoogleProvider。
属性:
- clientId。在Google API Manager中设置OAuth 2.0凭据时提供的客户端ID。
- clientSecret。google分配的客户端秘密。
覆盖的声明类型映射:
项 |
索赔类型 |
帐号名称 |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
2.2.5.脸谱网
协议ID:脸谱网
必须使用Facebook Developer Portal来注册Dundas Authentication Bridge web应用程序。对象必须指定授权的重定向URI网络平台,格式如下:
{Dundas BI Base URL}/AuthBridge/ login -facebook/{providerId}
例如,如果您在联邦身份验证清单中设置了一个Facebook提供程序,那么提供程序的ID是MyFacebookProvider, URI可能类似于https://dbi.example.com/AuthBridge/signin-facebook/MyFacebookProvider。
此提供程序的Dundas BI帐户名称采用以下格式Facebook_ < nameid >,在那里nameid对应Facebook账号的ID。
属性:
- appId。在Facebook Developer Portal中设置应用程序时提供的应用程序ID。
- AppSecret。facebook分配的客户端秘密。
覆盖的声明类型映射:
项 |
索赔类型 |
帐号名称 |
http://schemas.dundas.com/dbi/2016/11/claims/prefixednameid |
3.组
当用户使用联合身份验证登录到Dundas BI时,将从集合中读取与该用户关联的组列表GroupName索赔。对于在Dundas BI中设置的名称与声明中的一个组完全匹配的每个外部组帐户,用户的登录会话标识该组中的成员。
例如,Dundas BI管理员在Dundas BI中创建了一个名为组1。当用户使用联合身份验证登录到Dundas BI时,身份提供程序返回的声明列表包含两个声明,对应于http://schemas.microsoft.com/ws/2008/06/identity/claims/role索赔类型(这是默认的索赔类型映射)GroupName);组1和组2。因为外部组帐户名为组1如果在Dundas BI中存在,则用户在其登录会话期间将是该组的成员。登打士BI中没有外部集团账户组2,所以这一说法被忽略了。
因为可以使用多个身份提供者,所以Dundas BI提供了将自动组分配限制到一个或多个特定提供者的功能联邦身份验证提供者外部组帐户的属性。
4.联邦身份验证桥接
联邦身份验证是通过一系列重定向完成的,这些重定向主要由联邦身份验证桥接(FAB) web应用程序包含在Dundas BI基础设施中。这个web应用程序是一个可选模块,安装在名为AuthBridge在主Dundas BI web应用程序(BIWebsite)下。
4.1.安装
在Windows服务器上,打开Dundas BI Deployment应用程序并转到临时演员选项卡。
选择添加联邦身份验证模块并遵循部署步骤。如果稍后需要删除模块,这里还有一个选项。
添加联邦身份验证模块
在Linux上,启动部署向导然后选择这个选项向实例添加联邦模块。按照提示操作,包括为AuthBridge网站。
接下来,再次启动部署向导以将反向代理连接到实例,这将重定向来自AuthBridge邓打士BI网站下的子路径到AuthBridge网站。如果你在添加联邦认证模块之前已经配置了反向代理,你可能需要暂时停止nginx服务(例如,Systemctl停止nginx),以便能够在部署向导中选择相同的端口号并替换原始配置,否则它将被使用并且无法重新配置。
请注意
在安装过程中选择该选项以安装
SAML 2.0协议扩展如果你打算使用这个协议。
认证桥接器(authbridge)也可以在运行时配置码头工人的容器或者一个Kubernetes集群。
4.2.配置
当用户希望使用特定的身份验证提供者(例如,他们的Google凭据)登录到Dundas BI时,您需要构造一个指向FAB的身份验证URL。URL的格式如下:
{Dundas BI Base URL}/AuthBridge/Auth/ExternalAuthproviderId = {providerId} &returnUrl ={返回URL}
地点:
- {Dundas BI Base URL}是Dundas BI web应用程序的基础URL。
- {providerId}是联邦身份验证提供程序的ID。如果清单中只定义了一个联邦身份验证提供程序,则可以省略。
可以在Authentication URL的查询字符串中添加以下可选元素:
- {返回URL}-授权成功后,用户应该重定向到的相对URL。URL是相对的{Dundas BI Base URL}。如果没有指定,用户将被重定向到Dundas BI主屏幕。
- 调试—如果指定的值为真正的,在最终重定向之前将显示一个中间屏幕,其中包含有关身份验证操作的信息(从身份提供者发送的声明、Dundas BI能够从这些声明中提取的属性值,以及尝试创建与用户对应的Dundas BI登录会话的结果)。
- deleteOtherSessions-取值为真正的或假。如果启用了该功能,并且由于所需的座位不可用而无法成功登录,则阻止登录成功的最少使用的会话将被终止。如果未指定,则在登录时删除其他会话配置设置决定了Dundas BI 8及以上的行为。
- explicitCultureName-要与登录会话关联的区域性(例如,explicitCultureName = en-CA)。如果未指定,将使用与帐户关联的区域性或应用程序的默认区域性。
- rememberMe—如果没有指定,或者指定了真正的,与用户登录会话相对应的会话cookie将被创建,并具有长期有效期。如果用值指定假,当用户的浏览器关闭时,会话cookie可能会被遗忘。
重要的
为了避免暴露潜在的敏感声明数据,应该通过Federated Authentication debug Screen Allowed配置设置,在生产环境中禁用将debug设置为true的功能。
4.3.使用联邦身份验证自动登录
使用联邦身份验证的自动登录可以通过指向自定义登录URL配置设置到认证URL。返回URL占位符将由应用程序自动设置。
例如:
https://dbi.example.com/AuthBridge/Auth/ExternalAuth
4.4.1.SAML 2.0
当使用SAML 2.0协议时,服务提供者(也称为依赖方)的元数据可以使用如下构造的URL来获取:
{Dundas BI Base URL}/AuthBridge/Auth/FederationMetadata/{providerId}
例如:
https://dbi.example.com/AuthBridge/Auth/FederationMetadata/MySamlProvider
如果清单中只指定了一个联邦身份验证提供程序,则可以省略提供程序ID。
4.4.2.其他协议
如果身份提供者需要一个URL来标识Dundas BI应用程序(可能被称为“登录URL”、“主页URL”、“依赖方URL”、“SP实体ID”等),则向联邦身份验证桥提供该URL。
例如:
https://dbi.example.com/AuthBridge/
5.特定于标识提供程序的注意事项
本节包含有助于使用Dundas BI为特定身份提供者设置联合身份验证的信息。
5.1.Okta SAML 2.0
为了与Okta集成,创建一个SAML 2.0应用程序集成包括以下步骤。在本例中,我们假设您的Dundas BI安装可以通过https://dbi.example.com。
- 在应用程序的可见性节中,选中复选框,这样应用程序就不会显示给用户(即,不会显示给用户一个小窗口)。这里设置的应用程序不能作为一个可点击的小窗口工作,所以最好防止它被显示。
- 在单点登录URL字段,输入一个临时URL(例如,http://www.example.com)。这将在稍后更新。
- 在受众URI (SP实体ID)字段,输入到联邦身份验证桥的URL(例如,https://dbi.example.com/AuthBridge/)
- 在下一页,找到链接到身份提供者元数据并复制URL。大概是https://example.okta.com/app/asdfsadfiuoh00h7/sso/saml/metadata。
- 在Dundas BI中,为您的Okta提供者创建一个条目联合会清单配置设置。的值使用上一步中的URLidpMetadataLocation财产。
- 为了获得在Okta中使用的正确的单点登录URL,您需要检查Dundas BI的服务提供者元数据。见上图有关如何做到这一点的说明。获得XML后,提取ACS URL的值http - post绑定。大概是https://dbi.example.com/AuthBridge/AuthServices-Saml2-MyProvider/Acs。
- 在Okta中,返回并编辑SAML 2.0应用程序。更新单点登录URL到您在上一步中提取的值。
完成上述步骤后,联邦身份验证应该可以正确地与Okta应用程序一起工作。您应该在login页面上看到一个新按钮,它将启动身份验证流。但是,请注意以下额外考虑事项:
- 如果您想绕过登录页面,让您的用户自动登录,您仍然需要设置自定义登录URLDundas BI (见上图)。
- 如果您希望您的用户能够从Okta chiclet访问您的Dundas BI安装,则需要设置一个新的书签应用程序在Okta中,它会将你的用户重定向到你的Dundas BI安装的基础URL(例如https://dbi.example.com/)。
6.故障排除
如果联合身份验证不成功,以下提示可能对故障排除有用:
- 检查Dundas BI应用程序日志。通常,这将包含与失败的联邦身份验证尝试相对应的详细信息。
- 利用……调试选项,以便查看认证操作的详细信息。例如:https://dbi.example.com/AuthBridge/Auth/ExternalAuth?providerId=MyProvider&debug=true。
- 检查标识提供程序上的任何日志。
- 检查浏览器Developer Tools窗口的Console和Network选项卡,查看可能与联合身份验证操作相关的错误。
6.1.诊断
还可以访问联邦身份验证桥接web应用程序的Dundas BI应用程序诊断,类似于从关于页面的主Dundas BI web应用程序,以查看运行过程的各种细节。(适用于Dundas BI 8及以上版本。)
首先,找到并复制你的登录会话ID以管理员身份从关于页面。
接下来,导航到以下URL,填充缺失的内容sessionId部分:
https://dbi.example.com/AuthBridge/Home/DiagnosticsFile?mode=view&sessionId= < sessionId >
若要将诊断信息作为文件下载而不是在浏览器中查看,请删除该部分模式=视图URL。
7.另请参阅