Как получить субъект из сертификата клиента, выданного в качестве претензии в ADFS?

Я использую Аутентификацию на основе сертификатов в ADFS 3.0 и мне нужно получить поле "Тема" из сертификата клиента, выданного в качестве заявки, но он не доступен в качестве входящей заявки в ADFS.

Когда я включаю аудит, я вижу, что он присутствует в удостоверении вызывающего абонента как следующий тип утверждения: http://schemas.microsoft.com/2012/12/certificatecontext/field/subject

Но он не выдается в выданном удостоверении личности и, следовательно, недоступен в качестве входящей заявки для использования в Правилах подачи претензий.

Кто-нибудь делал это раньше? Можете ли вы настроить входящие претензии из клиентских сертификатов?

1 ответ

Я решил эту проблему путем настройки таблицы [AdfsConfiguration].[IdentityServerPolicy].[Policies] в базе данных конфигурации ADFS. Есть запись, которая охватывает входящие претензии. В моей базе данных это идентификатор '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);
Другие вопросы по тегам