PoC 指南:使用 Citrix Secure Private Access 权限安全访问 Office 365
概述
当用户访问 Microsoft 365 (Office 365) 中的机密内容时,组织必须能够在实施身份验证标准的同时简化用户登录操作。组织必须能够保护 Microsoft 365,即使它存在于数据中心的范围之外。Citrix Workspace 为组织提供了针对 Microsoft 365 的增强安全控制。
在这种情况下,用户使用任一 Active Directory 作为主用户目录向 Citrix Workspace 进行身份验证。
如果将 Citrix Secure Private Access 服务分配给 Citrix 订阅,则在 Microsoft 365 应用程序之上应用增强的安全策略,包括应用基于屏幕的水印、限制打印/下载操作、屏幕抓取限制、键盘模糊处理以及保护用户免受不可信链接的侵害。
以下动画显示了使用 SSO 访问 Microsoft 365 并使用 Citrix Secure Private Access 进行保护的用户。
此演示显示了一个IdP启动的SSO流程,用户可在其中从Citrix工作区中启动应用程序。本 PoC 指南还支持 SP 发起的 SSO 流程,在该流程中,用户尝试直接从其首选浏览器访问 SaaS 应用程序。
本概念验证指南演示了如何:
- 设置 Citrix Workspace
- 集成主用户目录
- 为 SaaS 应用程序合并单点登录
- 定义网站过滤策略
- 验证配置
设置 Citrix Workspace
设置环境的初始步骤是让 Citrix Workspace 为组织做好准备,其中包括
- 设置 Workspace URL
- 启用适当的服务
设置 Workspace URL
- 连接到Citrix Cloud并以管理员帐户登录
- 在 Citrix Workspace 中,从左上角菜单访问Workspace 配置
- 在访问选项卡中,输入组织的唯一 URL,然后选择“已启用”
启用服务
在“服务集成”选项卡中,启用以下服务以支持安全访问 SaaS 应用程序用例。
- Secure Private Access
- Secure Browser
验证
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”磁贴中选择“管理”。
- 在“Secure Private Access”菜单中,选择“应用程序”
- 在应用程序部分中,选择添加应用程序
应用程序-模板
- 在“选择模板”向导中,选择Office 365
- 选择下一步
应用程序-应用程序详情
- 在应用程序详细信息部分中,根据需要更改名称、图标和说明,同时保持所有剩余条目不变。
*注意:您也可以通过部署在数据中心的连接器设备路由流量。因此,您需要从“我的公司网络外部”切换到“我的公司网络内部”。*
- 选择下一步
应用程序-单点登录
- 在“单点登录”窗口中,验证名称 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)
- 在 SAML 元数据文件中,查找EntityID。请复制整个 URL 并将其存储以备日后使用。捕获后,可以关闭 SAML 元数据文件。
- 选择下一步
- 跳过下一节,继续使用“应用程序-应用程序连接”
自动域联合配置
- 选择“登录 Azure AD”,将打开一个新选项卡,您将被定向到 Azure AD 门户进行身份验证。(3)
- 指定分配了“全局管理员”权限的用户帐户。
- 如果登录成功,您应该会看到以下消息
- 默认情况下,选择最终用户 MFA 选项处于启用状态。
- 单击此处检索 Azure AD 域以查看所有域的列表。(4)
- 从下拉列表中选择要联合的域名。(5)
- 点击联合域名(6)
注意
- 当您单击“联合域”时,PowerShell 脚本在后端运行,并且该域是联合域。
- 如有必要,请从界面下载 PowerShell 脚本。在域联合 PowerShell 脚本中,输入 Azure AD 域 (7),然后单击下载(8)。
- 选择下一步
应用程序-应用程序连接
- 在“应用程序连接”窗口中,验证流量应如何路由(在本例中为直接从客户端路由到 SaaS 应用程序)
- 选择下一步
- 选择“完成”以完成 Microsoft Office 365 SaaS 应用程序的配置。
授权 SaaS 应用程序并配置增强的安全性
- 在“Secure Private Access”菜单中,选择“访问策略”
- 在“访问策略”部分中,选择“创建策略”
- 在“应用程序”下拉列表中,搜索“Office365”并将其选中。
- 添加有权启动应用程序的适应用户/组
- 指定是否可以在增强安全性的情况下访问应用程序。
上面的屏幕截图没有配置增强的安全性。
如果需要增强安全性,请将“允许访问”更改为“允许但有限制”,并启用所有应适用的选项。
*注意:对于初始 SSO 测试,最好通过设置“在远程浏览器中打开”选项来配置增强的安全性。*
验证身份验证域
Azure 必须验证完全限定的域名,才能将身份验证联合到 Citrix Workspace。在 Azure 门户中,执行以下操作:
- 访问 Azure Active Directory
- 在导航窗口中选择自定义域名
- 选择添加自定义域
- 输入完全限定的域名
- 选择添加域
- Azure 提供了要纳入域名注册商的记录。完成后,选择验证。
- 完成后,域名将包含经过验证的标记
配置域联合
注意
最终配置是让 Azure 使用 Citrix Workspace 作为已验证域的联合权威机构。必须使用 PowerShell 来配置联合身份验证。
- 启动 PowerShell
- 使用以下命令添加适当的模块
Install-Module AzureAD -Force Import-Module AzureAD -Force Install-Module MSOnline -Force Import-module MSOnline -Force
- 通过 PowerShell 连接到 Microsoft Online 并使用 Microsoft 云帐户进行身份验证(例如,
admin.user@onmicrosoft.com
)
Connect-MSOLService
- 通过运行以下 PowerShell 命令验证域当前是否设置为 Azure 中托管
Get-MsolDomain
- 在 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("") # Path to the downloaded certificate file from Office 365 app configuration (e.g., C:\temp\filename.crt) $certData = [system.convert]::tobase64string($cert.rawdata) $IssuerUri = "//m.giftsix.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
- 运行以下 PowerShell 命令,验证域当前是否在 Azure 中设置为联合
Get-MsolDomain
- 通过运行以下 PowerShell 命令验证 Azure 中的联合身份验证设置
Get-MsolDomainFederationSettings -DomainName $dom
注意
如果需要删除联合设置,请运行以下 PowerShell 命令:
Set-MsolDomainAuthentication -DomainName $dom -Authentication Managed
验证
IdP 发起的验证
- 以用户身份登录 Citrix Workspace
- 选择 Office365 应用程序
- 观察 URL 以通过 Azure 进行简短的重定向
- Office365 门户网站成功启动
SP 发起的验证
- 启动浏览器
- 转到公司定义的 SaaS 应用程序的 URL
- 浏览器重定向到 Azure Active Directory,然后重定向到 Citrix Workspace 进行身份验证
- 用户通过主用户目录进行身份验证后,SaaS 应用程序将启动,Citrix 提供单点登录
定义网站过滤策略
Citrix Secure Private Access 在 SaaS 和 Web 应用程序中提供网站筛选,以帮助保护用户免受网络钓鱼攻击。下面显示了如何设置网站过滤策略。
- 在 Citrix Cloud 中,在 Secure Private Access 磁贴中进行管理
- 如果遵循本指南,则设置最终用户身份验证步骤和配置最终用户对 SaaS、Web 和虚拟应用程序的访问权限步骤即已完成。选择“设置”
- 切换到“Web 过滤”选项卡
- 选择编辑
- 启用筛选网站类别选项
- 在“阻止的类别”框中,选择添加
- 选择要阻止用户访问的类别
- 选择所有适用的类别后,选择添加
- 对允许的类别执行同样操作
- 对重定向的类别执行同样的操作。这些类别重定向到 Secure Browser 实例
- 如果需要,管理员可以按照与定义类别相同的流程筛选特定 URL 的拒绝、允许和重定向操作。网站 URL 优先于类别。
验证配置
IdP 发起的验证
- 以用户身份登录 Citrix Workspace
- 选择 Office365。
如果禁用增强安全性,则应用程序将在本地浏览器中启动。否则,将使用企业浏览器。 - 用户自动登录应用
- 应用适当的增强安全策略
- 如果已配置,请在 SaaS 应用程序中选择被阻止、允许和重定向类别中的 URL
- 如果已配置,请在 SaaS 应用程序中选择阻止、允许和重定向的 URL 中的 URL
- SaaS 应用程序成功启动
SP 发起的验证
- 启动浏览器
- 转到Office 365网站并选择登录
- 输入用户名
- 浏览器将浏览器重定向到 Citrix Workspace 进行身份验证
- 用户使用主用户目录进行身份验证后,如果禁用增强安全性,Office365 将在本地浏览器中启动。
如果启用了增强安全性,则 Secure Browser 实例将启动 Office365。
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
- *.辦criptsservice.com
- *.live.net
- *.办公e.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://
联合域.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
联合域-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
联合域.sharepoint.com%2F&whr= - 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 会在登录过程中显示一个对话框,允许用户保持登录状态。
这是Azure设置,可以通过执行以下操作轻松更改:
- 在 Azure 中,选择Azure Active Directory
- 选择公司品牌
- 选择已启用的语言环境
- 在“编辑公司品牌”窗格中,在显示选项中选择否以保持登录状态
- 选择保存
故障排除
目录中不存在用户帐户
尝试启动 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.
以下是关于如何解决此问题的建议:
- 确认用户已获得在 Microsoft 365 管理员控制台中使用 Microsoft 365 的许可
- 验证错误中识别的电子邮件地址是否与主用户目录,Azure活跃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
联邦领域对象
在验证期间,用户可能会收到以下错误:AADSTS50107: The requested federation realm object 'https://
这通常是由于域未经验证或正确联合而导致的。查看 PoC 指南的以下部分:
增强的安全策略失败
用户可能会遇到增强安全策略(水印、打印或剪贴板访问)失败。通常,发生这种情况是因为 SaaS 应用程序使用多个域名。在 SaaS 应用程序的应用程序配置设置中,有一个相关域的条目。
增强的安全策略应用于那些相关的域。本 PoC 指南的Microsoft 365 相关域部分包含初始的相关域集,Microsoft 可以随时更改这些域。
如果增强的安全策略无法在某些应用程序分区中发挥作用,则仍需要添加相关域。要识别缺少的域名,管理员可以使用本地浏览器访问 SaaS 应用程序,然后执行以下操作:
- 导航到策略失败的应用程序部分
- 在 Google Chrome 和 Microsoft Edge(Chromium 版)中,选择浏览器右上角的三个点以显示菜单屏幕。
- 选择“更多工具”。
- 选择开发者工具
- 在开发人员工具中,选择“来源”。这提供了该应用程序部分的访问域名列表。要为应用程序的这一部分启用增强安全策略,必须将这些域名输入到应用程序配置的相关域字段中。添加相关域名,例如下面的
*.domain.com