Я использую аутентификацию на основе сертификатов в ADFS 3.0, и мне нужно получить поле «Тема» из клиентского сертификата, выданного как утверждение, но оно недоступно в качестве входящего утверждения в ADFS.
Когда я включаю аудит, я вижу, что он присутствует в идентификаторе вызывающего абонента как следующий тип утверждения: http://schemas.microsoft.com/2012/12/certificatecontext/field/subject
Но он не выдается в выданном удостоверении и, следовательно, не доступен в качестве входящего утверждения для использования в Правилах утверждений.
Кто-нибудь делал это раньше? Можете ли вы настроить входящие заявки из клиентских сертификатов?
Я решил эту проблему, настроив таблицу [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);