配置 AD FS 服务器以进行基于声明的身份验证
启用基于声明的身份验证后,下一步是在 AD FS 中添加和配置声明提供程序和信赖方信任。
配置声明提供程序信任
您需要添加声明规则,以从 Active Directory 检索用户主体名称 (UPN) 属性并将其作为 UPN 发送到 Dynamics 365 Customer Engagement (on-premises)。
将 AD FS 以便将 UPN LDAP 属性作为声明发送到信赖方
在运行 AD FS 的服务器上,启动 AD FS 管理。
在导航窗格中,展开信任关系,然后选择声明提供程序信任。
在声明提供程序信任下,右键单击 Active Directory,然后选择编辑声明规则。
在规则编辑器中,选择添加规则。
在声明规则模板列表中,选择将 LDAP 属性作为声明发送模板,然后选择下一步。
创建以下规则:
声明规则名称:UPN 声明规则(或描述性文本)
添加以下映射:
属性存储:Active Directory
LDAP 属性:用户主体名称
传出声明类型:UPN
单击完成,然后选择确定关闭规则编辑器。
配置信赖方信任
启用基于声明的身份验证后,必须将 Dynamics 365 Server 配置为信赖方,才能使用来自 AD FS 的声明对内部声明访问进行身份验证。
在运行 AD FS 的服务器上,启动 AD FS 管理。
在导航窗格中,展开信任关系,然后选择信赖方信任。
在右侧栏中的操作菜单上,选择添加信赖方信任。
在添加信赖方信任向导中,选择开始。
在选择数据源页上,选择导入有关以联机方式或在本地网络上发布的信赖方的数据,然后键入 URL 以查找 federationmetadata.xml 文件。
此联合元数据是在声明设置期间创建的。 使用“配置基于声明的身份验证”向导的最后一页上列出的 URL(在选择完成之前),例如,https://internalcrm.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml。 确保不会出现与证书相关的警告。
选择下一步。
在指定显示名称页面上,键入显示名称,例如 Dynamics 365 声明信赖方,然后选择下一步。
在立即配置多因素身份验证页上,进行选择,然后选择下一步。
在选择颁发授权规则页上,选择允许所有用户访问此信赖方,然后选择下一步。
在准备添加信任页上的标识符选项卡上,验证信赖方标识符是否具有单一标识符,例如:
如果您的标识符与上述不同,请在添加信赖方信任向导中选择上一步,检查联合元数据地址。
选择下一步,然后选择关闭。
在出现的“规则编辑器”中,选择添加规则。 否则,在信赖方信任列表中,右键单击您创建的信赖方对象,选择编辑声明规则,然后选择添加规则。
重要提示
确保选择发布转换规则选项卡。
在声明规则模板列表中,选择传递或筛选传入声明模板,然后选择下一步。
创建以下规则:
声明规则名称:传递 UPN(或描述性内容)
添加以下映射:
传入声明类型:UPN
传递所有声明值
选择完成。
在规则编辑器中,选择添加规则,在声明规则模板列表中,选择传递或筛选传入声明模板,然后选择下一步。
创建以下规则:
声明规则名称:传递主 SID(或描述性内容)
添加以下映射:
传入声明类型:主 SID
传递所有声明值
选择完成。
在规则编辑器中,选择添加规则。
在声明规则模板列表中,选择转换传入声明模板,然后选择下一步。
创建以下规则:
声明规则名称:将 Windows 帐户名称转换为名称(或描述性文本)
添加以下映射:
传入声明类型:Windows 帐户名
传出声明类型:名称
传递所有声明值
选择完成,当创建所有三个规则时,选择确定关闭规则编辑器。
此图显示您创建的三个信赖方信任规则。
您创建的信赖方信任定义 AD FS 联合身份验证服务识别 Dynamics 365 Customer Engagement (on-premises) 信赖方并向其发送声明的方式。
启用窗体身份验证
在 Windows Server 2012 R2 内的 AD FS 中,默认情况下不启用窗体身份验证。
以管理员身份登录到 AD FS 服务器。
打开 AD FS 管理控制台, 选择身份验证策略。
在主身份验证、全局设置、身份验证方法下,选择编辑。
在 Intranet 下,启用(选中)窗体身份验证,然后选择确定。
对 Windows Server 2016 运行一个 cmdlet
如果您的 AD FS 服务器正在运行 Windows Server 2016,请运行以下 Windows PowerShell cmdlet:
Grant-AdfsApplicationPermission -ClientRoleIdentifier "<ClientRoleIdentifier>" -ServerRoleIdentifier <ServerroleIdentified>
ClientRoleIdentifier:您的 Adfsclient 的 ClientId。 例如:e8ab36af-d4be-4833-a38b-4d6cf1cfd525
ServerroleIdentified:您的信赖方的标识符。 例如:https://adventureworkscycle3.crm.crmifd.com/
有关详细信息,请参阅 Grant-AdfsApplicationPermission。