Аутентификация на основе утверждений не связывается с эмитентом STS

Я пытаюсь создать asp.net 4.7 (v4.5 WIF), используя аутентификацию на основе утверждений на нашем внутреннем сервере STS. У нас есть старые рабочие приложения .Net (‹ 4.5), которые могут успешно получать претензии.

Проблема в том, что новое приложение никогда не связывается с сервером STS.


Я предполагаю, что ошибка связана с тем, как я настраиваю федерацию web.config по сравнению со старой. Вот моя последняя нерабочая конфигурация, за которой следует конфигурация, которая работает с использованием старого процесса идентификации (WIF 3.5).

V4.0 WIF web.config (новый проект 4.7)
<system.identityModel>
    <identityConfiguration>
        <audienceUris>
            <add value="urn:jabberwocky" />
        </audienceUris>
        <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <trustedIssuers>
                <add thumbprint="{MyThumbprint}" name="https://{MyIssuerURL}" />
            </trustedIssuers>
        </issuerNameRegistry>
        <certificateValidation certificateValidationMode="None" />
    </identityConfiguration>
</system.identityModel>
<system.identityModel.services>
    <federationConfiguration>
        <cookieHandler requireSsl="false" />
        <wsFederation passiveRedirectEnabled="true"
                        issuer="https://{MySTSUrl}"
                        realm="urn:jabberwocky"
                        reply="http://localhost:44301/"
                        requireHttps="true" />
    </federationConfiguration>
</system.identityModel.services>
V3.5 WIF web.config (старый проект 4.0)
<microsoft.identityModel>
  <service>
    <audienceUris>
      <add value="urn:Jabberwocky" />
    </audienceUris>
    <certificateValidation certificateValidationMode="None" />
    <claimsAuthenticationManager type="{Namespace}.MyAuthenticationManager, {Namespace}" />
    <federatedAuthentication>
      <wsFederation passiveRedirectEnabled="true" 
                    issuer="https://{MySTSUrl}" 
                    requireHttps="true" 
                    realm="urn:Jabberwocky" />
      <cookieHandler requireSsl="true" />
    </federatedAuthentication>
    <issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <trustedIssuers>
        <add thumbprint="{MyThumbprint}" name="https://{MyIssuerURL}" />
      </trustedIssuers>
    </issuerNameRegistry>
  </service>
</microsoft.identityModel>

  • Я знаю, что он не попадает на сервер STS, потому что я использую недопустимое значение audienceUris в качестве теста, и сервер не отклоняет меня, как в старом проекте.
  • Я чувствую, что это как-то связано с отсутствующим значением federatedAuthentication в старом, но не найденным в новом.

person ΩmegaMan    schedule 03.08.2021    source источник