O identificador de parte confiante, identificação do cliente e redirecionar a URI deve ser fornecido pelo proprietário do aplicativo e o cliente. No entanto, ainda pode haver uma incompatibilidade entre o que fornece o proprietário e o que é configurado no AD FS. Por exemplo, uma incompatibilidade pode ser causada por um erro de digitação. Verifique se as configurações fornecidas pela correspondência de proprietário aqueles configurados no AD FS. As etapas na página anterior obtém as configurações definidas no AD FS por meio do PowerShell.
Configurações fornecidas pelo proprietário |
Configurações definidas no AD FS |
Contar com o ID de participante |
$rp.Identifier |
O URI de redirecionamento terceira parte |
Uma correspondência de prefixo ou curinga do
|
Identificação do cliente |
$client.ClientId |
O URI de redirecionamento de cliente |
Uma correspondência de prefixo de $client. RedirectUri |
Se corresponder a itens na tabela, além disso Verifique se essas configurações correspondem entre eles aparecem na solicitação de autenticação enviada para AD FS e que estão configurado no AD FS. Tente reproduzir o problema durante o qual você capturar um rastreamento do Fiddler na solicitação de autenticação enviada pelo aplicativo para o AD FS. Examine os parâmetros de solicitação para fazer as verificações a seguir dependendo do tipo de solicitação.
Solicitações OAuth
Uma solicitação OAuth é semelhante ao seguinte:
https://sts.contoso.com/adfs/oauth2/authorize?response_type=code&client_id=ClientID&redirect_uri=https://www.TestApp.com&resource=https://www.TestApp.com
Verifique se os parâmetros de solicitação coincide com as configurações definidas no AD FS.
Parâmetros de solicitação |
Configurações definidas no AD FS |
client_id |
$client.ClientId |
redirect_uri |
Uma correspondência de prefixo de @client_RedirectUri |
O parâmetro "recurso" deve representar uma terceira parte confiável válida no AD FS. Obtenha as informações de terceiros confiável, executando um dos seguintes comandos.
-
Se você usar uma terceira parte confiável convencional, execute o seguinte comando:
Get-AdfsRelyingPartyTrust -Identifier "ValueOfTheResourceParameter" -
Se você usar o recurso de grupo de aplicativos no Windows Server 2016, execute o seguinte comando:
Get-AdfsWebApiApplication "ValueOfTheResourceParameter"
Solicitações WS-Fed
Uma solicitação do WS-Fed é semelhante ao seguinte:
https://fs.contoso.com/adfs/ls/?wa=wsignin1.0&wtrealm=https://claimsweb.contoso.com&wctx=rm=0&id=passive&ru=/&wct=2014-10-21T22:15:42Z
Verifique se os parâmetros de solicitação coincide com as configurações definidas no AD FS:
Parâmetros de solicitação |
Configurações definidas no AD FS |
wtrealm |
$rp.Identifier |
wreply |
Um prefixo correspondência ou curinga do $rp. WSFedEndpoint |
Solicitações SAML
Uma solicitação SAML é semelhante ao seguinte:
https://sts.contoso.com/adfs/ls/?SAMLRequest=EncodedValue&RelayState=cookie:29002348&SigAlg=http://www.w3.org/2000/09/Fxmldsig#rsa-sha1&Signature=Signature
Decodificar o valor do parâmetro SAMLRequest usando a opção "De DeflatedSAML" no Assistente de texto Fiddler. O valor decodificado é semelhante ao seguinte:
<samlp:AuthnRequest ID="ID" Version="2.0" IssueInstant="2017-04-28T01:02:22.664Z" Destination="https://TestClaimProvider-Samlp-Only/adfs/ls" Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified" ForceAuthn="true" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"><Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://fs.contoso.com/adfs/services/trust</Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true" /></samlp:AuthnRequest>
Faça as seguintes verificações dentro do valor decodificado:
-
Verifique se o nome do host no valor de destino coincide com o nome de host do AD FS.
-
Verifique se o valor de Emissor corresponde$rp.Identifier.
Notas adicionais para SAML
-
$rp. SamlEndpoints: Mostra todos os tipos de pontos de extremidade SAML. A resposta do AD FS é enviada para os correspondentes URLs configuradas nos pontos de extremidade. Um ponto de extremidade SAML pode usar redirecionamento, post ou artefato ligações para transmissão de mensagens. Todos esses URLs podem ser configurados no AD FS.
-
$rp. SignedSamlRequestsRequired: Se o valor for definido, a solicitação SAML enviada da terceira parte confiável precisa ser assinado. Os parâmetros "SigAlg" e "Assinatura" precisam estar presente na solicitação.
-
$rp. RequestSigningCertificate: Este é o certificado de autenticação usado para gerar a assinatura na solicitação SAML. Certifique-se de que o certificado é válido e peça ao proprietário do aplicativo para corresponder ao certificado.
O problema é resolvido?