Как получить субъект из сертификата клиента, выданного в качестве претензии в 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);