亚博Zendesk支持企业单点登录通过安全断言标记语言(SAML)访问Zendesk帐户JSON Web令牌(JWT)。使用SSO,用户可以使用他们的公司登录表单登录一次,以访问多个系统和服务提供商,包括Zendesk产品。亚博
作为Zen亚博desk管理员,您的角色包括启用SSO选项。本文描述了如何启用多个SAML单点登录配置,这些配置可用于对团队成员(管理员和代理,包括轻量级代理和贡献者)、最终用户或两者进行身份验证。
本文包含以下主题:
公司的IT团队通常负责建立和管理公司的SAML身份验证系统。它们的作用是在系统上为Zendesk实现SSO。亚博请团队参考本文中的以下主题:
相关文章:
Zendesk的SAML SSO是亚博如何工作的
SAML对于Zen亚博desk的工作方式与SAML对所有其他服务提供商的工作方式相同。一个常见的用例是,在一家公司中,所有用户身份验证都由企业身份验证系统(如Active Directory或LDAP)管理身份提供商或国内流离失所者).亚博Zendesk与身份提供者建立了信任关系,并允许它对用户进行身份验证并将其登录到Zendesk帐户。
一个常见的用例是在工作日开始时登录到公司系统的用户。一旦登录,他们就可以访问其他公司应用程序和服务(如电子邮件或Zendesk Support),而不必单独登录这些服务。亚博
如果用户尝试直接登录到Zendesk帐户,他们将被重定向到您的SAML服务器或服务进行身亚博份验证。通过身份验证后,用户被重定向回您的Zendesk帐户并自动登录。亚博
另一个支持的工作流程是让用户在登录公司网站后访问Zendesk。亚博当用户使用其网站凭据登录到网站时,网站将向身份提供程序发送请求以验证用户。然后网站将提供者的响应发送到SAML服务器,SAML服务器将其转发到您的Zendesk帐户,该帐户将会话授予用户。亚博
启用SAML SSO的要求
与贵公司负责SAML认证系统的团队(通常是IT团队)会面,以确保贵公司满足以下要求:
该公司有一个SAML服务器,其中包含已配置的用户,或者连接到标识存储库(如Microsoft Active Directory或LDAP)。选项包括使用内部SAML服务器(如OpenAM)或SAML服务(如Okta、OneLogin或PingIdentity)。
如果使用Active Directory联合服务(ADFS)服务器,则必须启用基于表单的身份验证。亚博Zendesk不支持Windows集成身份验证(WIA)。有关更多信息,请参见使用带有ADFS和SAML的活动目录设置单点登录。
- 亚博zendesk绑定的流量是通过HTTPS,而不是HTTP。
- SAML服务器的远程登录URL(有时称为SAML单点登录URL)
- (可选)用户退出Zendesk后,Zendesk可以重定向用户的远程注销URL亚博
- (可选)将用户重定向到适当登录选项的IP范围列表。从指定IP范围发出请求的用户被路由到远程SAML身份验证登录表单。从范围之外的IP地址发出请求的用户被路由到正常的Zendesk登录表单。亚博如果不指定范围,则将所有用户重定向到远程身份验证登录表单。
- 来自SAML服务器的SAML证书的SHA2指纹。支持X.509证书,并且应该采用PEM或DER格式,但是您仍然需要为X.509证书提供SHA2指纹。SHA指纹的大小没有限制。
IT团队可能需要Zendesk提供的额外信息来配置SAML实现。亚博请参考技术实施工作表在本文中。
当你确认自己符合要求并掌握了所有必要的信息后,你就可以准备好了启用SAML SSO。
启用SAML SSO
管理员可以仅为最终用户启用SAML单点登录,也可以仅为团队成员(包括轻量级代理和贡献者)启用SAML单点登录,或者同时为两个组启用SAML单点登录。您可以创建多个SAML SSO配置。在开始之前,请从公司的IT团队获取所需的信息。看到启用SAML SSO的要求。
在Zendesk中启用SAML单点登录亚博
- 在管理中心,点击账户在侧边栏中,然后选择安全>单点登录。
- 点击创建SSO配置然后选择SAML。
- 输入唯一的配置名称。
- 为Saml sso url,输入SAML服务器的远程登录URL。
- 输入SHA-256格式证书的指纹。这是我们与您的SAML服务器通信所必需的。
- (可选)远程注销URL,输入一个注销URL,用户在退出Zendesk后应该重定向该URL。亚博
- (可选)IP范围,如果希望将用户重定向到适当的登录选项,则输入IP范围列表。
从指定IP范围发出请求的用户被路由到远程SAML身份验证登录表单。从范围之外的IP地址发出请求的用户被路由到正常的Zendesk登录表单。亚博如果希望将所有用户重定向到远程身份验证登录表单,则不要指定范围。
- 点击保存。
缺省情况下,企业单点登录配置处于不激活状态。你必须为用户分配SSO配置激活它。
为用户分配SAML SSO
在创建SAML SSO配置之后,必须通过将其分配给最终用户、团队成员或两者来激活它。
将SSO配置分配给团队成员或最终用户
- 为团队成员或最终用户打开Security设置。
- 如果要为团队成员分配SSO配置,请选择外部认证显示身份验证选项。
这些选项已经显示给最终用户了。
- 单击单点登录(SSO)选项中的外部认证部分,然后选择要使用的SSO配置的名称。
单点登录可能无法覆盖所有用例,因此Zendesk身份验证在默认情况下保持激活状态。亚博若要要求用户使用主SSO方法登录,请参见只允许使用SSO身份验证登录。
- 点击保存。
只允许使用SSO身份验证登录
- 为团队成员或最终用户打开Security设置。
- 为最终用户/团队成员如何登录中,选择重定向到SSO,然后点击保存。
- 在管理中心,点击账户在侧边栏中,然后选择安全>高级。
- 单击身份验证选项卡,然后选择SSO绕过选择。
您可以选择是否只有账户所有者或全部管理员(包括帐户所有者)可以被授予对帐户的访问权限,以防外部登录提供者出现故障。
为了获得访问权限,帐户所有者或管理员请求接收包含一次性访问链接的电子邮件。单击链接授予该人员访问该帐户的权限。不需要输入密码。看到在禁用密码的情况下访问帐号。
- 点击保存。
启用SAML SSO后在Zendes亚博k中管理用户
在Zendesk中启用SAML单点登录后,对Zendesk外部用户所做的更改亚博将同步到您的Zendesk帐户。例如,如果将一个用户添加到您的内部Active Directory或LDAP系统,则该用户将自动添加到您的Zendesk帐户。亚博如果在您的内部系统中删除了用户,则该用户将无法再登录到Zendesk。亚博但是,他们的帐户仍然存在于Zendesk中。亚博
默认情况下,在启用单点登录时,Zendesk中存储的唯一用户数据是用户的给定姓名、亚博姓氏和电子邮件地址。亚博Zendesk不存储密码。因此,您应该禁用Zendesk关于密码的任何自动电子邮件通知。亚博看到禁用来自Zendesk的密码通知邮件亚博。
为了提供更好的客户体验,您可能希望在Zendesk中存储的不仅仅是用户的姓名和电子邮件地址。亚博看到获取额外的用户数据。
禁用来自Zendesk的密码通知邮件亚博
当用户添加到Zendesk帐户时,可能会自动发送电子亚博邮件通知给用户,要求他们验证他们的电子邮件地址并创建用户名和密码。
为通亚博过SAML或JWT访问您的Zendesk帐户的任何新用户创建Zendesk用户配置文件。因为他们使用非Zendesk密码进行身份验证,所以创建配置文件时不需要密码,因为他亚博们不需要登录到Zendesk。但是,默认情况下,每个新用户都会收到一封电子邮件,通知他们验证电子邮件地址并创建用户名和密码。
- 在管理中心,点击人在侧边栏中,然后选择配置>最终用户。
- 在账户的邮件节中,取消选择当代理或管理员创建新用户时,还要发送一封欢迎电子邮件
- 在允许用户更改密码,取消选择此选项。
切换认证方式
如果使用第三方SSO方法在Zendesk中创建用户并对其进行身份验证,然后切换到Zendesk身份验证,则这些用户将没有可用于登录的密码。亚博要获得访问权限,请要求这些用户从Zendesk登录页面重置密码。亚博
技术实施工作表
本节针对公司内部负责公司SAML认证系统的团队。它提供了有关Zendesk SAML SSO实现的详细信息。亚博
主题:
需要用户数据来标识正在进行身份验证的用户
在实现对Zendesk帐户的SAML SSO访问时,需要指定某些用户数据来标亚博识要进行身份验证的用户。
这些主题描述了您需要提供的数据:
在SAML主题的NameID中指定用户的电子邮件地址
亚博Zendesk使用电子邮件地址来唯一标识用户。您应该在SAML主题的名称ID中指定用户的电子邮件地址。
例如:
stevejobs@yourdomain.com
如果没有提供给定的名称和姓氏属性,Zendesk将使用的电子邮件地址的用户名亚博< saml:主题>
< saml: NameID >
元素作为用户名。电子邮件地址“@”符号之前的第一部分是用户名。
如果电子邮件的用户名中有一个句点字符,那么我们将使用它来解析出名字和姓氏。如果没有句号字符,那么整个用户名将成为Zendesk中用户的名称。亚博例如,如果电子邮件地址< saml:主题> < saml: NameID >
是stanley.yelnats@yourdomain.com, Zendesk中的用户名将存储为亚博斯坦利Yelnats;但是,如果电子邮件地址是stanleyyelnats@yourdomain.com, Zendesk中的用户名将存储为亚博Stanleyyelnats。
在SAML断言中指定两个必需的用户属性
如果您指定givenname和姓属性时,必须使用完整的名称空间,而不是友好的名称。例如:如果友好名称可能是'姓氏',则需要为属性指定的实际值为http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
概念 | 属性 | 描述 | 示例值 |
---|---|---|---|
第一个名字 | givenname | 该用户的给定名称。您必须为此属性指定完整的名称空间。 |
|
姓 | 姓 | 用户的姓氏。Zendesk中的用亚博户是根据该用户的给定姓名创建或更新的。参见下面的示例。您必须为此属性指定完整的名称空间。 |
|
名和姓的例子:
James Dietrich
亚博Zendesk支持其他用户属性。与您的Zendesk支持管亚博理员讨论他们在支持中的数据需求。
获取额外的用户数据
Zendesk从您的身份验证系统中需要的唯一用户数据是用户的给亚博定姓名、姓氏和电子邮件地址。给定的名称和姓氏是您应该用于捕获有关用户名称的信息的唯一属性名称。但是,通过要求IT团队在用户登录时将用户属性添加到身份提供者发送给Zendesk的SAML断言中,您可以获得更多数据。亚博
一个SAML断言包含一个或多个关于用户的语句。一条语句是授权决策本身——是否授予用户访问权限。另一个语句可以由描述已登录用户的属性组成。
属性 | 描述 |
---|---|
组织 | 要将用户添加到的组织的名称或id。不支持组织的external_id属性。如果组织在Zendesk中不存在,则不会创建它。亚博用户仍然会被创建,但是不会被添加到任何组织中。 |
组织 | 逗号分隔的值,如org1 ,org2 ,org3 |
organization_id | 例子:134211213 |
organization_ids | 逗号分隔的值,如23423433, 234324324, 23432 |
欧 | 组织单位名称。将其指定为组织 属性。 |
电话 | 指定为字符串的电话号码。 |
标签 | 要在用户上设置的标签。这些标记将取代用户配置文件中可能存在的任何其他标记。 |
remote_photo_url | 要在用户配置文件上设置的照片的URL。 |
区域设置(针对代理) Locale_id(最终用户) |
Zendesk中的区域设置,亚博用数字指定。要获取有效编号的列表,请参见地区在API文档中。 |
角色 | 用户的角色。可以设置为终端用户,代理,或管理。默认是终端用户。 |
custom_role_id | 的值时才适用角色属性为代理。方法获取自定义角色的id自定义角色API。 |
external_id | 如果您的用户是由电子邮件地址以外的其他东西标识的,或者如果他们的电子邮件地址可能会更改,则来自系统的用户id。指定为字符串。 |
user_field_关键> < | 在Zendesk Support中自定义用户字段的值。亚博看到向用户添加自定义字段。user_field_employee_number 在哪里employee_number 是Zendesk中的字段键。亚博在属性值中发送空值或空字符串将删除Zendesk支持中设置的任何自定义字段值。亚博 |
友好的名称 | SAML2正式名称 |
---|---|
Ou(组织单位) | urn: oid: 2.5.4.11 |
displayName | urn: oid: 2.16.840.1.113730.3.1.241 |
配置Zendesk的标识提供者亚博
属性 | 价值 |
---|---|
entityID | https://yoursubdomain.亚博zendesk.com |
AudienceRestriction | yoursubdomain.亚博zendesk.com |
对于这两个值,替换your_subdomain使用Zendesk亚博 Support子域。如果您不确定子域,请询问Zendesk管理员。亚博
亚博Zendesk执行AudienceRestriction
属性。
为Zendesk配置SAML服务器亚博
在配置与Zendesk集成时,一些SAML服务器可能需要以下信息:亚博
ACS (Access Consumer Service) URL:指定https://yoursubdomain.亚博zendesk.com/access/saml(大小写敏感),其中'accountname'与您的支持子域
重定向到SAML单点登录URL:使用HTTP POST
散列算法(ADFS): Zendesk在使用Acti亚博ve Directory Federation Services (ADFS)时支持SHA-2算法
参数返回到您的远程登录和注销url
当将用户重定向到您的身份验证系统时,Zendesk将以下参数附加到远程登录和远程签出url。亚博
属性 | 描述 |
---|---|
brand_id | 用户试图登录时所在的帮助中心的品牌。有关更多信息,请参见为你的品牌创建一个帮助中心。 |
属性 | 描述 |
---|---|
电子邮件 | 用户登出的电子邮件。 |
external_id | 存储在Zendesk用户配置文件中的来自系统的唯一标识符。亚博 |
brand_id | 用户退出时所使用的帮助中心的品牌。有关更多信息,请参见为你的品牌创建一个帮助中心。 |
如果您不希望在退出URL中接收电子邮件和外部id信息,请要求Zendesk管理员在亚博远程注销URL字段。看到启用SAML SSO。例如:https://www.yourdomain.com/user/signout/?email=&external_id=。
解决Zendesk的SAML配置问题亚博
以下是Zende亚博sk的SAML 2.0元数据:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> < EntityDescriptor entityID = " https://yoursubdom亚博ain.zendesk.com " xmlns = " urn: oasis: names: tc: SAML: 2.0:元数据”> < SPSSODescriptor AuthnRequestsSigned =“false”WantAssertionsSigned = " true " protocolSupportEnumeration = " urn: oasis: names: tc: SAML: 2.0:协议”> < NameIDFormat > urn: oasis: names: tc: SAML: 1.1: nameid-format: emailAddress < / NameIDFormat > < AssertionConsumerService指数=“1”绑定= " urn: oasis:名字:tc: SAML: 2.0:绑定:http - post”位置= " https://yoursubdomain.zendesk.com/access/saml " / > < !——注意:将'accountname'替换为Zendesk子域名——>
亚博Zendesk期望SAML断言如下所示:
< SAML: Response xmlns: SAML ="urn:oasis:names:tc:SAML:2.0:protocol" ID="s2202bbbb afa9d270d1c15990b738f4ab36139d463" InResponseTo=" _e4a787880-35da -012e-8ea7-005056 9200d8" Version="2.0" IssueInstant="2011-03-21T11:22:02Z" Destination="https://yoursubdo亚博main.zendesk.com/access/saml"> < SAML: Issuer xmlns: SAML ="urn:oasis:names:tc:SAML:2.0:assertion">myidp.entity。id
请注意:替换'accountname'目的地
属性与您的Zendesk子域。亚博
亚博Zendesk期望在断言的属性语句中指定用户属性(< saml: AttributeStatement >
),例如:
Acme Rockets tag1 tag2 555-555-1234 agent 12345
有关Zendesk支持的用户属性的名称和描述,请参见亚博获取额外的用户数据以上。请注意,可选的用户属性不支持完整的名称空间。
37个评论
很棒的文章&谢谢你的分享,这是一个关于启用SAML单点登录的好博客
嗨
我正在与Azure设置SAML SSO,在测试时,我得到一个标识符错误的错误。我已按照指引(https://subdomain.亚博zendesk.com),如本页表6所示。知道哪里出了问题吗?
谢谢
你好Aggelos !
我知道你已经和我们的同事聊过这个问题了,你可以自己解决这个问题。如果你有什么建议来解决这个问题,我们很想知道!
我不得不从URL中删除https部分。然后一个小hack登陆到正确的页面进行登录。在Azure中,使用“登录”按钮的目标作为登录URL。
感谢您提供的信息!
我们可以通过SSO JWT流更新终端用户别名吗?
它允许更新任何自定义字段,但由于别名不是自定义的,它几乎是文档中唯一缺少的东西。
我已经用我的IdentityProvider4设置了SAML SSO,并且能够很好地进行SSO。是否有一种方法可以使用我的系统GUID来识别zendesk用户,而不是电子邮件?亚博
我看到API PUT/POST调用更新/添加用户身份类型到电子邮件,twitter等,但没有关于通用ID。
可能是external_id,但是我如何指定Zendesk接受这个呢?亚博
你好,詹姆斯,
默认情况下,Zen亚博desk中的用户使用电子邮件标识,当我们讨论SSO身份验证时,需要使用电子邮件属性。
external_id将接受任何值(数字和字符),您可以在SAML断言有效负载中传递此属性(请参阅上面“获取额外用户数据”一节),但它不能用作用户的主要标识。
你好。我们正在使用okta登录到Zendesk。亚博我还想传递3个字段从okta配置文件到Zendesk用户配置文件(经理,经理电子邮件,部门),所以我用这些名字做了亚博3个用户字段。在Okta管理中设置时,我需要将管理器映射到管理器,还是将管理器映射到user_field_manager(根据这篇文章:
user_field_employee_number
在哪里employee_number
是Zendesk中的字段键。亚博在属性值中发送空值或空字符串将删除Zendesk支持中设置的任何自定义字段值。亚博嘿维克多!您需要将管理器映射到user_field_manager假设经理是与用户字段关联的键。
你好,SAbra,我们正在从okta进行供应,我们遇到了一个问题。Okta试图将角色,自定义角色和票证限制推送到Zendesk,但它没有传递(我们得到错误)。亚博是否有一种方法可以关闭此功能(是否需要为此编辑小插入)?
我想知道是否可以安排与Zendesk和Okta的支持人员进行视频通话,以帮助我们解决这个问题?亚博
我建议你抓一个哈尔文件带有时间戳并初始化谈话与我们联系,以便我们进一步检查您的SSO设置。
嗨,我们需要更新我们的SSO SAML配置/证书。您知道保存配置更新是否会对当前登录的任何人产生负面影响吗?
例如,它会将代理踢出系统并强制它们重新进行身份验证吗?
嗨,安德鲁,
作为记录在这里浏览器使用cookies(包含用户数据的文件)放在计算机的缓存(临时数据存储空间)中,将网站信息存储在您的计算机上,因此网页和组件可以快速加载。亚博Zendesk也使用这种能力来提供最好的性能。
当您更新SSO SAML配置/证书时,您的缓存和cookie可能会过时,这可能会在浏览器尝试使用旧版本时导致问题和不必要的行为。要解决这个问题,你只需要清除你的缓存和cookies。
你好,
Zende亚博sk是否支持来自单一Federation的多个站点?
谢谢,
Stefan
你好,
在与Azure设置SAML SSO时,我得到Azure中的标识符(实体ID)与从应用程序(Zendesk)发送的发行者属性不匹配的错误。亚博
请确认Zendesk发送的发行者属性,以便我可以在Azure中进行匹配?亚博发行者属性没有出现在Zendesk控制台,所以我找不到。亚博
谢谢。
看起来你已经通过短信联系过我们了,价值也已经提供了。请检票# 10173395了解更多信息。
我们在Azure中设置了SAML,并得到了错误AADSTS650056—我们按照本指南配置了SAML,但无法使用它来进行身份验证?
错误AADSTS650056是一个配置错误的应用程序微软文档。我建议您遵循上述文章中建议的解决方案
我们已经按照指南从我们的应用程序启用Zendesk的SSO。亚博我们还有一个额外的要求,允许从具有不同用户存储的另一个应用程序到Zendesk的单点登录。亚博目前可行吗?我们可能还有第三个。想知道如何支持多个SSO
建议在Zendesk登录时只使用一个SSO。亚博但是,您可以遵循中讨论的解决方法如何设置两个Zendesk SSO集成?亚博最大值为2。
你好,
Zendesk是否亚博支持使用UPN而不是电子邮件地址作为唯一标识符?有时用户的电子邮件地址与他们的用户名(UPN)不匹配,这会使他们对SSO登录感到困惑。我们使用Azure AD进行SSO。
2-如果不支持UPN作为唯一标识符,在Azure AD中配置应用程序时,Name ID默认为user。userprincipalname(隐喻)。是否应该在Azure AD端更改为用户。邮件呢?似乎这应该默认为用户。如果Zendesk使用电子邮件地址作为唯亚博一标识符,则在Azure AD中发送邮件。
我有这样的断言http://schemas.xmlsoap.org/ws/2005/05/identity/claims/organization:然而,我的SAML中的“someecompany”并没有将用户添加到组织中。我做错了什么?
注意,Zendesk只有在断言的属性语句中使用了下表中亚博列出的属性名时才会识别这些附加的用户属性;如果您尝试为这些属性使用完整的名称空间,它们将被忽略。什么是完整的名称空间属性与用户属性?
我发现这个声明在标题“为用户分配SAML SSO”的#3下是不正确的。
请确认并更新文档。
“对于最终用户,如果启用了Zendesk身份验证选项,选择SSO选项会自动取消选中该选项。”亚博
这是不正确的——我在沙箱中为最终用户启用了SSO, Zendesk Auth仍然勾选(它不会自动禁用)。亚博我也确认了我可以通过单点登录(主)和Zendesk认证登录到后门URL作为一个普通的终亚博端用户https://domain.亚博zendesk.com/access/normal。
SSO是主要的方法,因为当进入我们的Zendesk URL并点击“Sign In”时,它会自动重定向到亚博SSO(我们使用Azure AD)。所以基本上,“登录”不再提供一个弹出窗口,让用户登录,无论是普通用户还是代理。但是,Ze亚博ndesk认证仍然是启用的,如果最终用户(或代理)知道后门URL,则可以登录。
嗨卡梅隆LoPresti-
感谢您用文档报告问题。我们的团队正在调查。
是否可以删除SSO配置?我没有看到这个选项。它没有被分配给任何用户,因此它是不活动的,但是没有删除的选项。
山姆·拉森
我们目前不允许删除SSO配置,我们希望在将来允许它与日志和恢复功能相结合,以处理意外删除。
正如其他人已经在这里发现和评论的那样,Zendesk要求身份提供者使用电子邮件地址在SAML主题的NameI亚博D元素中唯一地标识其用户,这是有问题的,也是令人沮丧的根源。
这个要求是不好的实践,因为作为一个标识消费者, Zendesk不负亚博责确定用户标识符的类型或格式。这个决定实际上属于身份提供者,Zendesk应该足够灵活,可以接受/使用IdP选择使用的任何类型的唯一标识符。亚博(例如,他们可能更喜欢使用其他类型的唯一标识符,如GUID,以便用户的帐户在更改电子邮件地址时可以保持不变。根据您的要求,如果用户更改电子邮件地址,则必须不必要地创建新帐户。)
更好的方法是Zendesk要求提供电子邮件地址作为用户属性之亚博一,但它不应该期望电子邮件地址将用作IdP的唯一标识符。
有人设法使用Azure AD来创建具有自定义角色的代理吗?
我们已经为role(设置为'agent')和custom_role_id(设置为要分配的自定义角色的id)添加了映射,但是用户总是作为最终用户而不是作为代理创建的。
什么好主意吗?
谢谢
请登录留下评论。