Как мне настроить другой класс Saml2SecurityTokenHandler (Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler) для моей пассивной федерации на моем сервере ADFS 2.0?
Прямо сейчас: я пробую следующую конфигурацию:
<configuration>
<configSections>
<section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
...
</configSections>
<microsoft.identityModel>
<service>
<securityTokenHandlers>
<remove type="Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove type="Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add type="ClassLibrary1.Class1, ClassLibrary1" />
</securityTokenHandlers>
</service>
</microsoft.identityModel>
...
</configuration>
Удаление элементов <remove> приводит к исключению при запуске службы Windows ADFS 2.0 (элемент с таким же ключом уже был добавлен), поэтому мы точно знаем, что наша конфигурация загружена успешно. Но при использовании пассивной федерации мы видим, что по-прежнему используется MSISSaml2TokenHandler по умолчанию:
System.IdentityModel.Tokens.SecurityTokenException: MSIS3120: у SubjectConfirmationData неверный получатель. Ожидается 'https://secure.mydomain.com/adfs/ls/'но получил:'https://secure.proxy.mydomain.com/adfs/ls/'. в Microsoft.IdentityServer.Service.Tokens.MSISSaml2TokenHandler.ValidateConfirmationData (Данные подтверждения Saml2SubjectConfirmationData)
При чтении документации msdn (http://msdn.microsoft.com/en-us/library/gg638730.aspx) вроде настроено как надо. Элемент <service> без имени является конфигурацией по умолчанию и должен использоваться в сценариях пассивной федерации.
Пожалуйста, помогите мне! Это последнее препятствие на протяжении нескольких недель работы.