Citrix Secure Private Access

配置 O365

必备条件

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

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

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

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

    或者

    您可以向 Azure AD 添加一个子域,该子域可用于联合到 Citrix Secure Private Access 以进行 SSO。为此,您必须将子域名添加并提升为根域。有关详细信息,请参阅 https://docs.microsoft.com/en-us/azure/active-directory/enterprise-users/domains-verify-custom-subdomain

    注意: 您可能需要使用 Azure AD Graph Explorer 而不是 Microsoft Graph Explorer 来进行 POST 请求才能将子域更改为根域。

    有关为何需要联合域的详细信息,请参阅 域联合如何运作

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

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

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

    SSO 可以有以下两个流程:

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

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

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

域联盟的工作原理

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

域联盟的工作原理

考虑一下您想将 Office365 应用程序添加到 Citrix Workspace 中,然后启用水印并限制下载。典型流程如下:

  1. 您在 Citrix Workspace 中启动 Office365 应用程序。
  2. 该请求将转到 Citrix Secure Private Access 服务。
  3. Citrix Secure Private Access 服务创建 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 Secure Private Access
  • Active Directory 加 RADIUS

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

在 Secure Private Access 服务中配置 O365 应用程序

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

  1. 转到 Citrix Cloud 中的 Secure Private Access 服务。
  2. 搜索 Office 365 并选择模板。有关详细信息,请参阅支持软件即服务应用程序
  3. 在应用程序详细信息中添加以下相关域。以下是 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
    • *.officescriptsservice.com
    • *.live.net
    • *.office.net
    • *.msftauth.net
  4. 如果需要,启用增强的安全控制。
  5. 配置 SSO。

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

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

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

必备条件:

  • 在 Azure AD 中启用 PowerShell
  • 安装 Microsoft MSOnline 模块

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

`PS> Install-Module AzureAD -Force`

`PS> Import-Module AzureAD -Force`

`PS> Install-Module MSOnline -Force`

`PS> Import-module MSOnline -Force`
<!--NeedCopy-->

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

PS> connect-msolservice
<!--NeedCopy-->

注意:需要使用 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 Secure Private Access。 可以在应用程序配置详细信息(单点登录 > SAML 元数据文件 > entityID)中找到客户 ID。

    • 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 Secure Private Access 服务 > 添加 Web/SaaS 应用程序 > 单点登录 > 登录 URL 或从 SAML 元数据 > 位置复制。

    • PS> $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(“<location of certificate downloaded from Citrix Secure Private Access 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 Secure Private Access 的联合:

    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>

联盟设置验证

从 Azure AD 到 Citrix Workspace 的自动域联合

在从 Azure AD 到 Citrix Workspace 的手动 域联合中,如配置从 Azure AD 到 Citrix Workspace 的域联合部分所述,用户必须在云门户和 PowerShell 之间切换才能复制数据和运行脚本。例如;

  • 从云门户复制数据,例如客户 ID 和应用程序 ID。
  • 从云门户下载证书。
  • 运行 PowerShell 脚本。

此手动复制粘贴操作可能会引入错误,因此联合可能无法成功。

现在,联合域的步骤已集成到 Citrix 安全专用服务用户界面中,从而实现了联合过程的自动化。当用户单击界面中的相应链接时,PowerShell 脚本将在后端运行。用户不必在云门户和 PowerShell 之间切换。

自动联合域的步骤

  1. 配置 O365 应用程序。有关详细信息,请参阅在 Secure Private Access 服务中配置 O365 应用程序
  2. 在单点登录中,选择 SAML

    用户界面中的域联合

  3. 使用您的凭据登录到 Azure AD。 单击“登录到 Azure AD”时,系统会将您定向到 Azure AD 登录门户进行身份验证。
    • OAuth 协议用于身份验证。身份验证成功后,您必须同意联合域。
    • 默认情况下,选择最终用户 MFA 选项处于启用状态。
  4. 单击单击此处以检索 Azure AD 域以查看所有域的列表。
  5. 选择要联合的域,然后单击 联合域

    注意:

    • 单击联合域时,PowerShell 脚本将在后端运行,域是联合的。
    • 如有必要,您还可以从界面下载 PowerShell 脚本。在 域联合 PowerShell 脚本中,单击 下载

禁止多因素身份验证 (MFA)

O365 应用程序的高级属性中添加了一个选项,当用户在对 Citrix Workspace 进行身份验证期间已输入 MFA 时,该选项将禁止 MFA。

  • 属性名称:http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod“,
  • 属性值:http://schemas.microsoft.com/claims/multipleauthn

为了使 AAD 接受此声明,请使用以下 PowerShell 命令进行联合:

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

注意:

IdP 启动的流程不支持中继状态。使用 SP 启动的流程直接登陆应用程序。

在 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%2Fwww.office.com%2Flaunch%2FWord%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%2Fwww.office.com%2Flaunch%2FExcel%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>

Teams: https://login.microsoftonline.com/common/oauth2/authorize?client_id=cc15fd57-2c6c-4117-a88c-83b1d56b4bbe&response_mode=form_post&response_type=code+id_token&scope=openid+profile&redirect_uri=https%3a%2f%2fteams.microsoft.com%2f&domain_hint=<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 启动”复选框
    • 断言 URL = 登录 URL

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

注意:

  • 启用主域联合后,所有 AAD 用户在对任何 Office 365 应用程序进行身份验证时都将被重定向到 Citrix Workspace。如果在不了解影响的情况下这样做,可能会导致客户停机/事故。
  • 如果用户使用 AAD 登录 Citrix Workspace,则用于登录的用户的主域不能联合到 Citrix Gateway 服务。这会导致循环。在这种情况下,请使用与登录 AAD 的用户域不同的另一个域联合到 Citrix Secure Private Access 服务。

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

保持登录状态消息

引用链接

Azure PowerShell 模块参考

Azure PowerShell 命令参考

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