高级概念

Citrix Gateway SaaS 和 O365 云 Citrix 验证的参考设计

概述

软件即服务 (SaaS) 是一种软件分发模式,可以将软件作为基于 Web 的服务进行远程交付。常用的 SaaS 应用程序,包括 Microsoft Office 365 订阅。

现在可以使用 Citrix Gateway 服务使用 Citrix Workspace 访问 SaaS 应用程序。Citrix Gateway 服务与 Citrix Workspace 结合使用可为配置的 SaaS 应用程序、配置的虚拟应用程序或任何其他工作区资源提供统一的用户体验。

使用 Citrix Gateway 服务交付 SaaS 应用程序为您提供了简单、安全、强大且可扩展的解决方案来管理应用程序。云上交付的 SaaS 应用程序具有以下优势:

配置简单 - 易于操作、更新和使用。 单点登录 — 使用单点登录轻松登录。 适用于不同应用程序的标准模板 — 基于模板的流行应用程序配置。

必备条件

要在 Citrix Workspace 应用程序中配置 O365 应用程序,请确保完成以下操作:

  • 如果您在 Azure AD 中有未与其他服务联合的主域,则可以使用该域与Citrix 访问控制进行联合。确保此域(无论是父域还是子域)尚未联合身份,且其父域尚未添加到 Azure Active Directory (AAD) 中。

    例如,如果您的用户使用 user1@demo.citrix.com 登录,那么 demo.citrix.com 是主域名,citrix.com 是父域名,us.demo.citrix.com 是子域名。

  • 如果无法联合主域,请向 Azure AD 添加一个全新域并将其联合到 Citrix 访问控制。创建域并完成验证。有关详细信息,请参阅 https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/add-custom-domain

    有关为何需要联合域的详细信息,请参阅 域联合的工作原理。

  • 确保已添加的新域在 Azure AD 中处于“已验证”状态。

  • 在您的 SAML 身份提供商和 Azure AD 之间建立信任。要设置信任,您必须拥有在 AAD 中经过验证的域。当使用域在 AAD 中配置联合身份验证时,AAD 会信任 SAML 提供商对 AAD 进行用户身份验证,即使用户来自不同的域而不是联合域。在 SP 启动的流程中,当 AAD 必须确定要使用哪个 IdP 进行身份验证(将用户加速为联合 IdP)时,将使用传递给 URL https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-authentication-for-federated-users-portal 的 whr 查询参数或 domain_hint 来标识该流程。

    为新域添加联合身份验证不会影响设置中的现有联合身份验证。如果您已将 ADFS 联合到某个域,则它不会受到影响,因为您在不是已联合域的子域或父域的其他域上进行联合。

    SSO 可以有以下两个流程:

    IDP 启动的流程: 通常在你想登录 Azure AD 门户时使用。Citrix 访问控制服务将 SAML 断言发布到 Azure AD (AAD)。AAD 根据我们之前所做的联盟设置对其进行验证。如果验证通过,它将提取 SAML 的 nameid 属性。nameid 属性必须与 AAD 中存在的用户的 immutableId 匹配。

    SP 启动的流程: 通常在您想直接登陆应用程序而不是 AAD 门户时使用。在此流程中,Citrix 访问控制服务将加载在应用程序设置中配置的 URL。该 URL 转至 AAD,并且由于该 URL 具有联合域的某些指示,因此用户将通过 SAML 请求和中继状态重定向到 Citrix Gateway 服务。Citrix 访问控制服务将 SAML 断言发布到具有与请求中相同的中继状态的 AAD。验证 SAML 后,AAD 会将用户重定向到中继状态下的上下文,因此用户直接登录应用程序。

  • 在 Citrix Gateway 服务中配置 O365 应用程序。有关详细信息, 请参阅支持软件即服务应用程序

域联盟的工作原理

下图说明了域联合完成后所涉及的典型流程。

域联盟的工作原理

考虑到您希望将 Office365 应用程序添加到 Citrix Workspace 中并启用水印和限制下载。典型流程如下:

  1. 您在 Citrix Workspace 中启动 Office365 应用程序。
  2. 该请求将发送给 Citrix 访问控制服务。
  3. Citrix 访问控制服务创建 SAML 断言并将其转发给 Azure AD。
  4. 由于请求来自受信任的 SAML IdP,Azure AD 会通过创建的域联合身份验证来识别该请求,然后将 SAML 断言传递给 Office365 应用程序。

    Office365 应用程序已启动。

Office365 支持的身份验证方法

默认情况下,Citrix Cloud 使用 Citrix 身份提供程序来管理 Citrix Cloud 帐户中所有用户的身份信息。

Citrix Workspace 支持 Office365 的以下身份验证方法。目前不支持 Okta 和 Google IdP。

  • 本地 Active Directory
  • Active Directory 加令牌
  • Azure Active Directory 注意: 如果使用 AAD 向工作区进行身份验证,则无法联合主域(用户的登录域),因为这会创建循环。在这种情况下,您必须联合一个新域
  • Citrix Gateway
  • Active Directory 加 RADIUS

有关更多详细信息,请参阅 身份和访问管理

在 Citrix Gateway 服务中配置 O365 应用程序

以下是在 Citrix Gateway 服务中配置 O365 应用程序的高级步骤。有关更多详细信息,请参阅 对软件即服务应用程序的支持

  1. 转到 Citrix Cloud 中的 Citrix Gateway 服务。
  2. 添加 SaaS /Web 应用程序。
  3. 搜索 Office 365 并选择模板。
  4. 在应用程序详细信息中添加以下相关域。以下是 O365 域的列表。如果可用,则会添加新域。

    • *.office.com
    • *.office365.com
    • *.sharepoint.com
    • *.live.com
    • *.onenote.com
    • *.microsoft.com
    • *.powerbi.com
    • *.dynamics.com
    • *.microsoftstream.com
    • *.powerapps.com
    • *.yammer.com
    • *.windowsazure.com
    • *.msauth.net
    • *.msauthimages.net
    • *.msocdn.com
    • *.microsoftonline.com
    • *.windows.net
    • *.microsoftonline-p.com
    • *.akamaihd.net
    • *.sharepointonline.com
    • *.辦criptsservice.com
    • *.live.net
    • *.办公e.net
    • *.msftauth.net
  5. 如果需要,启用增强的安全控制。
  6. 配置 SSO。

    注意: 您唯一必须做的更改就是确保“名称 ID”是 Active Directory GUID。

  7. 确保高级属性还发送 IDPEmail
    • 属性名称:IDPEmail
    • 属性格式:未指定
    • 属性值:电子邮件
  8. 单击 SAML 元数据以在新选项卡中打开。
    • 复制“entityID”
    • 复制“登录 URL”
    • 下载 CRT 格式的证书

将域联合从 Azure AD 配置到 Citrix Workspace

必备条件:

  • Enable PowerShell in Azure AD
  • Install Microsoft MSOnline module

以下是安装所需模块的 PowerShell 命令。

PS> Install-Module AzureAD -Force

PS> Import-Module AzureAD -Force

PS> Install-Module MSOnline -Force

PS> Import-module MSOnline -Force

如果模块已安装,请运行以下命令。

PS> connect-msolservice

注意:需要使用 Microsoft 云帐户才能连接到 msolservice。例如:admin.user@onmicrosoft.com

将域联合从 Azure AD 配置到 Citrix Workspace 的步骤

  1. 在 PowerShell 中运行以下命令以配置联合身份验证:

    • PS> $dom = "ad-domain.com"

    注意:ad-domain.com 是添加到 Azure AD 的新域

    • PS> $IssuerUri = "https://citrix.com/[customerID]"

    注意: 可以从以下位置找到 CustomerID:

    • Citrix Cloud > 身份和访问管理 > API 访问
    • Citrix Cloud > Citrix Gateway 服务 > 添加web/SaaS应用程序 > 单点登录 > SAML 元数据文件 > entityId

    • PS> $fedBrandName = “CitrixWorkspace”
    • PS> $logoffuri = "https://app.netscalergateway.net/cgi/logout"
    • PS> $uri = "https://app.netscalergateway.net/ngs/[customerID]/saml/login?APPID=[AppID]”

    注意: $uri 可以从 Citrix Gateway 服务 > 添加 Web/SaaSapp > 单点登录 > 登录 URL 或从 SAML 元数据 > 位置复制。

    • PS> $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(“<location of certificate downloaded from Citrix Gateway service/filename.crt>”)

      例如: PS> $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("c:\cert\saml_idp.crt")

    PS> $certData = [system.convert]::tobase64string($cert.rawdata)

  2. 运行 PS 字符串以完成到 Citrix Gateway 的联合:

    PS> Set-MsolDomainAuthentication -DomainName $dom –federationBrandName $fedBrandName -Authentication Federated -PassiveLogOnUri $uri -LogOffUri $logoffuri -SigningCertificate $certData -IssuerUri $IssuerUri -PreferredAuthenticationProtocol SAMLP

  3. 通过运行以下命令验证域联合身份验证设置:

    Get-MsolDomainFederationSettings -DomainName <domain name>

联盟设置验证

在 Citrix Workspace 中配置单个 Office 套件应用

执行以下操作以配置单个办公套件应用程序:

  1. 按照前面各节中的详细说明完成域联合。
  2. 选择 O365 模板。
  3. 例如,将应用程序的名称更改为 MS Word。
  4. 将应用程序 URL 相应地更改为。

Word: https://login.microsoftonline.com/login.srf?wa=wsignin1%2E0&rver=6%2E1%2E6206%2E0&wreply=https%3A%2F%2Foffice.live.com%2Fstart%2FWord.aspx%3Fauth%3D2&whr=<federated domain>

Powerpoint: <https://login.microsoftonline.com/login.srf?wa=wsignin1%2E0&rver=6%2E1%2E6206%2E0&wreply=https%3A%2F%2Fwww.office.com%2Flaunch%2Fpowerpoint%3Fauth%3D2&whr=<federated domain>

Excel: https://login.microsoftonline.com/login.srf?wa=wsignin1%2E0&rver=6%2E1%2E6206%2E0&wreply=https%3A%2F%2Foffice.live.com%2Fstart%2FExcel.aspx%3Fauth%3D2&whr=<federated domain>

CRM/Dynamics Online: https://<tenant>.crm.dynamics.com/?whr=<federated domain>

OneDrive for Business: https://login.microsoftonline.com/login.srf?wa=wsignin1%2E0&rver=6%2E1%2E6206%2E0&wreply=https%3A%2F%2F<tenant>-my.sharepoint.com%2F&whr=<federated domain>

Outlook 日历: https://outlook.office.com/owa/?realm=<federated domain>&path=/calendar/view/Month

Outlook Web Access to Exchange Online: https://outlook.com/owa/<federated domain>

SharePoint Online: https://login.microsoftonline.com/login.srf?wa=wsignin1%2E0&rver=6%2E1%2E6206%2E0&wreply=https%3A%2F%2F<tenant>.sharepoint.com%2F&whr=<federated domain>

集成到 Azure AD 中的第三方应用程序

如果你已集成了 Box、Salesforce、ServiceNoW、Workday 等第三方应用程序,则可以从 Azure AD 获取这些应用的智能链接。

执行以下步骤。

  1. 登录到你的 Azure AD 门户 https://portal.azure.com

  2. 选择 所有服务 > Azure Active Directory,然后选择你的目录。

    选择所有服务

  3. 选择 企业应用程序,然后选择要生成智能链接的应用程序。

    选择企业应用

  4. 选择 属性 并复制用户访问 URL。

    选择属性

  5. 追加到 whr URL 后, whr 参数将显示如示例 URL 中所示。

    示例 URL: https://myapps.microsoft.com/signin/Workday/1234567891234567891234567896d64b?whr=ctxnsqa.net

    注意: 附加 whr 到 URL,以便 AAD 知道使用哪个 IdP 根据联合设置对用户进行身份验证,并自动重定向到该 IdP。

  6. 设置增强的安全控制。
  7. 配置 SSO。
    • 姓名 ID = AD GUID
    • “启用 SP 启动”复选框

      当你执行 IdP 启动的流程时,它总是会将用户放在 Azure AD 门户页面上。如果您想直接登陆应用程序页面,则需要 SP 启动的流程,因为它在 SAML 断言中发送正确的中继状态。

注意:

  • 如果用户使用 AAD 登录 Citrix Workspace,则用于登录的用户的主域不能联合到 Citrix Gateway 服务。这会导致循环。在这种情况下,请使用与登录 AAD 的用户域不同的域以联合到 Citrix Gateway 服务。

  • 如果主域已联合到 Citrix Gateway 服务,则 AAD 中该域上的所有用户登录都将重定向到 Citrix Gateway 服务。对于 POC,如果需要,您可以在联合主域之前联合测试域。
  • 如果 AAD 启用了位置策略,则用户必须仅从公司网络允许的 IP 地址列表中。在这种情况下,您可以将 O365 应用程序发布为 Web 应用程序并通过本地网关连接器路由其流量。
  • 登录 AAD 时,是否想避免 保持登录状态? 提示,您可以使用 AAD 更改此设置。请注意更改设置时出现的重要信息,必要时还原。还原设置时选择

保持登录状态消息

引用链接

Azure PowerShell 模块参考

Azure PowerShell 命令参考

在 Microsoft Azure 中部署 Office 365 目录同步

Citrix Gateway SaaS 和 O365 云 Citrix 验证的参考设计