将 AD FS 基于声明的身份验证用于 web 上的 Outlook

OWA以及EAC的传统身份验证方法如下:(标注黄色的是当前所使用的身份验证)

  • Active Directory client certificate authentication(Active Directory 客户端证书身份验证)
  • Basic authentication(基本身份验证)
  • Digest authentication(摘要式身份验证)
  • Forms authentication(表单身份验证)
  • Windows authentication(Windows 身份验证)

准备工作

为 web 上的 Outlook 和 Exchange Server 中的 EAC 设置基于 AD FS 声明的身份验证涉及以下额外的服务器:

  • Windows Server 2012 或更高版本的域控制器(Active Directory 域服务服务器角色)
  • Windows Server 2012 或更高版本的 AD FS 服务器(Active Directory 联合身份验证服务服务器角色)
  • 操作身份必须是 Domain Admins、Enterprise Admins 或 local Administrators 安全组的成员才能安装 AD FS,并在 AD FS 服务器上创建所需的信赖方信任和声明规则

AD FS的证书要求

AD FS需要两种基本类型证书:

  • AD FS 服务器、客户端、Exchange 服务器和可选 Web 应用程序代理服务器之间用于加密 web 服务流量的服务通信安全套接字层(SSL)证书。 建议使用由内部或商业证书颁发机构(CA)颁发的证书,因为所有客户端都需要信任此证书。
  • AD FS 服务器、Active Directory 域控制器和 Exchange 服务器之间的加密通信和身份验证的令牌签名证书。 建议使用默认的自签名 AD FS 令牌签名证书。 | 证书公用名(CN) | 类型 | 必需服务器 | 说明 | | —- | —- | —- | —- | | adfs.lab.com | CA颁发 | ADFS、Web代理 | 此为对client可见的主机名,客户端需要信任此证书颁发者 | | ADFS Signing - adfs.lab.com | 自签名 | ADFS、Exchange、Web代理 | 默认自签名证书需要手动将其导入到所有Exchange服务器上受信任的根证书存储中 | | mail.lab.com (*.lab.com) | CA颁发 | Exchange、Web代理 | 用于加密到 web 上的 Outlook 的外部客户端连接的典型证书 |

在 AD FS 中为 web 上的 Outlook 和 EAC 创建信赖方信任和自定义声明规则

  • /在 Outlook 网页和 EAC URL 值中使用的尾部斜杠()是特意使用的。 AD FS 信赖方信任和 Exchange 访问群体 URI 必须相同,这一点非常重要。 它们都必须具有或都必须在其 url 中省略尾部斜杠。

在 AD FS 中为 web 上的 Outlook 和 EAC 创建信赖方信任

  1. 打开AD FS管理工具

ADFS4.0 与OWA&ECP配置认证 - 图1

  1. 选择“信赖方信任”,右击选择“添加信赖方信任”,或在“操作”窗格中选择“添加信赖方信任

ADFS4.0 与OWA&ECP配置认证 - 图2

  1. 打开“添加信赖方信任向导”,在“欢迎”页面中点击“启动”(在Windows 2016中提示选择“声明感知”和“非声明感知”,保持默认“声明感知”即可)

ADFS4.0 与OWA&ECP配置认证 - 图3

  1. 在”选择数据源“ 页上,选择 “手动输入有关信赖方的数据“,然后单击 “下一步

ADFS4.0 与OWA&ECP配置认证 - 图4

  1. 在 “指定显示名称“ 页上,配置以下设置:完成后,点击“下一步
  • 对于 web 上的 Outlook:
    • 显示名:Outlook Web Application
    • 注释(可选)
  • 对于EAC:
    • 显示名:Exchange Admin Center
    • 注释(可选)

ADFS4.0 与OWA&ECP配置认证 - 图5

  1. 在 “选择配置文件“ 页上,验证已选择 “AD FS 配置文件“,然后单击 “下一步“ (Windows 2016中没有此步骤)

ADFS4.0 与OWA&ECP配置认证 - 图6

  1. 在 “配置证书“ 页上,单击 “下一步“(不指定可选令牌加密证书)

ADFS4.0 与OWA&ECP配置认证 - 图7

  1. 在 “配置 URL“ 页上,选择 “启用对 ws-federation 被动协议的支持“,并在 “信赖方 ws-federation 被动协议 URL“ 中输入以下信息:完成后,点击“下一步

ADFS4.0 与OWA&ECP配置认证 - 图8

  1. 在 “配置标识符“ 页上,单击 “下一步“ (”信赖方信任标识符“ 中列出了上一步中的 URL)

ADFS4.0 与OWA&ECP配置认证 - 图9

  1. 在 “立即配置多重身份验证?“ 页面上,确认我不想在此时为此信赖方信任配置多重身份验证设置,然后单击 “下一步“ (Windows 2016 此页面为“选择访问控制策略”,可在此处配置多重身份验证以及步骤11中的授权规则)

ADFS4.0 与OWA&ECP配置认证 - 图10

  1. 在 “选择颁发授权规则“ 页上,确认选中了 “允许所有用户访问此信赖方“,然后单击 “下一步

ADFS4.0 与OWA&ECP配置认证 - 图11

  • 根据需要创建组别,例如 Office365 用户访问需要通过ADFS,将所有Office 365用户加入同一特定组,根据特定组访问此信赖方
  1. 在“准备好添加信任”页面,复查设定,点击“下一步

ADFS4.0 与OWA&ECP配置认证 - 图12

  1. 在 “完成“ 页上,取消选中 “在向导关闭时打开此信赖方信任的编辑声明颁发策略对话框“,然后单击 “关闭

ADFS4.0 与OWA&ECP配置认证 - 图13

在 AD FS 中为 web 上的 Outlook 和 EAC 创建自定义声明规则

对于 OWA 和 EAC,需要创建两个声明规则:

  • Active Directory 用户 SID
  • Active Directory UPN
  1. 在 AD FS 管理控制台中, “信赖方信任“,然后选择 “Outlook Web Application“ 或 “Exchange Admin Center“。 在 “操作“ 窗格中,选择 “编辑声明规则(声明颁发策略)

ADFS4.0 与OWA&ECP配置认证 - 图14

  1. 在打开的 “编辑” 的 “编辑声明规则 “ 窗口中,在 “颁发转换规则“ 选项卡,然后单击 “添加规则

ADFS4.0 与OWA&ECP配置认证 - 图15

  1. 将打开 “添加转换声明规则“ 向导。 在 “选择规则类型“ 页上,单击 “声明规则模板“ 下拉箭头,然后选择 “使用自定义规则发送声明“。 完成后,单击“下一步

ADFS4.0 与OWA&ECP配置认证 - 图16

  1. 在 “配置规则“ 页面上,输入以下信息:

ActiveDirectoryUserSID
  • 声明规则名称:ActiveDirectoryUserSID
  • 自定义规则:复制并粘贴以下文本
  1. c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"), query = ";objectSID;{0}", param = c.Value);

ADFS4.0 与OWA&ECP配置认证 - 图17

完成后,单击 “完成“,然后添加第二条

ActiveDirectoryUPN
  • 声明规则名称:ActiveDirectoryUPN
  • 自定义规则:复制并粘贴以下文本:
  1. c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);

ADFS4.0 与OWA&ECP配置认证 - 图18

  • 声明规则名称:ActiveDirectoryGroupSID
  • 自定义规则:复制并粘贴以下文本:
  1. c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]=> issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"), query = ";tokenGroups(SID);{0}", param = c.Value);

完成后,单击“完成

  1. 返回到 “编辑声明规则 “ 窗口,单击 “确定

ADFS4.0 与OWA&ECP配置认证 - 图19

将 Exchange 组织配置为使用 AD FS 身份验证

  1. 在ADFS服务器上运行以下命令,查找需要导入的ADFS令牌签名证书的指纹,查找主题值为“CN=ADFS Signing - ”
  1. Set-Location Cert:\LocalMachine\Root; Get-ChildItem | Sort-Object Subject | Where-Object {$_.Subject -like "CN=ADFS*"}
  1. 在Exchange服务器中,运行以下命令配置ADFS身份验证
  1. Set-OrganizationConfig -AdfsIssuer https://<FederationServiceName>/adfs/ls/ -AdfsAudienceUris "<OWAURL>","<EACURL>" -AdfsSignCertificateThumbprint "<Thumbprint>"

在OWA以及ECP虚拟目录中配置AD FS身份验证

  • 需要先配置EAC虚拟目录,而后才能配置OWA
  • 默认情况下,仅对 web 上的 Outlook 和 EAC 虚拟目录启用基本和窗体身份验证

为组织中每个Exchange服务器虚拟目录上配置

  1. Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -AdfsAuthentication $true
  2. Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -AdfsAuthentication $true

在 Exchange 服务器上重新启动 IIS

  1. iisreset /restart

验证生效

  1. 浏览器中打开OWA,https://mail.lab.com/owa
  2. 重定向到 ADFS登陆页面,https://adfs.lab.com/adfs/ls/
  3. 输入用户名密码后点击登录
  4. 成功加载OWA页面