PoC 指南:安全访问 Azure 托管的 SaaS 应用程序和 Citrix Secure Private Access

概述

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

在这种情况下,用户使用 Active Directory 作为主用户目录向 Citrix Workspace 进行身份验证,然后启动由 Azure 管理的 SaaS 应用程序。

Active Directory 和 Azure SSO

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

以下动画显示了用户使用 Azure 提供的 SSO 访问 SaaS 应用程序并使用 Citrix Secure Private Access 进行保护。

Azure SSO

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

假设:

  • Azure 已配置为向 SaaS 应用程序提供 SSO
  • 用户可以成功登录 Azure 应用门户并启动 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 中的所有应用程序请求都使用单点登录到辅助身份。

组织可以使用以下任一主用户目录:

  • 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 的主用户目录。本 指南 提供了配置此选项的说明。

创建 SaaS 应用程序

要使用 Citrix Workspace 成功创建 SaaS,管理员需要执行以下操作:

  • 配置 SaaS 应用程序
  • 授权 SaaS 应用

配置 SaaS 应用程序

使用 Azure 中配置的 SaaS 应用程序,SaaS 应用程序可以在 Citrix Workspace 中进行配置。

  • 在 Azure 中,选择 Azure Active Directory
  • 选择 企业应用

设置 SaaS 应用程序 01

  • 在列表中,选择 SaaS 应用程序,这将显示应用程序概述
  • 选择 属性

设置 SaaS 应用程序 02

  • 复制用 户访问 URL 并记住以备以后使用
  • 在 Citrix Cloud 中,从“Secure Private Access”磁贴中选择“管理”。

设置 SaaS 应用程序 03

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

应用程序-模板

  • 在选择模板向导中,找到正确的模板。在此示例中,选择 人类

设置 SaaS 应用程序 04

  • 选择 下一步

应用程序-应用程序详情

  • 应用程序详细信息 屏幕中,将 URL 替换为从 Azure 复制的 用户访问 URL
  • URL 的末尾,添加以下内容:&whr=federated_domainfederated_domain 替换为与用户身份相关的域(用户电子邮件中 @ 登录后的信息)。联合域条目通知 Azure 重定向到正确的联合域配置。联合域信息将在即将到来的部分在 Azure 中进行配置。

设置 SaaS 应用程序 05

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

  • 选择 下一步

应用程序-单点登录

  • 在“单点登录”窗口中,将“断言 URL”设置为 https://login.microsoftonline.com/login.srf (1)
  • 受众设置为 urn:federation:MicrosoftOnline (2)
  • 验证名称 ID 格式=Persistent名称 ID=Active Directory GUID (3)
  • 选中标有使用指定 URL 启动应用程序(SP 已启动)的复选框。(4)
    通过身份验证后,用户将自动重定向到 SaaS 应用程序而非 Azure 应用程序门户。
  • 在“高级属性”下,验证属性名称=IDPEmail属性格式=未指定属性值=电子邮件 (5)

注意

当用户在 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

*注意: 步骤 (6)、(7) 和 (8) 只需要在第一个应用程序中完成。*

  • 选择“下载”以获取 基于 CRT 的 证书。(6)
  • 登录 URL旁边,选择 复制 按钮以捕获登录 URL。此 URL 稍后会被使用。(7)
  • 选择 SAML 元数据 链接 (8)

设置 SaaS 应用程序 06

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

设置 SaaS 应用程序 07

  • 选择 下一步

应用程序-应用程序连接

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

设置 SaaS 应用程序 08

  • 选择 下一步
  • 选择“完成”以完成 Humanity 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

要成功地将 SaaS 应用程序与 Citrix Workspace 联合起来,管理员需要执行以下操作:

  • 验证身份验证域
  • 配置域联合

验证身份验证域

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 Humanity 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 Humanity 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
  • 选择 SaaS 应用程序
  • 观察 URL 以通过 Azure 进行简短的重定向
  • SaaS 门户成功启动

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
  • 选择 SaaS 应用程序。
    如果禁用增强安全性,则应用程序将在本地浏览器中启动。否则,将使用企业浏览器。
  • 用户自动登录应用
  • 应用适当的增强安全策略
  • 如果已配置,请在 SaaS 应用程序中选择阻止、允许和重定向的 URL 中的 URL
  • SaaS 应用程序成功启动

SP 发起的验证

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

保持登录

在默认配置中,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

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

  • 验证用户是否有权在 Azure Active Directory 中使用 SaaS 应用程序
  • 验证错误中识别的电子邮件地址是否与主用户目录、Azure Active Directory 和 SaaS 应用程序相匹配。
  • 验证属性 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

增强的安全策略应用于那些相关的域。要识别缺少的域名,管理员可以使用本地浏览器访问 SaaS 应用程序,然后执行以下操作:

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

增强安全故障排除 01

PoC 指南:安全访问 Azure 托管的 SaaS 应用程序和 Citrix Secure Private Access