SAML 2.0 SSO

1. SAML 2.0 SSO概述

Security Assertion Markup Language (SAML) 是一种基于 XML的开放标准数据格式,交换身份提供者和服务提供商之间的身份验证和授权数据。BeTalk 提供基于 SAML 的单点登录 (SSO) 服务,为合作伙伴和客户提供用户帐户授权和身份验证的完全控制权。

下图说明了用户在BeTalk应用程序中,通过SAML-based SSO进行身份验证的服务流程:

SAML

2. 启动SAML SSO in BeTalk

通过你的身份提供商(IDP)得到一下数据,通过Betalk的管理控制台配置SAML SSO:

Identity Provider Entity ID http://www.betalk.com
Identity Provider Login URL The IdP URL where BeTalk sends a user to log in.
SP Entity ID http://www.betalk.com
Identity Provider Certificate

“urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport”

The authentication certificate issued by your identity provider.

注:链接地址仅为示例,实际地址以项目为准。

3. 配置IdP

按照下文提示的信息,用BeTalk的元数据配置你的身份标示。

SP ACS (Access Consumer Service) endpoint

https://www. betalk.com/sp/startSSO?idpid=IDP-ID&orgid=ORG-ID

IDP-ID: Replace with the actual IdP ID you configured in Betalk.
ORG-ID: Replace with the actual Org ID provided by Betalk.

AuthnContextClassRef “urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport”
This is the default value used by most of the identity providers, however several IdP adapters provide the capability of changing the value.
Name ID Format

默认值是 “urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified”.

支持以下5种格式

  • Unspecified: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
  • urn:oasis:names:tc:SAML:1.1:nameid- format:emailAddress
  • urn:oasis:names:tc:SAML:1.1:nameid- format:X509SubjectName
  • urn:oasis:names:tc:SAML:2.0:nameid- format:entity
  • urn:oasis:names:tc:SAML:2.0:nameid- format:persistent

4. SAML声明

电子邮件是 Betalk 的用户身份,就是登录用户的 Name ID 标签值。BeTalk支持自动创建账号,如果组织结构图启用该功能,用户的名字和姓氏需要设置SAML声明属性 。

电子邮件是设置 NameID 的标签

<ns2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">joesmith@test.com</ns2:NameID>

可以通过属性标签来设置名字和姓氏

<ns2:AttributeStatement>     <ns2:Attribute Name="lastname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">         <ns2:AttributeValue>Smith</ns2:AttributeValue>     </ns2:Attribute>     <ns2:Attribute Name="firstname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">         <ns2:AttributeValue>Joe</ns2:AttributeValue>     </ns2:Attribute> </ns2:AttributeStatement>