亚博Zendesk支持企业单点登录访问Zendesk帐户通过安全断言标记语言(SAML)和JSON Web Token (JWT).有了SSO,用户只需使用公司的登录表单登录一次,就可以访问多个系统和服务提供商,包括Zendesk产品。亚博
作为Zen亚博desk管理员,您的角色包括启用SSO选项。本文描述了如何启用最多两个SAML单点登录配置,这些配置可用于验证团队成员(管理员和代理,包括轻量级代理和贡献者)、最终用户或两者都是。
本文包含以下主题:
公司的IT团队通常负责建立和管理公司的SAML身份验证系统。他们的角色是在系统上为Zendesk实现SSO。亚博请团队参考本文中的以下主题:
相关文章:
SAML SSO如何为Zendes亚博k工作
Zendesk的S亚博AML工作方式与SAML与所有其他服务提供商的工作方式相同。一个常见的用例是一家公司,其中所有用户身份验证都由企业身份验证系统(如Active Directory或LDAP)管理身份提供商或国内流离失所者)。亚博Zendesk与身份提供者建立信任关系,并允许其对用户进行身份验证并将其登录到Zendesk帐户。
一个常见的用例是在工作日开始时登录到公司系统的用户。一旦登录,他们就可以访问其他公司应用程序和服务(如电子邮件或Zendesk Support),而无需单独登录这些服务。亚博
如果用户试图直接登录Zendesk帐户,他们将被重定向到您的SAML服务器或服务进行身份亚博验证。身份验证后,用户将被重定向回Zendesk帐户并自动登录。亚博
另一个受支持的工作流是在用户登录公司网站后允许他们访问Zendesk。亚博当用户使用其网站凭据登录到网站时,网站向身份提供者发送请求以验证该用户。然后,该网站将提供商的响应发送到SAML服务器,SAML服务器将其转发到您的Zendesk帐户,该帐户将会话授予用户。亚博
启用SAML单点登录的要求
与公司中负责SAML身份验证系统的团队(通常是IT团队)会面,以确保公司满足以下要求:
该公司拥有一个SAML服务器,其中提供用户或连接到一个身份存储库,如Microsoft Active Directory或LDAP。选项包括使用内部SAML服务器(如OpenAM)或SAML服务(如Okta、OneLogin或PingIdentity)。
如果使用ADFS (Active Directory Federation Services)服务器,必须启用基于表单的身份验证。亚博Zendesk不支持Windows集成认证(WIA)。有关更多信息,请参见使用带有ADFS和SAML的Active Directory设置单点登录.
- 亚博zendesk绑定的流量通过HTTPS,而不是HTTP。
- SAML服务器的远程登录URL(有时称为SAML单点登录URL)
- (可选)远程注销URL, Zendesk可以在用户退出Zendesk后重定向用亚博户
- (可选)IP范围列表,用于将用户重定向到适当的登录选项。从指定的IP范围发出请求的用户被路由到远程SAML身份验证登录表单。从该范围以外的IP地址发出请求的用户将被路由到正常的Zendesk登录表单。亚博如果不指定范围,则所有用户都被重定向到远程身份验证登录表单。
- SAML服务器上的SAML证书的SHA2指纹。支持X.509证书,并且应该是PEM或DER格式,但是您仍然需要为X.509证书提供SHA2指纹。SHA指纹的大小没有上限。
IT团队可能需要Zendesk提供额外的信息来配置SAML实现。亚博请参阅技术实施工作表在本文中。
在您确认您满足了要求并获得了所有必要的信息之后,您就可以开始了启用SAML单点登录.
启用SAML单点登录
管理员只能为最终用户、团队成员(包括轻量级代理和贡献者)或两个组启用SAML单点登录。您最多可以创建两个SAML SSO配置。在开始之前,请从公司的IT团队获得所需的信息。看到启用SAML单点登录的要求.
Zendesk中启用SAML单点登录亚博
- 在管理中心,点击账户在侧栏中,然后选择安全>单点登录.
- 点击创建SSO配置然后选择SAML.
- 输入唯一的配置名称.
- 为Saml sso url,输入SAML服务器的远程登录URL。
- 进入SHA-256证书的指纹.这是我们与您的SAML服务器通信所必需的。
- (可选)远程注销URL,输入注销URL,用户注销Zendesk后将被重定向。亚博
- (可选)IP范围,如果要将用户重定向到适当的登录选项,则输入IP范围列表。
从指定的IP范围发出请求的用户被路由到远程SAML身份验证登录表单。从该范围以外的IP地址发出请求的用户将被路由到正常的Zendesk登录表单。亚博如果希望将所有用户重定向到远程身份验证登录表单,则不要指定范围。
- 点击保存.
缺省情况下,企业单点登录配置处于不激活状态。你必须为用户分配单点登录配置激活它。
为用户分配SAML单点登录
创建SAML SSO配置后,必须通过将其分配给最终用户、团队成员或两者来激活它。
将SSO配置分配给团队成员或最终用户
- 为团队成员或最终用户打开安全设置。
- 如果要将SSO配置分配给团队成员,请选择外部认证显示身份验证选项。
这些选项已经显示给最终用户。
- 单击单点登录(SSO)选项中的外部认证部分,然后选择要使用的SSO配置的名称。
单点登录可能无法覆盖所有用例,因此Zendesk身份验证在默认情况下保持活动状态。亚博若要要求用户使用主SSO方法登录,请参见只允许使用SSO身份验证进行登录.
- 点击保存.
只允许使用SSO身份验证进行登录
- 为团队成员或最终用户打开安全设置。
- 为最终用户/团队成员如何登录中,选择重定向到SSO,然后按保存.
- 在管理中心,点击账户在侧栏中,然后选择安全>高级.
- 单击身份验证选项卡,然后选择一个SSO绕过选择。
您可以选择是否只有账户所有者或全部管理员(包括帐户所有者)可以被授予访问帐户的权限,以防外部登录提供者出现故障。
为了获得访问权限,帐户所有者或管理员请求接收包含一次性访问链接的电子邮件。单击该链接授予该用户访问该帐户的权限。无需输入密码。看到在禁用密码的情况下访问帐户.
- 点击保存.
启用SAML单点登录后,在Zende亚博sk中管理用户
在Zendesk中启用SAML单点登录后,对Zendesk以外的用户所做的更亚博改将同步到您的Zendesk帐户。例如,如果一个用户被添加到您的内部Active Directory或LDAP系统,该用户将自动添加到您的Zendesk帐户。亚博如果用户在您的内部系统中被删除,该用户将无法再登录Zendesk,但其帐户仍然存在于Zendesk中。亚博
默认情况下,启用单点登录时,Zendesk中存储的唯一用户数据是用户的给定姓名、姓亚博氏和电子邮件地址。亚博Zendesk不存储密码。因此,你应该禁用Zendesk关于密码的任何自动电子邮件通知。亚博看到Zendesk禁用密码通知邮件亚博.
为了提供更好的客户体验,您可能希望在Zendesk中存储更多的用户名和电子邮件地址。亚博看到获取额外的用户数据.
Zendesk禁用密码通知邮件亚博
当用户添加到Zendesk帐户时,可能会向用户发送自亚博动电子邮件通知,要求他们验证自己的电子邮件地址,并创建用户名和密码。
Ze亚博ndesk用户配置文件将为任何通过SAML或JWT访问Zendesk帐户的新用户创建。因为他们使用非Zendesk密码进行身份验证,所以创建配置文件时不需要密码,因为他亚博们不需要登录到Zendesk。但是,默认情况下,每个新用户都会收到一封电子邮件,通知他们验证自己的电子邮件地址并创建用户名和密码。
- 在管理中心,点击人在侧栏中,然后选择配置>最终用户.
- 在账户的邮件节中,取消选择当代理或管理员创建新用户时,也要发送欢迎电子邮件
- 在允许用户修改密码,取消选择该选项。
切换身份验证方法
如果您使用第三方SSO方法在Zendesk中创建用户并对其进行身份验证,然后切换到Zendesk身份验证,则这些用户将没有可用于登录的密码。亚博要获得访问权限,请这些用户从Zendesk登录页面重置他们的密码。亚博
技术实施工作表
本部分适用于公司中负责公司SAML身份验证系统的团队。它提供了关于Zendesk SAML SSO实现的详细信息。亚博
主题:
识别正在进行身份验证的用户所需的用户数据
当您实现对Zendesk帐户的SAML SSO访问时,您可以指定某些用户数据亚博来标识正在进行身份验证的用户。
这些主题描述了您需要提供的数据:
在SAML主题的NameID中指定用户的电子邮件地址
亚博Zendesk使用电子邮件地址来唯一地识别用户。您应该在SAML主题的名称ID中指定用户的电子邮件地址。
例如:
stevejobs@yourdomain.com .
如果没有提供givenname和姓氏属性,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_subdomainZendesk支持亚博子域。如果您不确定子域,请询问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在使用ADFS亚博 (Active Directory Federation Services)时支持SHA-2算法。
返回到远程登录和签出url的参数
当将用户重定向到您的身份验证系统时,Zendesk将以下参数附加到远程登录和远程签出url。亚博
属性 | 描述 |
---|---|
brand_id | 用户试图登录时所使用的帮助中心的品牌。有关更多信息,请参见为您的品牌之一创建帮助中心. |
属性 | 描述 |
---|---|
电子邮件 | 用户注销的电子邮件。 |
external_id | 系统中存储在Zendesk用户配置文件中的唯一标识符。亚博 |
brand_id | 用户退出时使用的帮助中心的品牌。有关更多信息,请参见为您的品牌之一创建帮助中心. |
如果您不希望在登出URL中接收电子邮件和外部id信息,请您的Zendesk管理员在亚博远程注销URL字段。看到启用SAML单点登录.例如:https://www.yourdomain.com/user/signout/?email=&external_id=.
对Zendesk的SAML配置进行故障排除亚博
以下是Zende亚博sk的SAML 2.0元数据:
<?xml version="1.0" encoding="UTF-8" standalone="是"?> < 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 " / > < !——注意:用Zendesk子域替换accountname——>
亚博Zendesk期望SAML断言如下所示:
< SAML: Issuer xmlns: SAML ="urn:oasis:names:tc:SAML:2.0:assertion">myidp.entity. entity. "id . 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中,使用Sign In按钮的目标作为URL上的签名。
谢谢你提供的信息!
我们可以通过SSO JWT流更新最终用户别名吗?
它允许更新任何自定义字段,但由于别名不是自定义的,它几乎是文档中唯一缺少的东西。
我已经用我的IdentityProvider4设置了SAML SSO,并且能够这样做。是否有一种方法可以使用我系统的GUID来识别zendesk用户,而不是电子邮件?亚博
我看到API PUT/POST调用更新/添加用户身份类型到电子邮件,twitter等,但没有关于通用ID。
可能是external_id,但我怎么能指定Zendesk接受这个?亚博
你好,詹姆斯,
Zendesk中的亚博用户默认使用电子邮件进行标识,当我们讨论SSO身份验证时,电子邮件属性是必需的。
external_id将接受任何值(数字和字符),您可以在SAML断言有效负载中传递该属性(参见上面“获取额外用户数据”部分),但它不能用作用户的主要标识。
你好。我们正在使用okta登录到Zendesk。亚博我还想传递3个字段从okta配置文件到Zendesk配置文件的用户(经理,经理电子邮件,部门),所以我做了3个用户亚博字段与这些名称。当在Okta admin中设置时,我需要将管理器映射到管理器,还是管理器映射到user_field_manager(如本文所示:
user_field_employee_number
在哪里employee_number
是Zendesk中的字段键。亚博在属性值中发送空值或空字符串将删除Zendesk支持中设置的任何自定义字段值。亚博嘿维克多!您将希望将管理器映射到user_field_manager假设经理与用户字段关联的键。
嗨,SAbra,所以我们正在从okta进行供应,我们遇到了一个问题。Okta试图将角色,自定义角色和门票限制推到Zendesk,但它没有传递(我们得到错误)。亚博是否有一种方法可以关闭这个(需要为此编辑saml插入)?
我想知道是否可以安排一个视频电话与Zendesk和Okta支持来帮助我们解决这个问题?亚博
我建议你捕捉一个哈尔文件的时间戳和初始化谈话我们可以进一步检查您的SSO设置。
你好,我们需要更新我们的SSO SAML配置/证书。你知道保存更新配置是否会对当前登录的用户产生负面影响吗?
例如,它会将代理踢出系统并迫使他们重新进行身份验证吗?
嗨,安德鲁,
作为记录在这里浏览器使用cookies(包含用户数据的文件)放置在您的计算机的缓存(临时数据存储空间)来存储您的计算机上的网站信息,因此网页和组件可以快速加载。亚博Zendesk也利用这一能力来提供最好的性能。
当您更新SSO SAML配置/Cert时,您的缓存和cookie可能会过时,这可能会在浏览器尝试使用旧版本时导致问题和不必要的行为。要解决这个问题,你只需要清除缓存和cookie。
你好,
Zende亚博sk是否支持来自单一联盟的多个站点?
谢谢,
Stefan
你好,
在使用Azure设置SAML SSO时,我得到的错误是,Azure中的标识符(实体ID)与应用程序(Zendesk)发送的发行者属性不匹配。亚博
您能否确认Zendesk正在发送的Issuer属性,以便我可以在Azure中匹配?亚博发行人属性没有出现在Zendesk控制台中,所以我找不到。亚博
谢谢。
似乎你已经通过消息联系我们,价值已经提供。请检票# 10173395获取更多信息。
我们已经用Azure设置了SAML,并得到了错误AADSTS650056 -我们已经按照本指南配置了SAML,但不能使用它进行身份验证?
错误AADSTS650056是错误配置的应用程序微软文档.我建议您遵循上述文章中建议的解决方案
我们已经按照指南从我们的应用程序中启用SSO到Zendesk。亚博我们有一个额外的需求,允许从另一个具有不同用户存储的应用程序SSO到Zendesk。亚博目前这是可能的吗?我们可能还会有第三个。想知道如何支持多个SSO
建议只使用一个SSO登录Zendesk。亚博但是,您可以遵循中讨论的解决方案如何设置两个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:“someCompany”在我的SAML,但用户没有被添加到组织。我做错了什么?
注意,如果断言的属性语句中使用了下表中列出的属性名,Z亚博endesk只识别这些额外的用户属性;如果您试图对这些属性使用完整的名称空间,它们将被忽略。”完整的名称空间属性与用户属性是什么?
我发现这个说法是不正确的#3标题“分配SAML单点登录用户”
请确认并更新文件。
“对于最终用户,如果启用了单点登录选项,则会自动取消选择Zendesk身份验证选项。”亚博
这是不正确的-我已经在我的沙盒中为最终用户启用了SSO, Zendesk Auth仍然被选中(它不会自动禁用)。亚博我还确认,我能够登录到Zendesk作为一个普通终端用户与SSO(主)和Zendesk亚博认证通过去后门URLhttps://domain.亚博zendesk.com/access/normal.
SSO是主要的方法,因为当进入我们的Zendesk URL并单击“登录”时,它会自动重定向到SSO(我亚博们使用Azure AD)。所以基本上,“Sign In”不再为用户提供一个弹出窗口来登录,无论用户是普通用户还是Agent。但是,Ze亚博ndesk认证仍然是启用的,如果最终用户(或代理)知道后门URL,就可以登录。
嗨卡梅隆LoPresti-
谢谢你用文档报告了这个问题。我们的团队正在调查。
我们是否能够删除SSO配置?我没有看到这个选项。它没有分配给任何用户,使其处于非活动状态,但没有删除选项。
山姆·拉森
我们目前不允许删除SSO配置,我们希望允许在未来结合日志和恢复功能来处理意外删除。
正如其他人已经在这里发现和评论的那样,Zendesk要求身份提供者使用电子邮件地址在SAML主题的NameI亚博D元素中唯一地标识其用户,这是有问题的,并且是令人沮丧的来源。
这个要求是不好的做法,因为作为一个身份消费者在美国,决定用户标识符亚博的类型或格式不是Zendesk的职责。这个决定实际上属于标识提供商,Zendesk应该足够灵活,可以接受/使用IdP选择使用的任何类型的唯一标识符。亚博(例如,他们可能更喜欢使用一些其他类型的唯一标识符,如GUID,以便在更改电子邮件地址时可以保留用户的帐户。根据您的要求,如果用户更改了电子邮件地址,就必须创建一个不必要的新帐户。)
我更好的方法是,如果Zendesk要求将电子邮件地址作为用户亚博属性之一提供,但它不应该期望将电子邮件地址用作IdP的唯一标识符。
有人尝试使用Azure AD创建具有自定义角色的代理吗?
我们已经为role(设置为'agent')和custom_role_id(设置为要分配的自定义角色的id)添加了映射,但用户总是作为最终用户而不是作为代理创建的。
什么好主意吗?
谢谢
请登录留下评论。