使用 Azure 应用程序 Proxy 与 Microsoft Identity Manager (MIM) 2016 SP1 Microsoft Entra企业对企业 (B2B) 协作
初始方案是外部用户 AD 帐户生命周期管理。 在此方案中,组织已邀请来宾进入其Microsoft Entra目录,并希望通过Microsoft Entra应用程序代理或其他网关机制向这些来宾提供对本地 Windows-Integrated 身份验证或基于 Kerberos 的应用程序的访问权限。 Microsoft Entra应用程序代理要求每个用户都有自己的 AD DS 帐户,以便进行标识和委派。
特定于方案的指南
在配置具有 MIM 和 Microsoft Entra ID 的 B2B 时做出的一些假设应用程序代理:
你已经部署了本地部署 AD,并且已安装 Microsoft Identity Manager 以及为 MIM 服务、MIM 门户、Active Directory 管理代理 (AD MA) 和 FIM 管理代理 (FIM MA).进行了基本配置。 有关详细信息,请参阅 Deploy Microsoft Identity Manager 2016 SP2。
你已按照文章中有关如何下载和安装 Graph 连接器的说明进行操作。
配置了 Microsoft Entra Connect,以便将用户和组同步到Microsoft Entra ID。
已设置应用程序代理连接器和连接器组。 如果没有,请参阅教程:通过Microsoft Entra ID 中的应用程序代理添加远程访问的本地应用程序,以便进行安装和配置。
你已发布一个或多个应用程序,这些应用程序依赖于 Windows 集成身份验证或通过Microsoft Entra应用程序代理的单个 AD 帐户。
你已邀请或邀请了一个或多个来宾,导致在Microsoft Entra ID 中创建一个或多个用户。 有关详细信息,请参阅 Microsoft Entra B2B 协作注册的自助服务。
B2B 端到端部署示例方案
本指南基于以下方案:
Contoso Pharmaceuticals 与 Trey Research Inc. 合作,属于后者的研发部门。 Trey Research 员工需要访问 Contoso Pharmaceuticals 提供的研究报告应用程序。
Contoso Pharmaceuticals 位于他们自己的租户中,已配置自定义域。
有人邀请了外部用户访问 Contoso Pharmaceuticals 租户。 此用户已接受邀请并可以访问共享的资源。
Contoso Pharmaceuticals 已通过应用代理发布应用程序。 在本方案中,示例应用程序是 MIM 门户。 这将使来宾用户参与 MIM 进程,例如位于帮助台方案中或请求访问 MIM 中的组。
配置 AD 和 Microsoft Entra Connect 以排除从Microsoft Entra ID 添加的用户
默认情况下,Microsoft Entra Connect 将假定 Active Directory 中的非管理员用户需要同步到Microsoft Entra ID。 如果 Microsoft Entra Connect 在Microsoft Entra ID 中找到与本地 AD 中的用户匹配的现有用户,Microsoft Entra Connect 将匹配这两个帐户,并假定这是该用户的早期同步,并使本地 AD 具有权威性。 但是,此默认行为不适用于 B2B 流,其中用户帐户源自Microsoft Entra ID。
因此,MIM 从Microsoft Entra ID 引入 AD DS 的用户的存储方式需要Microsoft Entra ID 不会尝试将这些用户同步回Microsoft Entra ID。 执行此操作的一种方法是在 AD DS 中创建新的组织单位,并配置Microsoft Entra Connect 以排除该组织单位。
有关详细信息,请参阅 Microsoft Entra Connect Sync:配置筛选。
创建 Microsoft Entra 应用程序
注意:在 MIM 同步中创建图形连接器的管理代理之前,请确保已查看了部署 Graph 连接器的指南,并创建了具有客户端 ID 和机密的应用程序。
确保应用程序至少已授予以下权限之一:User.Read.All
、User.ReadWrite.All
、Directory.Read.All
或 Directory.ReadWrite.All
。
创建新的管理代理
在 Synchronization Service Manager UI 中,选择“连接器”和“创建”。 选择“Graph (Microsoft)”并为其指定一个描述性名称。
连接性
在连接页面上,必须指定 Graph API 版本。 生产就绪 PAI 为 V 1.0,非生产为 Beta 版本 。
全局参数
配置预配层次结构
此页面用于将 DN 组件(例如 OU)映射到应预配的对象类型,例如 organizationalUnit。 本方案无需这样做,因此将其保留为默认值并单击“下一步”。
配置分区和层次结构
在“分区和层次结构”页面上,选择包含你计划导入和导出的对象的所有命名空间。
选择对象类型
在“对象类型”页面上,选择计划导入的对象类型。 必须至少选择“用户”。
选择属性
在“选择属性”屏幕上,从Microsoft Entra选择管理 AD 中的 B2B 用户所需的属性。 属性“ID”是必选项。 稍后将在此配置中使用属性 userPrincipalName
和 userType
。 其他属性是可选项,包括
displayName
mail
givenName
surname
userPrincipalName
userType
配置定位标记
在“配置定位点”屏幕上,配置定位点属性是必需的步骤。 默认情况下,使用 ID 属性进行用户映射。
配置连接器筛选器
在“配置连接器筛选器”页面上,MIM 可以根据属性筛选器筛选出对象。 对于 B2B,此方案的目标是仅引入属性值等于 的 UsersuserType
,而不引入 userType 等于 的用户member
。Guest
配置联接和投影规则
本指南假设你将创建同步规则。 由于配置联接和投影规则由同步规则处理,因此不需要在连接器本身上标识联接和投影。 保留默认设置并单击“确定”。
配置属性流
本指南假设你将创建同步规则。 在 MIM 同步中定义属性流不需要投影,因为它是由稍后创建的同步规则处理的。 保留默认设置并单击“确定”。
配置取消设置
如果删除了 metaverse 对象,则用于配置取消设置的设置允许将 MIM 同步配置为删除对象。 在此方案中,我们将其设置为断开连接器,因为目标是将它们保留在Microsoft Entra ID 中。 在此方案中,我们不会将任何内容导出到Microsoft Entra ID,并且连接器配置为仅导入。
配置扩展
在此管理代理上配置扩展是一个选项,这不是必需项,因为我们正在使用同步规则。 如果我们之前决定在属性流中使用高级规则,则会有一个定义规则扩展的选项。
扩展 metaverse 架构
在创建同步规则之前,我们需要使用 MV 设计器创建一个绑定到 person 对象的名为 userPrincipalName 的属性。
在同步客户端上,选择 Metaverse 设计器
然后选择 Person 对象类型
然后在“操作”下,单击“添加属性”
然后填写以下详细信息
属性名称:userPrincipalName
属性类型:字符串(可编制索引)
Indexed = True
创建 MIM 服务同步规则
在以下步骤中,我们将开始映射 B2B 来宾帐户和属性流。 在此假设:你已配置 Active Directory MA,并且配置了 FIM MA 以将用户转到 MIM 服务和门户。
后续步骤需要向 FIM MA 和 AD MA 添加最低配置。
有关配置的更多详细信息,请参阅此处https://technet.microsoft.com/library/ff686263(v=ws.10).aspx - 如何将用户设置为 AD DS
同步规则:从Microsoft Entra ID 将来宾用户导入 MV 到 Synchronization Service Metaverse
导航到 MIM 门户,选择“同步规则”并单击“新建”。 通过图形连接器创建 B2B 流的入站同步规则。
在关系条件步骤中,请务必选择“在 FIM 中创建资源”。
配置以下入站属性流规则。 请务必填充 、 userPrincipalName
和 uid
属性,accountName
因为稍后将在此方案中使用它们:
仅限初始流 | 用作存在性测试 | 流(源值 ⇒ FIM 属性) |
---|---|---|
[displayName⇒displayName](javascript:void(0);) |
||
[Left(id,20)⇒accountName](javascript:void(0);) |
||
[id⇒uid](javascript:void(0);) |
||
[userType⇒employeeType](javascript:void(0);) |
||
[givenName⇒givenName](javascript:void(0);) |
||
[surname⇒sn](javascript:void(0);) |
||
[userPrincipalName⇒userPrincipalName](javascript:void(0);) |
||
[id⇒cn](javascript:void(0);) |
||
[mail⇒mail](javascript:void(0);) |
||
[mobilePhone⇒mobilePhone](javascript:void(0);) |
同步规则:创建访问 Active Directory 的来宾用户帐户
此同步规则在 Active Directory 中创建用户。 确保 的流dn
必须将用户置于从 Microsoft Entra Connect 中排除的组织单位中。 此外,更新 unicodePwd
的流以符合 AD 密码策略 - 用户无需知道密码。 注意,userAccountControl
的 262656
值会对标记 SMARTCARD_REQUIRED
和 NORMAL_ACCOUNT
进行编码。
流规则:
仅限初始流 | 用作存在性测试 | 流(FIM 值 ⇒ 目标属性) |
---|---|---|
[accountName⇒sAMAccountName](javascript:void(0);) |
||
[givenName⇒givenName](javascript:void(0);) |
||
[mail⇒mail](javascript:void(0);) |
||
[sn⇒sn](javascript:void(0);) |
||
[userPrincipalName⇒userPrincipalName](javascript:void(0);) |
||
是 | ["CN="+uid+",OU=B2BGuest,DC=contoso,DC=com"⇒dn](javascript:void(0);) |
|
是 | [RandomNum(0,999)+userPrincipalName⇒unicodePwd](javascript:void(0);) |
|
是 | [262656⇒userAccountControl](javascript:void(0);) |
可选同步规则:导入 B2B 来宾用户对象 SID 以登录到 MIM
此入站同步规则将 Active Directory 中用户的 SID 属性带回 MIM,因此用户可以访问 MIM 门户。 MIM 门户要求用户在 MIM 服务数据库中填充属性 samAccountName
、domain
和 objectSid
。
将源外部系统配置为 ADMA
,因为当 MIM 创建用户时,AD 将自动设置 objectSid
属性。
请注意,如果将用户配置为在 MIM 服务中创建,请确保它们不在用于员工 SSPR 管理策略规则的任何集合的范围内。 你可能需要更改集合定义以排除 B2B 流创建的用户。
仅限初始流 | 用作存在性测试 | 流(源值 ⇒ FIM 属性) |
---|---|---|
[sAMAccountName⇒accountName](javascript:void(0);) |
||
["CONTOSO"⇒domain](javascript:void(0);) |
||
[objectSid⇒objectSid](javascript:void(0);) |
运行同步规则
接着,我们邀请用户,然后按以下顺序运行管理代理同步规则:
MIMMA
管理代理上的完全导入和同步。 这可确保 MIM 同步已配置最新的同步规则。ADMA
管理代理上的完全导入和同步。 这可确保 MIM 和 Active Directory 保持一致。 此时,来宾还没有任何挂起的导出。B2B Graph 管理代理上的完全导入和同步。 它将来宾用户引入到 metaverse。 此时,一个或多个帐户将为
ADMA
挂起的导出。 如果没有挂起的导出,则检查来宾用户是否已导入到连接器空间中,并且是否已配置规则使这些来宾用户成为给定 AD 帐户。ADMA
管理代理上的导出、增量导入和同步。 如果导出失败,请检查规则配置并确定是否存在任何缺少的架构要求。MIMMA
管理代理上的导出、增量导入和同步。 完成该操作后,应不再有任何挂起的导出。
可选:B2B 来宾应用程序代理登录到 MIM 门户
现在我们已经在 MIM 中创建了同步规则。 在应用代理配置中,定义使用云主体以允许在应用代理中使用 KCD。 此外,接下来将用户手动添加到管理用户和组。 在 MIM 中创建之前不向用户显示的选项可以在设置后将来宾添加到 Office 组,需要本文中未包含的一些配置。
一旦全部配置完毕,让 B2B 用户登录并查看应用程序。
后续步骤
How Do I Provision Users to AD DS(如何将用户预配到 AD DS)
Functions Reference for FIM 2010(FIM 2010 的函数参考)