PoC 指南:使用 Citrix Secure Private Access 权限安全访问 Office 365

概述

当用户访问 Microsoft 365 (Office 365) 中的机密内容时,组织必须能够在实施身份验证标准的同时简化用户登录操作。组织必须能够保护 Microsoft 365,即使它存在于数据中心的范围之外。Citrix Workspace 为组织提供了针对 Microsoft 365 的增强安全控制。

在这种情况下,用户使用任一 Active Directory 作为主用户目录向 Citrix Workspace 进行身份验证。

Active Directory 和 Azure SSO

如果将 Citrix Secure Private Access 服务分配给 Citrix 订阅,则在 Microsoft 365 应用程序之上应用增强的安全策略,包括应用基于屏幕的水印、限制打印/下载操作、屏幕抓取限制、键盘模糊处理以及保护用户免受不可信链接的侵害。

以下动画显示了使用 SSO 访问 Microsoft 365 并使用 Citrix Secure Private Access 进行保护的用户。

Azure SSO

此演示显示了一个 IdP 启动的 SSO 流程,用户可在其中从 Citrix Workspace 中启动应用程序。本 PoC 指南还支持 SP 发起的 SSO 流程,在该流程中,用户尝试直接从其首选浏览器访问 SaaS 应用程序。

本概念验证指南演示了如何:

  1. 设置 Citrix Workspace
  2. 集成主用户目录
  3. 为 SaaS 应用程序合并单点登录
  4. 定义网站过滤策略
  5. 验证配置

设置 Citrix Workspace

设置环境的初始步骤是让 Citrix Workspace 为组织做好准备,其中包括

  1. 设置 Workspace URL
  2. 启用适当的服务

设置 Workspace URL

  1. 连接到 Citrix Cloud 并以管理员帐户登录
  2. 在 Citrix Workspace 中,从左上角菜单访问 Workspace 配置
  3. 访问选项卡中,输入组织的唯一 URL,然后选择“已启用”

Workspace URL

启用服务

在“服务集成”选项卡中,启用以下服务以支持安全访问 SaaS 应用程序用例。

  1. Secure Private Access
  2. Remote Browser Isolation

Workspace Service

验证

Citrix Workspace 需要花费一些时间来更新服务和 URL 设置。在浏览器中,验证自定义 Workspace URL 是否处于活动状态。但是,一旦定义和配置了主用户目录,就可以登录了。

集成主用户目录

用户必须先配置 主用户目录 ,然后才能向 Workspace 进行身份验证。主用户目录是用户需要的唯一身份,因为 Workspace 中的所有应用程序请求都使用单点登录到辅助身份。

组织可以将以下任何一个主用户目录与 Microsoft 365 结合使用:

  • Active Directory:要启用 Active Directory 身份验证,必须按照Cloud Connector 器 安装指南将云连接 器部署在与 Active Directory 域控制器相同的数据中心内。
  • 使用基于时间的一次性密码的 Active Directory:基于 Active Directory 的身份验证还可以包括使用基于时间的一次性密码 (TOTP) 的多因素身份验证。本 指南 详细介绍了启用此身份验证选项所需的步骤。
  • Azure Active Directory:用户可以使用 Azure Active Directory 身份对 Citrix Workspace 进行身份验证。本 指南 详细介绍了启用此身份验证选项所需的步骤。

    注意

    使用 AAD 作为主身份验证目录时,您无法联合主域(用户的登录域),因为这会造成循环。在此类情况下,您必须联合一个新域

    AAD 用户帐户必须设置属性 immutableID;否则,身份验证失败并显示错误消息: AADSTS51004
    Azure AD Connect 同步的帐户自动设置此属性。

  • Citrix Gateway:组织可以使用本地 Citrix Gateway 充当 Citrix Workspace 的身份提供商。本 指南 提供了有关集成的详细信息。
  • Okta:组织可以将 Okta 用作 Citrix Workspace 的主用户目录。本 指南 提供了配置此选项的说明。

将 Azure 身份验证联合到 Citrix Workspace

要成功地将 Microsoft 365 与 Citrix Workspace 联合起来,管理员需要执行以下操作:

  • 配置 SaaS 应用程序
  • 授权 SaaS 应用程序
  • 验证身份验证域
  • 配置域联合

配置 SaaS 应用程序

在 Azure 中验证域后,可以在 Citrix Workspace 中配置Microsoft 365 SaaS 应用程序。

  • 在 Citrix Cloud 中,从“Secure Private Access”磁贴中选择“管理”。

设置 SaaS 应用程序 01

  • 在“Secure Private Access”菜单中,选择“应用程序
  • 在应用程序部分中,选择 添加应用程序

应用程序-模板

  • 在“选择模板”向导中,选择 Office365

设置 SaaS 应用程序 02

  • 单击 Next(下一步)

应用程序-应用程序详情

  • 应用程序详细信息部分中,根据需要更改名称图标说明,同时保持所有剩余条目不变。

设置 SaaS 应用程序 03

*注意:您也可以通过部署在数据中心的连接器设备路由流量。因此,您需要从“我的公司网络外部”切换到“我的公司网络内部”。*

  • 选择 下一步

应用程序-单点登录

  • 在“单点登录”窗口中,验证名称 ID 格式=Persistent名称 ID=Active Directory GUID (1)
  • 在“高级属性”下,验证属性名称=IDPEmail属性格式=未指定属性值=电子邮件 (2)

注意

当用户在 Citrix Workspace 进行用户身份验证期间已经输入 MFA 时,会自动添加第二个“高级”属性选项以抑制 MFA 身份验证请求。

属性名称: http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod
属性格式: Unspecified
属性值: Custom value
自定义值: http://schemas.microsoft.com/claims/multipleauthn

要让 Azure AD 接受此声明,我们必须在设置域联合时添加参数 -SupportsMfa $true

有两种方法可以继续,手动或自动域联合配置。
如果要使用自动流程 (PowerShell 脚本),请转到 自动域联合配置部分。

手动域联合配置
  • 选择“下载”以获取 基于 CRT 的 证书。(3)
  • 登录 URL旁边,选择 复制 按钮以捕获登录 URL。这个 URL 稍后会被使用。(4)
  • 选择 SAML 元数据 链接 (5)

设置 SaaS 应用程序 05

  • 在 SAML 元数据文件中,查找 EntityID。请复制整个 URL 并将其存储以备日后使用。捕获后,可以关闭 SAML 元数据文件。

设置 SaaS 应用程序 06

自动域联合配置
  • 选择“登录 Azure AD”,将打开一个新选项卡,您将被定向到 Azure AD 门户进行身份验证。(3)
  • 指定分配了“全局管理员”权限的用户帐户。
  • 如果登录成功,您应该会看到以下消息

设置 SaaS 应用程序 08

  • 默认情况下,选择最终用户 MFA 选项处于启用状态。
  • 单击此处检索 Azure AD 域 以查看所有域的列表。(4)
  • 从下拉列表中选择要联合的域名。(5)
  • 单击 联合域名 (6)

设置 SaaS 应用程序 09

注意

  • 当您单击“联合域”时,PowerShell 脚本在后端运行,并且该域是联合域。
  • 如有必要,请从界面下载 PowerShell 脚本。在 域联合 PowerShell 脚本中,输入 Azure AD 域 (7),然后单击下载 (8)。
  • 选择 下一步

应用程序-应用程序连接

  • 在“应用程序连接”窗口中,验证流量应如何路由(在本例中为直接从客户端路由到 SaaS 应用程序)

设置 SaaS 应用程序 07

  • 选择 下一步
  • 选择“完成”以完成 Microsoft Office 365 SaaS 应用程序的配置。

授权 SaaS 应用程序并配置增强的安全性

  • 在“Secure Private Access”菜单中,选择“访问策略
  • 在“访问策略”部分中,选择“创建策略

授权 SaaS 应用程序 01

  • 输入 策略名称 和简短的 策略描述
  • 在“应用程序”下拉列表中,搜索“Humanity”并将其选中。

注意

您可以创建多个访问规则,并在单个策略中为不同的用户或用户组配置不同的访问条件。这些规则可以分别应用于 HTTP/HTTPS 和 TCP/UDP 应用程序,全部应用于单个策略。 有关多重访问规则的更多信息,请参阅 使用多条规则配置访问策略

  • 单击“创建规则”为策略创建规则。

授权 SaaS 应用程序 02

  • 输入规则名称和规则的简要描述,然后单击“下一步”。

授权 SaaS 应用程序 03

  • 添加有权启动应用程序的相应用户/组,然后单击“下一步”。

注意

单击 + 可根据上下文添加多个条件。

授权 SaaS 应用程序 04

  • 指定是否可以不受限制地访问 HTTP/HTTPS 应用程序。
    之前的屏幕截图没有配置任何限制。
    如果需要增强安全性,请将“允许访问”更改为“允许有限制访问”。
  • 指定 TCP/UDP 应用程序操作。
    前面的屏幕截图拒绝访问 TCP/UDP 应用程序。
  • 单击下一步

授权 SaaS 应用程序 05

  • 摘要页面显示策略规则的详细信息。
    验证详细信息,然后单击“完成”。

授权 SaaS 应用程序 06

  • 在“创建策略”对话框中,确认已选中“保存时启用策略”,然后单击“保存”。

*注意:对于初始 SSO 测试,最好通过设置“在远程浏览器中打开”选项来配置增强的安全性。*

验证身份验证域

Azure 必须验证完全限定的域名,才能将身份验证联合到 Citrix Workspace。在 Azure 门户中,执行以下操作:

  • 访问 Azure Active Directory
  • 在导航窗口中选择 自定义域名
  • 选择 添加自定义域
  • 输入完全限定的域名

域名验证 01

  • 选择 添加域
  • Azure 提供了要纳入域名注册商的记录。完成后,选择 验证

域名验证 02

  • 完成后,域名将包含经过验证的标记

域名验证 03

配置域联合

注意

如果使用了自动域联合配置,则可以跳过此部分。
前往验证部分。

最终配置是让 Azure 使用 Citrix Workspace 作为已验证域的联合权威机构。必须使用 PowerShell 来配置联合身份验证。

  • 启动 PowerShell
  • 使用以下命令添加适当的模块
Install-Module AzureAD -Force
Import-Module AzureAD -Force
Install-Module MSOnline -Force
Import-module MSOnline -Force
<!--NeedCopy-->
  • 通过 PowerShell 连接到 Microsoft Online 并使用 Microsoft 云帐户进行身份验证(例如,admin.user@onmicrosoft.com
Connect-MSOLService
<!--NeedCopy-->
  • 运行以下 PowerShell 命令,验证该域当前是否设置为 Azure 内管理
Get-MsolDomain
<!--NeedCopy-->

域名联盟 01

  • 在 PowerShell 脚本中使用以下代码,通过更改变量以与您的环境保持一致,使此域 联合
 $dom = "workspaces.wwco.net" # The fully qualified domain name verified within Azure
 $fedBrandName = "CitrixWorkspaceSAMLIdP" # A name to help remember the configuration purpose
 $uri = "https://app.netscalergateway.net/ngs/[entityID]/saml/login?APPID=[APPID]" # The Login URL from the Office365 app configuration
 $logoffuri = "https://app.netscalergateway.net/cgi/logout" # Standard entry for all. Do not change
 $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("<location of certificate downloaded from Citrix Secure Private Access service/filename.crt>") # Path to the downloaded certificate file from Office 365 app configuration (e.g., C:\temp\filename.crt)
 $certData = [system.convert]::tobase64string($cert.rawdata)
 $IssuerUri = "https://citrix.com/[entityID]" # The entityID taken from the Office365 app configuration SAML Metadata file

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

To suppress an MFA authentication request when the user has already entered the MFA during user authentication to Citrix Workspace, use the following command:

 Set-MsolDomainAuthentication `
     -DomainName $dom `
     –federationBrandName $fedBrandName `
     -Authentication Federated `
     -PassiveLogOnUri $uri `
     -LogOffUri $logoffuri `
     -SigningCertificate $certData `
     -IssuerUri $IssuerUri `
     -PreferredAuthenticationProtocol SAMLP `
     -SupportsMfa $true
<!--NeedCopy-->
  • 运行以下 PowerShell 命令,验证当前在 Azure 中将该域设置为联合
Get-MsolDomain
<!--NeedCopy-->

域名联合 02

  • 通过运行以下 PowerShell 命令验证 Azure 中的联合身份验证设置
Get-MsolDomainFederationSettings -DomainName $dom
<!--NeedCopy-->

域名联合 03

注意

如果需要删除联合设置,请运行以下 PowerShell 命令:
Set-MsolDomainAuthentication -DomainName $dom -Authentication Managed

验证

IdP 发起的验证

  • 以用户身份登录 Citrix Workspace
  • 选择 Office 365 应用程序
  • 观察 URL 以通过 Azure 进行简短的重定向
  • Office 365 门户成功启动

SP 发起的验证

  • 启动浏览器
  • 转到公司定义的 SaaS 应用程序的 URL
  • 浏览器重定向到 Azure Active Directory,然后重定向到 Citrix Workspace 进行身份验证
  • 用户通过主用户目录进行身份验证后,SaaS 应用程序将启动,Citrix 提供单点登录

定义未经批准的 Web 站点

未经批准的 Web 站点是指未在 Secure Private Access 配置中配置但可以从 Citrix Enterprise Browser 访问的应用程序。您可以为这些未经批准的 Web 站点配置规则。例如,SaaS 应用程序中的链接可能指向恶意网站。通过这些规则,管理员可以获取特定的 Web 站点 URL 或 Web 站点类别并允许访问、阻止访问或将请求重定向到托管的安全浏览器实例,从而帮助防止基于浏览器的攻击。

  • 在 Citrix Cloud 中,在 Secure Private Access 磁贴中进行管理

Citrix Secure Private Access 1

  • 如果遵循本指南,则设置最终用户身份验证步骤配置最终用户对 SaaS、Web 和虚拟应用程序的访问权限步骤即已完成。
  • 在“Secure Private Access”菜单中,选择“设置
  • 切换到未经批准的 Web 站点选项卡
  • 选择编辑
  • 启用筛选网站列表”选项

Citrix Secure Private Access 2

  • 单击相应部分中的“添加”以屏蔽网站、允许网站或将用户重定向到安全浏览器(远程浏览器隔离)
  • 例如,要在“屏蔽类别”部分中屏蔽网站,请单击“添加
  • 输入用户无法访问的网站,然后单击“添加
  • 单击“保存”使更改生效

验证配置

IdP 发起的验证

  • 以用户身份登录 Citrix Workspace
  • 选择 Office 365。
    如果禁用增强安全性,则应用程序将在本地浏览器中启动。否则,将使用企业浏览器。
  • 用户自动登录应用
  • 应用适当的增强安全策略
  • 如果已配置,请在 SaaS 应用程序中选择被阻止、允许和重定向类别中的 URL
  • 如果已配置,请在 SaaS 应用程序中选择阻止、允许和重定向的 URL 中的 URL
  • SaaS 应用程序成功启动

SP 发起的验证

  • 启动浏览器
  • 转到 Office 365 网站并选择 登录
  • 输入用户名
  • 浏览器将浏览器重定向到 Citrix Workspace 进行身份验证
  • 用户使用主用户目录进行身份验证后,如果禁用了增强安全性,Office 365 将在本地浏览器中启动。
    如果启用了增强安全,Secure Browser 实例将启动 Office 365。

Microsoft 365 相关域

在 Citrix Secure Private 服务中创建应用程序时,相关的域字段可用。增强的安全策略使用这些相关的域来确定何时执行该策略。

以下列表显示了当前与 Microsoft 365 应用程序相关的域。

注意: 这些域名可以随时更改

  • *.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

Microsoft 365 应用程序

假设最好启动特定的 Microsoft 365 应用程序(Word、PowerPoint 或 Excel),而不是 Microsoft 365 门户。在这种情况下,管理员必须在 Citrix Secure Private Access 服务中为每个应用程序创建一个单独的应用程序实例。每个应用程序都有唯一的 URL,其中必须包含本指南中配置的联合域的正确值。联合域条目通知 Azure 重定向到正确的联合域配置。

*注意:IdP 启动的流量不支持中继状态。使用 SP 启动的流程直接登录应用程序。*

  • 词: 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=联邦域
  • 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=联合域
  • 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=联合域
  • CRM/Dynamics Online: https://<tenant>.crm.dynamics.com/?whr=联合域
  • 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=联合域
  • Outlook 日历: https://outlook.office.com/owa/?realm=联合域&path=/calendar/view/Month
  • Outlook Web Access 到 Exchange Online: https://outlook.com/owa/联合域
  • 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=联合域
  • Microsoft 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=联合域

保持登录

在默认配置中,Azure Active Directory 会在登录过程中显示一个对话框,允许用户保持登录状态。

持续登录 01

这是 Azure 设置,可以通过执行以下操作轻松更改:

  • 在 Azure 中,选择 Azure Active Directory
  • 选择 公司品牌
  • 选择已启用的语言环境
  • 在“编辑公司品牌”窗格中,在显示选项中选择以保持登录状态

持续登录 01

  • 选择 保存

故障排除

目录中不存在用户帐户

尝试启动 Microsoft 365 时,用户可能会收到以下错误:
AADSTS51004: The user account "account name" does not exist in the "GUID" directory. To sign into this application, the account must be added to the directory.

用户帐户故障排除 01

以下是关于如何解决此问题的建议:

  • 确认用户已获得在 Microsoft 365 管理员控制台中使用 Microsoft 365 的许可
  • 验证错误中识别的电子邮件地址是否与主用户目录、Azure Active Directory 和 Microsoft 365 相匹配。
  • 验证属性 immutableId 是否已在用户对象上设置。 (在纯 AAD 环境中情况并非如此!)
    immutableId 可以使用以下 PowerShell 命令轻松计算和设置:

     $userUPN="john.doh@company.com"  #change the userPricipalName before executing
     Install-Module AzureAD -Force
     Import-Module AzureAD -Force
     Install-Module MSOnline -Force
     Import-module MSOnline -Force
     Connect-MsolService
     $userObjectID=(Get-MsolUser -UserPrincipalName $userUPN).objectId
     $userImmutableId=[System.Convert]::ToBase64String([System.Guid]::New($userObjectID).ToByteArray())
     Set-MsolUser -UserPrincipalName $userUPN -ImmutableId $userImmutableId
     <!--NeedCopy-->
    

联邦领域对象

在验证期间,用户可能会收到以下错误:
AADSTS50107: The requested federation realm object 'https://<ADFShostname>/adfs/services/trust' does not exist.

联邦领域故障排除 01

这通常是由于域未经验证或正确联合而导致的。查看 PoC 指南的以下部分:

增强的安全策略失败

用户可能会遇到增强安全策略(水印、打印或剪贴板访问)失败。通常,发生这种情况是因为 SaaS 应用程序使用多个域名。在 SaaS 应用程序的应用程序配置设置中,有一个 相关域的条目。

设置 SaaS 应用程序 02

增强的安全策略应用于那些相关的域。本 PoC 指南的 Microsoft 365 相关域 部分包含初始的相关域集,Microsoft 可以随时更改这些域。

如果增强的安全策略无法在某些应用程序分区中发挥作用,则仍需要添加相关域。要识别缺少的域名,管理员可以使用本地浏览器访问 SaaS 应用程序,然后执行以下操作:

  • 导航到策略失败的应用程序部分
  • 在 Google Chrome 和 Microsoft Edge(Chromium 版)中,选择浏览器右上角的三个点以显示菜单屏幕。
  • 选择“更多工具”。
  • 选择 开发者工具
  • 在开发人员工具中,选择“来源”。这提供了该应用程序部分的访问域名列表。要为应用程序的这一部分启用增强安全策略,必须将这些域名输入到应用程序配置的 相关域 字段中。添加相关域名,例如下面的 *.domain.com

增强安全故障排除 01

PoC 指南:使用 Citrix Secure Private Access 权限安全访问 Office 365