ADFS 2.0 在与 Office 365 进行联合尝试期间,在其 SAML 断言中声明 immutableID 值。
ImmutableId 是在 Office 365 中创建对象时指定的。如果使用 DirSync,则使用 objectGUID。
如果您希望将多个 AD 林合并到一个 O365 实例,那么 DirSync 并不是一个真正的选择。
因此,如果您可以让用户进入 O365,并设置适当的 UPN 和 ImmutableId,ADFS 会满意吗?创建用户时应传递 objectGUID 值的什么格式(非字符串值、八位字节/二进制,无论您想叫它什么)?
- 基于字符串GUID 表示
- Base64 编码的二进制值
就我而言,这很容易做到,我只需要知道 ADFS 在其基本或默认配置中的断言中使用了什么来实现这种支持?
答案1
有点晚了但希望能够帮助其他人。
我在实际的多林 O365 部署中看到的一个选项是使用资源林。FIM 2010 R2 用于同步所有其他林,然后使用 Dirsync(或带有 O365 MA 的 FIM 2010 R2)同步到 O365 租户。截至撰写本文时,管理代理并非免费提供,需要咨询 Microsoft 才能获得。
默认情况下,不可变的确实是 AD 中用户的 objectguid 属性。Dirsync 会将 AD 用户对象的 objectguid 写入托管租户的 Azure AD 中表示的用户对象。但从技术上讲,如果需要,您可以使用另一个唯一属性。要确保的关键是该值不会在其他对象上重复使用。例如,可以使用 employeeid 或类似属性。
还请注意,Dirsync 是一个“黑盒设备”,不鼓励对 Microsoft 文档以外的内容进行调整。请不要运行不受支持的配置。
如果您已在 Azure AD 中的对象上设置了 ImmutableID,并且 AD FS 配置为读取相关属性(例如 employeeid)并将其发送到断言 O365 中,那么将会很顺利。ImmutableID 属性是一个字符串。您需要做的就是发送 O365 期望在 Azure AD 中接收和匹配的值。
检查 AD FS 上由 O365 Powershell cmdlet 创建的声明规则。具体来说,第一条规则用于查看如何提取 UPN 和 ObjectGUID 并将其作为相关声明发送。