Aplicativo Windows Identity Foundation (WIF) + ADFS 2.0 no modo de pipeline clássico - É possível?

5

Eu tenho um aplicativo de teste de trabalho que usa o SDK do Windows Idendity Foundation e o ADFS 2.0 para autenticação, que é executado no Windows Server 2008 R2, IIS 7.5, modo de pool de aplicativos de pipeline gerenciado integrado.

Meu problema é que o aplicativo "real" que preciso configurar com esse tipo de autenticação só pode ser executado no modo de pool de aplicativos do pipeline gerenciado clássico devido a um código herdado e, quando eu o seleciono, recebo "HttpException (0x80004005)" : Falha ao executar URL "erro".

Alguém tem uma ideia de como resolver este problema?

ATUALIZAÇÃO: Descobri que o link me fornece o erro, mas link funciona.

    
por FourTonMantis 03.06.2011 / 17:01

2 respostas

0

Estou tendo o mesmo problema. Aqui está outra discussão em outro lugar que é semelhante. Você acabou resolvendo seu problema?

link

Os comentários de paullem na parte inferior são úteis.

    
por 07.07.2011 / 19:38
0

Consegui encontrar uma solução para a causa do meu aplicativo que falhou com esse erro.

No meu ambiente virtual, eu estava tentando fazer com que uma instância de extranet do MOSS 2007 fosse autenticada usando um servidor ADFS 2.0 usando o SharePointClaimsMembershipProvider.

A dica que recebi de algumas das outras respostas foi que a identidade das declarações não estava sendo preenchida corretamente, particularmente quando o acesso anônimo era usado. Algumas pessoas forneceram algum código para lidar com situações de acesso anônimo.

No meu caso, eu estava autenticando, mas ainda recebendo esse erro. Então, basicamente, o problema é que o ADFS2.0 não estava fornecendo os tipos de identidade de declarações para os quais meu aplicativo estava configurado.

Você pode ver quais declarações deseja obter para seu aplicativo no arquivo web.config.

 <microsoft.identityModel>
    <service>
      <audienceUris>
        <add value="https://moss2007hv.kor.cmil.mil/" />
      </audienceUris>
      <applicationService>
        <claimTypeRequired>
          <!--Following are the claims offered by STS 'http://adfs.kor.cmil.mil/adfs/services/trust'. Add or uncomment claims that you require by your application and then update the federation metadata of this application.-->
          <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" optional="true" />
          <claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" optional="true" />
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/CommonName" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/EmailAddress" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/Group" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/claims/UPN" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" optional="true" />-->
          <!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" optional="true" />-->
          <!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" optional="true" />-->
        </claimTypeRequired>
      </applicationService>
      <!--Commented out by Federation Utility for SharePoint 3.0-->
      <!--<serviceCertificate><certificateReference x509FindType="FindByThumbprint" findValue="DAC77B6076433468D5E1030F8B66126BF261F2BB" storeLocation="LocalMachine" storeName="My" /></serviceCertificate>-->
      <federatedAuthentication>
        <wsFederation passiveRedirectEnabled="true" issuer="https://adfs.kor.cmil.mil/adfs/ls/" realm="https://moss2007hv.kor.cmil.mil/" requireHttps="true" />
        <cookieHandler requireSsl="true" />
      </federatedAuthentication>
      <serviceCertificate>
        <certificateReference x509FindType="FindByThumbprint" findValue="DAC77B6076433468D5E1030F8B66126BF261F2BB" storeLocation="LocalMachine" storeName="My" />
      </serviceCertificate>
      <issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <trustedIssuers>
          <add thumbprint="FC144B44D2D81BCA7CFB933A8D818236C94E8505" name="http://adfs.kor.cmil.mil/adfs/services/trust" />
        </trustedIssuers>
      </issuerNameRegistry>
    </service>
  </microsoft.identityModel>

No exemplo acima, as declarações de nome e função são esperadas.

Então, voltei ao meu servidor do ADFS e verifiquei que havia criado a confiança da terceira parte confiável corretamente.

Em seguida, clique com o botão direito do mouse na confiança da terceira parte confiável e edite as regras de reivindicação. Clique com o botão direito do mouse na regra existente ou Adicionar uma regra, se não existir. Para este exemplo, notei que não defini o tipo de declaração de saída para nome. Então, eu usei LDAP Attribute: User-Principle-Name e mapeei isso para o nome do tipo de declaração de saída.

Para funções, usei nomes não qualificados de grupos de tokens e os mapeei para a função.

Depois que eu configurei a regra corretamente no meu servidor ADFS para fornecer as declarações que foram solicitadas no meu web.config, o erro desapareceu e as coisas funcionaram, como esperado.

    
por 01.09.2015 / 10:40