我对声明规则以及它们在 ADFS 中的处理方式有疑问。根据我在阅读 [this] 后的理解(https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-the-claims-engine)声明规则执行分为三个部分 - 初始化(创建输入声明集并将输入声明放置在此处),声明规则中的条件和规则的执行,以及向依赖方发布声明。我想了解的是,如果只有默认声明信任提供者,即 AD 并且用户登录尝试执行 IdP 发起的 SAML,那么在初始阶段,输入声明集是否填充了用户的所有属性广告?在执行过程开始之前,谁或什么决定了输入声明中将出现什么?
问问题
25 次
1 回答
0
在登录时,声明提供程序(在您的情况下为 AD)上的声明规则决定管道中可用的内容。并非所有在 AD 中为用户填充的用户属性都会被读取。例如,如果移动设备被填充,它将不会被读取并映射到某些声明。因此,在验证凭据后,声明中的 AcceptanceTransformRules
登录后 IssuanceAuthorizationRules 用于决定是否发出声明。假设您以至少一个许可和零拒绝通过了这个阶段,那么您将进入依赖方的发布转换规则处理阶段。
当依赖方定义的 issuetransformrules 被执行并且您选择发出使用 AD 属性(例如 mobile)的声明时,您可以选择使用 mobile 属性值发出类似http://myorg.com/mobile的声明。此时使用使用 AD 属性存储的 LDAP 查询。您还可以选择使用在登录时添加的传入声明作为此阶段的输入,以决定向管道添加/发布什么。
处理完所有颁发转换规则后,根据您选择明确传递添加到声明提供者信任级别管道的声明的内容,可能会或可能不会发送到依赖方。
使用https://adfshelp.microsoft.com/ClaimsXray/TokenRequest在 CP 和 RP 信任级别上使用不同的规则组合,以进一步了解。
于 2021-05-20T14:26:06.747 回答