配置 Microsoft Entra ID 以进行 SAML 身份验证

Last published : Nov 13, 2026
本文介绍如何将 Microsoft Entra ID 配置为 StoreFront 的 SAML 身份提供程序。
有关常规 SAML 配置信息,请参阅 SAML 身份验证。

先决条件

  • 用户必须具有混合身份。本地 Active Directory UPN 必须同步到 Entra ID(同步到 Entra ID UPN 或本地 UPN 属性)。
  • StoreFront 必须通过 HTTPS 和有效证书进行访问。
  • 您必须拥有 Entra ID 租户的管理员访问权限。

创建企业应用程序

  1. 导航到 标识 > 应用程序 > 企业应用程序。
  2. 单击 新建应用程序。
  3. 单击 创建自己的应用程序。
  4. 输入名称,例如 Citrix StoreFront。
  5. 选择 集成在库中找不到的任何其他应用程序(非库)。
  6. 单击“创建”。

配置企业应用程序以进行 SAML 身份验证

  1. 在您创建的企业应用程序中,导航到 Manage > Single sign-on。
  2. 选择 SAML 作为单一登录方法。
  3. 在“基本 SAML 配置”部分中,单击“编辑”。
  4. 配置以下值:
    • 标识符(实体 ID):https://[storefront-host]/Citrix/[StoreName]Auth
    • 回复 URL(断言使用者服务 URL):https://[storefront-host]/Citrix/[StoreName]Auth/SamlForms/AssertionConsumerService
    将 [storefront-host] 替换为 StoreFront 服务器的完全限定域名,将 [StoreName] 替换为您的商店名称(例如,Store)。
    提示
    要查找商店的确切 URL,请参阅StoreFront SAML 端点。
  5. 单击 保存。

配置属性和声明

StoreFront 需要 SAML 名称 ID 声明中的用户 Active Directory UPN 来查找用户。

如果本地 UPN 与 Entra ID UPN 匹配

  1. 在“属性和声明”部分中,单击“编辑”。
  2. 单击“唯一用户标识符(名称 ID)”声明。
  3. 如果 Active Directory UPN 与 Entra ID UPN 相同,请确认源属性设置为 user.userprincipalname。如果 Active Directory UPN 与 Entra ID UPN 不同,请将源属性更改为 user.onpremisesuserprincipalname。
  4. 单击 保存。

如果本地 UPN 与 Entra ID UPN 不同

当用户在 Active Directory 和 Entra ID 中具有不同的 UPN 时,必须将名称 ID 配置为使用本地 UPN。
  1. 在“属性和声明”部分中,单击“编辑”。
  2. 单击“唯一用户标识符 (名称 ID)”声明。
  3. 将“源属性”更改为 user.onpremisesuserprincipalname。
  4. 单击 保存。
  5. 单击“添加新声明”。
  6. 使用以下值配置声明:
    • 名称:sso_upn
    • “源”:属性
    • “源属性”:user.userprincipalname
  7. 单击 保存。
    重要
    在名称 ID 声明中发送的 UPN 必须与 Active Directory 中用户的 UPN 匹配。StoreFront 会在 Active Directory 中查找此 UPN 以对用户进行身份验证。sso_upn 声明允许您指定用于对已加入 Entra 的 VDA 进行 SSO 的 Entra UPN。

分配用户

  1. 导航到“管理”>“用户和组”。
  2. 单击“添加用户/组”。
  3. 选择需要访问 StoreFront 的用户或组。
  4. 单击“分配”。

配置 StoreFront

您可以将 StoreFront 配置为使用 Entra ID 作为身份提供程序,方法是使用元数据交换或手动配置。

选项 1: 元数据交换(推荐)

  1. 在 Entra ID 企业应用程序中,导航到 管理 > 单一登录。
  2. 在 SAML 证书 部分,复制 应用程序联合元数据 URL。
  3. 在 StoreFront 服务器上,以管理员身份打开 PowerShell 并运行:
    Get-Module "Citrix.StoreFront*" -ListAvailable | Import-Module

    $StoreVirtualPath = "/Citrix/Store"
    $store = Get-STFStoreService -VirtualPath $StoreVirtualPath
    $auth = Get-STFAuthenticationService -StoreService $store

    Update-STFSamlIdPFromMetadata -AuthenticationService $auth -Url "https://login.microsoftonline.com/[tenant-id]/federationmetadata/2007-06/federationmetadata.xml"
    将 [tenant-id] 替换为您的 Entra ID 租户 ID,或使用您复制的应用程序联合元数据 URL。

选项 2: 手动配置

  1. 在 Entra ID 企业应用程序中,导航到 管理 > 单一登录。
  2. 记下 设置 部分中的 登录 URL。
  3. 从 SAML 证书 部分下载 证书 (Base64)。
  4. 在 StoreFront 服务器上,导入证书并配置身份提供程序。请参阅配置身份提供程序。

测试配置

  1. 导航到 https://[storefront-host]/Citrix/[StoreName]Auth/SamlTest
  2. 您将被重定向到 Entra ID 登录页面。使用满足以下条件的用户帐户登录:
    • 已分配给企业应用程序
    • 具有从 Active Directory 同步的 UPN 的混合身份
  3. 成功身份验证后,您将被重定向回显示身份声明的测试页面。
  4. 验证 NameID 声明是否包含用户的 Active Directory UPN。

故障排除

认证失败,显示“用户未找到”

当 StoreFront 无法在 Active Directory 中找到用户时,会出现此错误。请验证以下内容:
  • 用户具有混合身份,其 UPN 已从 Active Directory 同步到 Entra ID。
  • “名称 ID”声明配置正确:
    • 如果本地 UPN 与 Entra ID UPN 匹配:名称 ID 应使用 user.userprincipalname
    • 如果本地 UPN 与 Entra ID UPN 不同:名称 ID 应使用 user.onpremisesuserprincipalname
  • StoreFront 服务器可以与域控制器通信。

重定向循环

如果用户遇到 StoreFront 和 Entra ID 之间的重定向循环:
  • 验证 Entra ID 中的“回复 URL”是否与断言消费者服务 URL 完全匹配。
  • 检查商店上是否启用了冲突的身份验证方法。
  • 查看 StoreFront 服务器上的 IIS 日志以获取错误详细信息。

证书错误

如果您看到证书验证错误:
  • 验证来自 Entra ID 的签名证书是否已正确导入到 StoreFront 中。
  • 检查证书是否未过期。
  • 确保 StoreFront 服务器信任该证书。