将 Office 365 与 OAM 和 Id 先决条件集成

本文介绍如何使用 SAML 2.0 协议将 OAM(11.1.2.2.0 或更高版本)集成为 IdP 与 Office 365 for Federation SSO。

集成包括:

请注意,对于非 SAML 2.0 组件,与 Office 365 的集成将不起作用,例如:

本文基于

概述

为了使用 SAML 2.0 协议与 Office 365 集成,必须将 OAM 配置为使用 HTTPS/SSL 作为其端点,并使用众所周知的 CA 颁发的 SSL 证书(如果需要 ActiveSync 邮件集成)。如果不这样做,可能会导致 Office 365 在建立联盟信任时不接受 OAM SAML 2.0 元数据。

Office 365 期望所有 SAML 消息都使用 SHA-1 摘要算法进行签名。因此,必须将 IdP 配置为使用 SHA-1,否则,如果使用 SHA-256,Office 365 SP 将返回错误。此外,Office 365 要求将 IdP 的签名证书包含在已签名 SAML 断言中;因此,需要将 OAM 配置为将其包含在 Office 365 的所有传出签名消息中。

如果在 IdP 中使用 HTTP 基本验证(因为它是 ActiveSync 邮件集成所必需的),则需要将运行 OAM 的 WebLogic 域配置为不验证不安全资源的 HTTP 基本验证。

为了在两个联盟服务器之间建立信任,必须检索以下数据:

最后,为了能够建立联邦信任,需要发生以下情况:

启用 SSL

重要说明:用于为 OAM 启用 SSL 的 SSL 证书必须由众所周知的 CA 颁发,因为 Office 365 服务器尝试针对 ActiveSync 用例与 OAM 服务器建立直接连接。

有几种方法可在 OAM 的公共端点上启用 SSL:

为 SSL 配置组件(负载平衡器、OHS 或 WLS)后,需要更新 OAM 配置,以将新端点作为其公共 URL 进行引用:

  1. 转到 OAM 管理控制台:http(s)://oam-admin- host:oam-admin-port/oamconsole

  2. 导航到 ConfigurationAccess Manager 设置

  3. 将 OAM 服务器主机设置为公共端点的主机名

  4. 将 OAM Server Post 设置为公共端点的 SSL 端口

  5. 将 OAM 服务器协议设置为 https

  6. 单击应用

插图 Access_Manager_Settings.jpg 的说明

注:进行这些更改后,检索 OAM SAML 2.0 元数据将包含新的 https URL

HTTP 基本验证

默认情况下,如果浏览器向 OAM 发送 HTTP 基本验证身份证明,则 WLS 服务器会在允许 OAM 处理请求之前尝试验证这些身份证明:这可能会导致验证失败,特别是在未为在 OAM 中创建的每个身份存储库配置 WLS LDAP 验证程序的情况下。

:即使 WLS 域已正确配置为在 OAM 中为每个身份存储库创建 WLS LDAP 验证程序,也会产生两个验证操作,一个由 WLS 执行,另一个由 OAM 创建 OAM 会话所需的验证操作。

可以禁用自动验证发送到运行 OAM 的 WLS 域中的不安全的应用程序的 HTTP 基本验证身份证明。有关详细信息,请参阅《 Oracle Fusion Middleware Programming Security for Oracle WebLogic Server 》指南中的“Understanding BASIC Authentication with Unsecured Resources”部分。

要禁用自动验证发送到 WLS 域中不安全的应用程序的 HTTP 基本验证身份证明,请执行以下步骤:

  1. 通过执行以下命令进入 WLST 环境:$IAM_ORACLE_HOME/common/bin/wlst.sh

  2. 连接到 WLS 管理服务器:connect()

  3. 启动编辑会话:

    edit()

    startEdit()

  4. 导航到 SecurityConfiguration 节点:cd('SecurityConfiguration')

  5. 导航到域(将 DOMAIN_NAME 替换为安装了 OAM 的 WLS 域的名称):cd('DOMAIN_NAME')

  6. EnforceValidBasicAuthCredentials 设置设置为 false 可禁用发送到不安全应用程序的 HTTP 基本验证身份证明的 automatic 验证:set('EnforceValidBasicAuthCredentials','false')

  7. Save and activate the changes:

    保存()

    activate()

  8. 重新启动 WLS 域中的服务器以使更改生效

SAML 2.0 元数据、证书和颁发者

要从 Office 365 SP 服务器下载 SAML 2.0 元数据:

  1. 打开浏览器

  2. 转到 Azure / Office 365 元数据发布服务:https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml

  3. 使用浏览器中的“Save As(另存为)”按钮在本地保存元数据

OAM IdP 签名证书必须作为 Base64 编码字符串提供给 Windows Powershell 命令,以单个字符串的形式提供,不包含空格/换行符。要检索 OAM IdP 签名证书,请执行以下操作以确定使用哪个 keyID 条目对传出 SAML 消息进行签名:

  1. 转到 OAM 管理控制台:http(s)://oam-adminhost:oam-admin-port/oamconsole

  2. 导航到配置联盟设置

  3. 请注意“签名密钥”字段中 SAML 签名操作的签名密钥的 keyID

插图 Federation_Settings.jpg 的说明

执行以下步骤可检索该 keyID 条目的证书:

  1. 打开浏览器

  2. 转到以下 URL(将 KEYENTRY_ID 替换为上一步中检索到的 keyID 名称):

  3. http://oam-runtime-host:oam-runtime-port/oamfed/idp/cert?id=<KEYENTRY_ID>

  4. 将证书保存在文本文件中。

  5. 使用您常用的文本编辑器打开文件

  6. 该文件的内容如下所示:

    -----BEGIN CERTIFICATE-----
    	MIIB+DCCAWGgAwIBAgIBCjANBgkqhkiG9w0BAQQFADAhMR8wHQYDVQQDExZhZGMMHBjYy51cy5vcmFjbGUuY29tMB4XDTE0MDMwNDE5MjAzMloXDTI0MDMwMTE5MjAzMlowITEfMB0GA1UEAxMWYWRjMDBwY2MudXMub3JhY2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAkQOdZCmoOQRuxSvI/74bjnUPq7u7qiGbmaN1D5TB JaM+j5XRixEUI3pidaxlbykaraqVBMJpXJ6ua0QWectv6SdzuqcvH8C5el06NxTs fB6pcvxHGXVAbAvtGr2tOPSL+5HaFQoATpiY3HugTnJfjmHRfOqIo8nUMek6zCtv rKUCAwEAAaNAMD4wDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMB0GA DgQWBBQ/7yJbGCbbAnaLEi4ReLwLlvSxJTANBgkqhkiG9w0BAQQFAAOBgQBrMb2i6zcChhVM7a9VVgBr8xljBsPxVWCAYNUYaoyUj9VkD4CpFF9hVX0CpceoSBTiyMQp 3sg0FAYz1PGfjrq7uFEq9iTCwa5J/7k/VSOLKd3IDqzz7w0ZERksgp3OOqOct/wB/wQplaoMZLcRoInVUbGTBDMfqmW5iZ/wjpzItg==
    —–END CERTIFICATE—–
    
  7. 删除第一行 (-----BEGIN CERTIFICATE-----),删除最后一行 (-----END CERTIFICATE-----),然后修改文件的其余部分以删除换行符。结果应为单行文件(内容已缩短):

  8. MIIB+DCCAWGgAwIBAgIBCjANBg....InVUbGTBDMfqmW5iZ/wjpzItg==

  9. 保存文件。此行作为 Windows Powershell 命令的输入提供。

执行以下步骤可检索 IdP 的颁发者/提供商 ID:

  1. 转到 OAM 管理控制台:http(s)://oam-admin-host:oam-admin-port/oamconsole

  2. 导航到配置联盟设置

  3. 记下“提供商 ID”字段中的“OAM 发行人/提供商 ID”值

插图 Retrieve_IDP.jpg 的说明

OAM IdP SSO 和注销 URL 为(注:请确保具有公共端点,这些端点是最终用户使用的 URL):

如果您有任何疑问,可以从 IdP 元数据中检索这些 URL:

  1. 打开浏览器

  2. 访问 http(s)://oam-public-host:oam-public-port/oamfed/idp/metadata

  3. 浏览器 SSO URL 将是 XML 的位置属性

    
    	 Element EntityDescriptor , IDPSSODescriptor , SingleSignOnService for which the Binding attribute is set to urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect:
               <md:EntityDescriptor ...>
    				...
    				<md:IDPSSODescriptor ...>
    					...
    					<md:SingleSignOnService>
    						Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTPRedirect" Location="https://acme.com/oamfed/idp/samlv20"/>
    					...
    				</md:IDPSSODescriptor>
    				...
    			</md:EntityDescriptor>
    	

SHA-256 与 SHA-1

在 OAM 和 Office 365 之间设置联盟后,必须将 OAM 配置为将 SHA-1 用于 Office 365 SP 合作伙伴的签名。

OAM 在签名消息中的签名证书

在 OAM 和 Office 365 之间设置联盟后,必须配置 OAM,以便联盟服务器在 Office 365 SP 合作伙伴的所有传出签名 SAML 消息中包括其 X.509 签名证书。

用户帐户

必须同步 Office 365 和 OAM 目录中的用户帐户以支持各种联盟流(浏览器 SSO 和 ActiveSync):

ImmutableId

ImmutableId 是 Office 365 用于唯一引用用户的属性。即使稍后删除用户记录,以后创建的任何其他用户都不能具有相同的 ImmutableId 值。

ImmutableId 通常是

UserPrincipalName

UserPrincipalName(或 UPN)是具有电子邮件地址格式的标识符。电子邮件地址的域名需要映射到 Office 365 域中使用的名称。

例如,如果为联盟 SSO 的 acme.com 域配置了 Office 365,则具有类似于 identiSer@acme.com 的电子邮件地址的所有用户都可以使用为该 Office 365 域配置的 IdP 来执行联盟 SSO。

ActiveSync 要求

在 ActiveSync 邮件流中:

在这样的流中,用户将:

用户名要求

基于上述情况,IdP 中的用户验证要求如下:

浏览器

验证用户名

HTTP 基本验证用户名,网址为 IdP
基于浏览器的联盟 SSO 任何内容 不适用

基于浏览器的联盟 SSO

+

ActiveSync ECP

任何内容 电子邮件地址中的标识符

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心