如何从 ADFS 中作为声明颁发的客户端证书中获取主题?

如何从 ADFS 中作为声明颁发的客户端证书中获取主题?

我在 ADFS 3.0 中使用基于证书的身份验证,需要从作为声明颁发的客户端证书中获取主题字段,但它不能作为 ADFS 的传入声明使用。

当我启用审计时,我可以看到它以以下声明类型存在于调用者身份中: http://schemas.microsoft.com/2012/12/certificatecontext/field/subject

但它并没有以已发行身份发行,因此不能作为声明规则中使用的传入声明。

有人做过这个吗?你能调整来自客户端证书的传入声明吗?

答案1

我通过调整 ADFS 配置数据库中的 [AdfsConfiguration].[IdentityServerPolicy].[Policies] 表解决了这个问题。有一条记录涵盖了入站声明。在我的数据库中,它的 ID 是“88EDF726-83FA-E511-80C5-000D3AB14473”,但我不知道它们是常量值还是因部署而异。您可以分辨出它是哪一个,因为它很长并且包含 cert eku 声明。

我对其进行了修改,以包含以下规则:

@RuleTemplate = "PassThroughClaims"
@RuleName = "Pass through certificate Subject claim"
c:[Type == "http://schemas.microsoft.com/2012/12/certificatecontext/field/subject", Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"]
 => issue(claim = c);

相关内容