Внедрение ASP.NET web с WIF & ADFS 1.0

Я разработал решение с ASP.NET front-end, используя WCF-сервисы в качестве back-end. В настоящее время веб-сайт проходит проверку подлинности с использованием ADFS 1.0 (я не имею никакого контроля над реализацией ADFS, но он настроен для моего веб-приложения). Кроме того, невозможно обновить до ADFS 2.0 (по крайней мере, в ближайшее время)

Конфигурация в Web.config для этого следующая:

<httpModules>
   <add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />
</httpModules>

<membership defaultProvider="SingleSignOnMembershipProvider2">
            <providers>
                <add name="SingleSignOnMembershipProvider2" type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fs="https://urltoadfs/adfs/fs/FederationServerService.asmx" />
            </providers>
</membership>

<websso>
            <authenticationrequired />
            <urls>
                <returnurl>https://myapplication/</returnurl>
            </urls>
            <fs>https://urltoadfs/adfs/fs/FederationServerService.asmx</fs>
            <isSharePoint />
</websso>

Это работает нормально, и я могу получить доступ к приложению, используя учетную запись в ADFS. Проблема заключается в том, что мне нужно преобразовать этот идентификатор заявки в WindowsIdentity для доступа к внутренним службам WCF (они используют проверку подлинности Windows с олицетворением / делегированием).

Есть ли способ сделать это с ADFS 1.0? Я пытался использовать WIF (Windows Identity Foundation), но не могу найти какой-либо четкой информации, если возможно использовать его вместе с ADFS 1.0 в качестве STS. Я также исследовал вариант "Приложения на основе токенов Windows NT" ( http://technet.microsoft.com/en-us/library/cc784956(v=ws.10).aspx), но хотел бы избежать изменений в текущей ADFS-реализации, если это возможно.

Чтобы протестировать WIF-опцию, я использовал следующую конфигурацию в Web.config (часть на websso удалена):

<httpModules>           
            <add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>        
            <add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            <add name="ClaimsAuthorizationModule" type="Microsoft.IdentityModel.Web.ClaimsAuthorizationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>


<microsoft.identityModel>
    <service>
          <audienceUris>
            <add value="https://myapplication/" />
          </audienceUris>
    <applicationService>
        <claimTypeRequired>        
          <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" optional="true" />
        </claimTypeRequired>
    </applicationService>         
        <securityTokenHandlers> 
          <add type="Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
            <samlSecurityTokenRequirement mapToWindows="true" useWindowsTokenService="true" /> 
          </add> 
        </securityTokenHandlers>
    <federatedAuthentication>
          <wsFederation passiveRedirectEnabled="true"
                        issuer="https://urltoadfs/adfs/fs/FederationServerService.asmx"
                        realm="https://myapplication/"                      
                        requireHttps="true" />
      </federatedAuthentication>        
    </service>    
</microsoft.identityModel>

У меня также есть "Служба заявок на токены Windows" (c2WTS), запущенная на веб-сервере.

Меня перенаправляют на ADFS-сервер, но я просто получаю общую ошибку с сервера.

0 ответов

Другие вопросы по тегам