我们有一位客户希望其用户使用不同的用户帐户来管理 SharePoint Online 和 Exchange/Office 365 邮件(虽然听起来很奇怪,但这样做是有正当理由的)。所有帐户都在同一个域中,并且客户已为其租户配置了 ADFS。我在网上找到的所有文章和帖子都与此场景完全相反(SSO 或具有一个租户的多域)。
我想知道的是,我们是否可以为 SharePoint Online 和 Exchange 配置不同的领域 ID(或类似的东西),以便可以触发 ADFS 对一个领域与另一个领域使用不同的身份验证机制。
****编辑****
根据下面的评论,这里对需要两个领域 ID(或任何其他解决问题的机制)的原因进行了更详细的说明。客户在其组织中基本上有两种用户帐户。大多数是标准的普通用户帐户,他们通过 ADFS 提供的 SSO 访问 O365。
其他类型的用户通常不会登录工作站,也没有自己的指定办公桌。这些用户使用共享工作站,这些工作站始终以通用公共帐户登录。当这些用户访问共享工作站(我在下面的评论中将它们称为信息亭,但这是一种轻微的误解)然后尝试访问 O365 时,ADFS 会以通用帐户的身份登录用户。当用户转到 SharePoint Online 的主门户页面时,这很好(当转到安全的子站点时,用户会看到拒绝访问页面,但可以选择以其他用户身份登录),但当他们尝试访问电子邮件时,情况就不一样了(他们会收到错误页面,因为通用帐户没有收件箱,也没有重新进行身份验证的方法)。
我最初的想法是,如果我们可以使用两个 IdP(或一个带有两个 RP 的 ADFS 服务器),那么我们可以对 SharePoint 领域使用 SSO/WIA,然后对 Exchange 领域使用表单身份验证。我的另一个想法是使用 ADFS 中的声明规则(它们位于 ADFS 3/2012R2 上)在用户的 UPN 与模式匹配时强制进行表单身份验证。我最后想到的解决方案是使用 GPO 禁用 IE 中公共帐户的 SSO。
答案1
答案来自杰斯帕·斯塔勒。
您将需要使用 IE 区域来破解信息亭机器上的身份验证令牌,您可以使用组策略轻松实现这一点。
解释:您的用户将尝试访问 Office 365,他们将被重定向到 ADFS 进行身份验证,ADFS 将读取他们的 Kerberos TGT 票证,创建令牌并将其转发到 Office 365 进行进一步处理。
- 对于使用专用机器的用户:此过程将顺利进行,从 ADFS 发送到 Office 365 的令牌将对他们进行身份验证,并允许他们根据登录到机器的帐户访问他们的邮箱。
- 对于自助服务终端机器:这里的问题是,无论坐在机器前的实际用户是谁,ADFS 始终会将登录帐户的令牌发送到 Office 365 进行进一步处理,这始终会导致登录的邮箱打开。
解决方案:为避免将信息亭计算机上登录用户的令牌从 ADFS 发送到 Office 365,您需要告诉 IE 不要将登录的用户名/密码发送到 ADFS,而是为坐在机器前的用户打开一个登录框以使用他们自己的特定用户名/密码,这可以通过以下方式实现:
对于使用专用机器的用户:将 ADFS 链接放在“本地 Intranet 区域",如果您执行此操作,SSO 将启用。
对于自助服务终端机器:将 ADFS 链接放在“可信任的网站“区域,这将破坏 SSO,并且用户每次访问 Office 365 时都会被要求提供用户名/密码。
对于使用组策略将网站放入区域的问题,我建议使用“註冊“使用以下内容输入:
Key Location: Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\YOURADFSLINK
Value Name: http
Value Type: REG_DWORD
Value Data: 1 or 2
“数值数据”1 表示“本地 Intranet 区域”,2 表示“受信任的站点区域”