教程:Microsoft Entra 单一登录 (SSO) 与 ServiceNow 的集成
本教程介绍如何将 ServiceNow 与 Microsoft Entra ID 相集成。 将 ServiceNow 与 Microsoft Entra ID 集成后,可以:
- 在 Microsoft Entra ID 中控制谁有权访问 ServiceNow。
- 让用户能够使用其 Microsoft Entra 帐户自动登录到 ServiceNow。
- 在一个中心位置(Azure 门户)管理帐户。
先决条件
若要开始操作,需备齐以下项目:
- 一个 Microsoft Entra 订阅。 如果没有订阅,可以获取一个免费帐户。
- 已启用 ServiceNow 单一登录 (SSO) 的订阅。
- 对于 ServiceNow,ServiceNow 的实例或租户支持卡尔加里、金斯敦、伦敦、马德里、纽约、奥兰多、巴黎和圣地亚哥版本或更高版本。
- 对于 ServiceNow Express,需要 Helsinki 版本或更高版本的 ServiceNow Express 实例。
- ServiceNow 租户必须启用多提供程序单一登录插件。
- 对于自动配置,请为 ServiceNow 启用多提供程序插件。
- 若要安装 ServiceNow 代理(移动版)应用程序,请转到相应的商店并搜索 ServiceNow 代理应用程序。 然后下载。
注意
此集成也可以通过 Microsoft Entra 美国政府云环境使用。 你可以在“Microsoft Entra 美国政府云应用程序库”中找到此应用程序,并以公有云相同的方式对其进行配置。
方案描述
在本教程中,你将在测试环境中配置并测试 Microsoft Entra SSO。
ServiceNow 支持 SP 发起的 SSO。
ServiceNow 支持自动用户预配。
可以通过 Microsoft Entra ID 来配置 ServiceNow 代理(移动版)应用程序以启用 SSO。 它同时支持 Android 和 iOS 用户。 在本教程中,你将在测试环境中配置并测试 Microsoft Entra SSO。
从库中添加 ServiceNow
若要配置 ServiceNow 与 Microsoft Entra ID 的集成,需要从库中将 ServiceNow 添加到托管 SaaS 应用列表。
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 浏览至“标识”>“应用程序”>“企业应用程序”>“新建应用程序”。
- 在“从库中添加”部分的搜索框中,输入“ServiceNow” 。
- 从结果面板中选择“ServiceNow”,然后添加该应用。 在该应用添加到租户时等待几秒钟。
或者,也可以使用企业应用配置向导。 在此向导中,可以将应用程序添加到租户、将用户/组添加到应用、分配角色,以及逐步完成 SSO 配置。 详细了解 Microsoft 365 向导。
配置并测试 ServiceNow 的 Microsoft Entra SSO
使用名为 B.Simon 的测试用户配置并测试 ServiceNow 的 Microsoft Entra SSO。 若要使 SSO 正常工作,需要在 Microsoft Entra 用户与 ServiceNow 中的相关用户之间建立关联。
若要配置并测试 ServiceNow 的 Microsoft Entra SSO,请执行以下步骤:
- 配置 Microsoft Entra SSO,以使用户能够使用此功能。
- 创建 Microsoft Entra 测试用户,以使用 B.Simon 测试 Microsoft Entra 单一登录。
- 分配 Microsoft Entra 测试用户,以使 B.Simon 能够使用 Microsoft Entra 单一登录。
- 针对 ServiceNow Express 配置 Microsoft Entra SSO - 让用户能够使用此功能。
- 配置 ServiceNow,以在应用程序端配置 SSO 设置。
- 创建 ServiceNow 测试用户,以便在 ServiceNow 中创建 B.Simon 的对应用户,并将其链接到该用户的 Microsoft Entra 表示形式。
- 配置 ServiceNow Express SSO - 在应用程序端配置单一登录设置。
- 测试 SSO,验证配置是否正常工作。
- 测试 ServiceNow 代理(移动版)的 SSO,验证配置是否正常工作。
配置 Microsoft Entra SSO
按照以下步骤启用 Microsoft Entra SSO。
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”>“ServiceNow”应用程序集成页,然后找到“管理”部分。 选择“单一登录” 。
在“选择单一登录方法”页上选择“SAML” 。
在“设置 SAML 单一登录”页上,选择“基本 SAML 配置”对应的笔形图标以编辑设置 。
在“基本 SAML 配置” 部分中,按照以下步骤操作:
a. 在“登录 URL”中,输入以下任一 URL 模式:
登录 URL https://<instancename>.service-now.com/navpage.do
https://<instance-name>.service-now.com/login_with_sso.do?glide_sso_id=<sys_id of the sso configuration>
注意
请从“配置 ServiceNow”部分复制 sys_id 值,本教程后面将介绍该部分。
b. 在“标识符(实体 ID)” 中,输入使用以下模式的 URL:
https://<instance-name>.service-now.com
c. 对于“回复 URL”,请输入以下任一 URL 模式:
回复 URL https://<instancename>.service-now.com/navpage.do
https://<instancename>.service-now.com/consumer.do
d. 在“注销 URL”中,输入使用以下模式的 URL:
https://<instancename>.service-now.com/navpage.do
注意
如果在标识符值中添加了“/”,请手动将其删除。
注意
这些不是实际值。 需要使用实际的登录 URL、回复 URL、注销 URL 和标识符(稍后将在本教程中进行介绍)来更新这些值。 还可参考“基本 SAML 配置”部分中显示的模式。
在“设置 SAML 单一登录”页的“SAML 签名证书”部分,找到“证书(Base64)” 。
a. 选择“复制”按钮,以复制“应用联合元数据 URL” 并将其粘贴到记事本。 本教程稍后将使用此 URL。
b. 选择“下载” 以下载“证书(Base64)” ,并将证书文件保存在计算机上。
在“设置 ServiceNow”部分中,根据要求复制相应 URL 。
创建 Microsoft Entra 测试用户
在本部分中,你将创建名为 B.Simon 的测试用户。
- 至少以用户管理员身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“用户”>“所有用户”。
- 选择屏幕顶部的“新建用户”>“创建新用户”。
- 在“用户”属性中执行以下步骤:
- 在“显示名称”字段中输入
B.Simon
。 - 在“用户主体名称”字段中,输入 username@companydomain.extension。 例如
B.Simon@contoso.com
。 - 选中“显示密码”复选框,然后记下“密码”框中显示的值。
- 选择“查看 + 创建”。
- 在“显示名称”字段中输入
- 选择“创建”。
分配 Microsoft Entra 测试用户
在本部分,你将通过授予 B.Simon 访问 ServiceNow 的权限,使其能够使用单一登录。
- 浏览到“标识”>“应用程序”>“企业应用程序”。
- 在应用程序列表中,选择“ServiceNow” 。
- 在应用的概述页中找到“管理”部分,然后选择“用户和组” 。
- 选择“添加用户”。 在“添加分配”对话框中选择“用户和组”。
- 在“用户和组”对话框中,从用户列表中选择“B.Simon”,然后选择“选择”。
- 如果你希望将某角色分配给用户,可以从“选择角色”下拉列表中选择该角色。 如果尚未为此应用设置任何角色,你将看到选择了“默认访问权限”角色。
- 在“添加分配”对话框中选择“分配”。
为 ServiceNow Express 配置 Microsoft Entra SSO
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”>“ServiceNow”应用程序集成页,然后选择“单一登录”。
在“选择单一登录方法”对话框中,选择“SAML/WS-Fed”模式以启用单一登录。
在“设置 SAML 单一登录”页上,选择笔形图标以打开“基本 SAML 配置”对话框。
在“基本 SAML 配置” 部分中,按照以下步骤操作:
a. 对于登录 URL,请输入以下 URL 模式之一:
登录 URL https://<instance-name>.service-now.com/login_with_sso.do?glide_sso_id=<sys_id of the sso configuration>
https://<instancename>.service-now.com/consumer.do
b. 对于“标识符(实体 ID)” ,输入使用以下模式的 URL:
https://<instance-name>.service-now.com
c. 对于“回复 URL”,请输入以下任一 URL 模式:
回复 URL https://<instancename>.service-now.com/navpage.do
https://<instancename>.service-now.com/consumer.do
d. 在“注销 URL”中,输入使用以下模式的 URL:
https://<instancename>.service-now.com/navpage.do
注意
如果在标识符值中添加了“/”,请手动将其删除。
注意
这些不是实际值。 需要使用实际的登录 URL、回复 URL、注销 URL 和标识符(稍后将在本教程中进行介绍)来更新这些值。 还可参考“基本 SAML 配置”部分中显示的模式。
在“设置 SAML 单一登录”页上的“SAML 签名证书”部分,选择“下载”以根据自己的需要从指定的选项中下载“证书(Base64)”。 然后将其保存在计算机上。
可以让 Microsoft Entra ID 自动配置 ServiceNow 以实现基于 SAML 的身份验证。 若要启用此服务,请转到“设置 ServiceNow” 部分,选择“查看分步说明” 以打开“配置登录” 窗口。
在“配置登录”窗体中输入 ServiceNow 实例名称、管理员用户名和管理员密码。 选择“立即配置” 。 为使此操作生效,提供的管理员用户名必须具有在 ServiceNow 中分配的 security_admin 角色。 否则,若要手动配置 ServiceNow 以使用 Microsoft Entra ID 作为 SAML 标识提供者,请选择“手动配置单一登录”。 从“快速参考”部分中复制“注销 URL”、“Microsoft Entra 标识符”和“登录 URL”。
配置 ServiceNow
以管理员身份登录到 ServiceNow 应用程序。
请按照以下步骤操作,激活“集成 - 多提供程序单一登录安装程序” 插件:
a. 在左窗格中,从搜索框中搜索“系统定义” 部分,然后选择“插件” 。
b. 搜索“集成 - 多提供程序单一登录安装程序”,然后安装并激活它。
在左侧窗格中,通过搜索栏搜索“多提供程序 SSO”部分,然后在“管理”中选择“属性”。
在“多提供程序 SSO 属性” 对话框中,执行以下步骤:
对于“启用多提供程序 SSO” ,选择“是” 。
对于“启用将所有标识提供者中的用户自动导入用户表”,选择“是”。
对于“为多提供程序 SSO 集成启用调试日志记录” ,选择“是” 。
对于“...用户表上的字段” ,输入“email” 。
选择“保存”。
可以自动或手动配置 ServiceNow。 若要自动配置 ServiceNow,请执行以下步骤:
返回到 ServiceNow 单一登录页。
为 ServiceNow 提供一次单击配置服务。 若要启用此服务,请转到“ServiceNow 配置”部分,选择“配置 ServiceNow”以打开“配置登录”窗口。
在“配置登录”窗体中输入 ServiceNow 实例名称、管理员用户名和管理员密码。 选择“立即配置” 。 为使此操作生效,提供的管理员用户名必须具有在 ServiceNow 中分配的 security-admin 角色。 否则,若要手动配置 ServiceNow 以使用 Microsoft Entra ID 作为 SAML 标识提供者,请选择“手动配置单一登录”。 从“快速参考”部分中复制“注销 URL”、“SAML 实体 ID”和“SAML 单一登录服务 URL” 。
以管理员身份登录到 ServiceNow 应用程序。
在自动配置中,所有必要的设置都在 ServiceNow 端进行配置,但 X.509 证书默认情况下未启用,并且“单一登录脚本”值指定为“MultiSSOv2_SAML2_custom” 。 必须手动将其映射到 ServiceNow 中的标识提供者。 执行以下步骤:
在左侧窗格中,从搜索框中搜索“多提供程序 SSO” 部分,然后选择“标识提供者” 。
选择自动生成的标识提供者。
在“标识提供者” 部分中,执行以下步骤:
a. 右键单击屏幕顶部的灰色栏,然后单击“复制 sys_id”,并将该值用于“基本 SAML 配置”部分的“登录 URL” 。
b. 对于“名称” ,为你的配置输入一个名称(例如,“Microsoft Azure Federated single sign-on” )。
c. 复制“ServiceNow 主页”值,将其粘贴到“ServiceNow 基本 SAML 配置”部分的“登录 URL”内。
注意
ServiceNow 实例主页是 ServiceNow 租户 URL 和 /navpage.do 的串联(例如:
https://fabrikam.service-now.com/navpage.do
)。d. 复制“实体 ID/颁发者”值,将其粘贴到“ServiceNow 基本 SAML 配置”部分的“标识符”内。
e. 确认将“名称 ID 策略” 设置为
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
值。f. 单击“高级”,然后将“单一登录脚本”值指定为“MultiSSOv2_SAML2_custom” 。
向下滚动到“X.509 证书” 部分,选择“编辑” 。
选择证书,然后选择右箭头图标以添加该证书
选择“保存”。
在页面右上角选择“测试连接”。
注意
如果测试连接失败并且无法激活此连接,则 ServiceNow 会提供替代开关。 你必须在“搜索导航” 中输入“Sys_properties.LIST” ,它将打开新的系统属性页。 在这里,你必须创建一个名为“glide.authenticate.multisso.test.connection.mandatory” 的新属性,其“datatype” 为“True/False” ,然后将“value” 设置为“False” 。
当系统提示你输入凭据时,请输入凭据。 然后,会看到以下页面。 会发生“SSO 注销测试结果” 错误。 忽略此错误,然后选择“激活”。
若要手动配置 ServiceNow ,请执行以下步骤:
以管理员身份登录到 ServiceNow 应用程序。
在左窗格中,选择“标识提供者” 。
在“标识提供者” 对话框中,选择“新建”。
在“标识提供者” 对话框中,选择“SAML”。
在“导入标识提供者元数据” 中,执行以下步骤:
输入复制的“应用联合元数据 URL”。
选择“导入” 。
它将读取 IdP 元数据 URL,并填充所有字段信息。
a. 右键单击屏幕顶部的灰色栏,然后单击“复制 sys_id”,并将该值用于“基本 SAML 配置”部分的“登录 URL” 。
b. 对于“名称” ,为你的配置输入一个名称(例如,“Microsoft Azure Federated single sign-on” )。
c. 复制“ServiceNow 主页” 值。 将其粘贴到“ServiceNow 基本 SAML 配置”部分的“登录 URL”内。
注意
ServiceNow 实例主页是 ServiceNow 租户 URL 和 /navpage.do 的串联(例如:
https://fabrikam.service-now.com/navpage.do
)。d. 复制“实体 ID/颁发者”值 。 将其粘贴到“ServiceNow 基本 SAML 配置”部分的“标识符”内。
e. 确认将“名称 ID 策略” 设置为
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
值。f. 选择“高级”。 在“用户字段” 中,输入“email” 。
注意
可以将 Microsoft Entra ID 配置为发出 Microsoft Entra 用户 ID (用户主体名称)或电子邮件地址作为 SAML 令牌中的唯一标识符。 若要执行此操作,请转到 Azure 门户的“ServiceNow” >“特性” >“单一登录” 部分,并将所需字段映射到“nameidentifier” 属性。 Microsoft Entra ID 中为所选属性存储的值(例如用户主体名称)必须匹配 ServiceNow 中为输入字段存储的值(例如 user_name)。
g. 选择页面右上角的“测试连接” 。
注意
如果测试连接失败并且无法激活此连接,则 ServiceNow 会提供替代开关。 你必须在“搜索导航” 中输入“Sys_properties.LIST” ,它将打开新的系统属性页。 在这里,你必须创建一个名为“glide.authenticate.multisso.test.connection.mandatory” 的新属性,其“datatype” 为“True/False” ,然后将“value” 设置为“False” 。
h. 当系统提示你输入凭据时,请输入凭据。 然后,会看到以下页面。 会发生“SSO 注销测试结果” 错误。 忽略此错误,然后选择“激活”。
创建 ServiceNow 测试用户
本部分要在 ServiceNow 中创建名为“B.Simon”的用户。 ServiceNow 支持在默认情况下启用的自动用户预配。
注意
如果需要手动创建用户,请联系 ServiceNow 客户端支持团队。
配置 ServiceNow Express SSO
以管理员身份登录到 ServiceNow Express 应用程序。
在左窗格中,选择“单一登录” 。
在“单一登录” 对话框中,选择右上角的配置图标,并设置以下属性:
a. 将“启用多提供程序 SSO” 切换到右侧。
b. 将“为多提供程序 SSO 集成启用调试日志记录” 切换到右侧。
c. 在“...用户表上的字段” 中,输入“user_name” 。
在“单一登录” 对话框中,选择“添加新证书” 。
在“X.509 证书” 对话框中,执行以下步骤:
a. 对于“名称” ,输入配置名称(例如:TestSAML2.0) 。
b. 选择“活动” 。
c. 对于“格式” ,选择“PEM” 。
d. 对于“类型” ,选择“信任存储证书” 。
e. 在记事本中打开你从 Azure 门户下载的“
Base64
编码证书”。 将其内容复制到剪贴板,然后将其粘贴到“PEM 证书” 文本框。f. 选择“更新”
在“单一登录” 对话框中,选择“添加新 IdP” 。
在“添加新的标识提供者” 对话框的“配置标识提供者” 下,执行以下步骤:
a. 对于“名称” ,输入配置名称(例如:SAML 2.0) 。
b. 对于“标识提供者 URL”,粘贴复制的标识提供者 ID 的值。
c. 对于“标识提供者的 AuthnRequest”,粘贴复制的身份验证请求 URL 的值。
d. 对于“标识提供者的 SingleLogoutRequest”,粘贴复制的注销 URL 的值。
e. 对于“标识提供者证书” ,选择在上一步已创建的证书。
选择“高级设置” 。 在“其他标识提供者属性” 下,执行以下步骤:
a. 对于“IDP 的 SingleLogoutRequest 协议绑定” ,输入“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect” 。
b. 对于“NameID 策略” ,输入“urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified” 。
c. 对于“AuthnContextClassRef 方法” ,输入
http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password
。d. 对于“创建 AuthnContextClass” ,请将其切换到“关”(未选定)。
在“其他服务提供者属性” 下,执行以下步骤:
a. 对于“ServiceNow 主页” ,输入 ServiceNow 实例主页的 URL。
注意
ServiceNow 实例主页是 ServiceNow 租户 URL 和 /navpage.do 的串联(例如:
https://fabrikam.service-now.com/navpage.do
)。b. 对于“实体 ID/颁发者” ,输入 ServiceNow 租户的 URL。
c. 对于“受众 URI” ,输入 ServiceNow 租户的 URL。
d. 对于“时钟偏差”,请输入“60” 。
e. 对于“用户字段” ,请输入“email” 。
注意
可以将 Microsoft Entra ID 配置为发出 Microsoft Entra 用户 ID (用户主体名称)或电子邮件地址作为 SAML 令牌中的唯一标识符。 若要执行此操作,请转到 Azure 门户的“ServiceNow” >“特性” >“单一登录” 部分,并将所需字段映射到“nameidentifier” 属性。 Microsoft Entra ID 中为所选属性存储的值(例如用户主体名称)必须匹配 ServiceNow 中为输入字段存储的值(例如 user_name)。
f. 选择“保存”。
测试 SSO
选择访问面板中的 ServiceNow 磁贴时,应当会自动登录到已为其设置了 SSO 的 ServiceNow。 有关访问面板的详细信息,请参阅 Introduction to the Access Panel(访问面板简介)。
测试 ServiceNow 代理(移动版)的 SSO
打开 ServiceNow 代理(移动版)应用程序并执行以下步骤:
b. 输入 ServiceNow 实例地址和别名,选择“保存并登录”。
c. 在“登录”页面上执行以下步骤:
输入“用户名” ,如 B.simon@contoso.com。
选择“使用外部登录”。 你将重定向到 Microsoft Entra ID 页进行登录。
输入凭据。 如果启用了任何第三方身份验证或任何其他安全功能,则用户必须相应地做出响应。 随后会显示应用程序“主页” 。
后续步骤
配置 ServiceNow 后,即可强制实施会话控制,从而实时保护组织的敏感数据免于外泄和渗透。 会话控制从条件访问扩展而来。 了解如何通过 Microsoft Defender for Cloud Apps 强制实施会话控制。