Předávající strana identifikátor, ID klienta a přesměrování vlastníkem aplikace a klient stanovit identifikátoru URI. Však mohou stále existovat nesoulad mezi co poskytuje vlastník a co jsou konfigurovány ve službě AD FS. Neshoda může být například způsobeno překlep. Zkontrolujte, pokud nastavení podle shody vlastníka jsou konfigurovány ve službě AD FS. Kroky na předchozí stránce získat nastavení konfigurovány ve službě AD FS prostřednictvím prostředí PowerShell.
Nastavení od vlastníka |
Nastavení, které jsou konfigurovány ve službě AD FS |
Předávající strana Identifikátor |
$rp.Identifier |
Přesměrování předávající strana identifikátor URI |
Odpovídající předponu nebo pomocí zástupných znaků
|
ID klienta |
$client.ClientId |
Klient přesměrovaný identifikátor URI |
Odpovídající předponu $client. RedirectUri |
Pokud položky v tabulce odpovídá, dále zkontrolujte, pokud tato nastavení odpovídají mezi vypadají v požadavku na ověření odeslaných do služby AD FS a co jsou konfigurovány ve službě AD FS. Zkuste reprodukovat problém, během které zachytíte trasování Fiddler na požadavek na ověření odesílané aplikací do služby AD FS. Zkontrolujte parametry požadavku provedete následující kontroly v závislosti na typu požadavku.
Požadavky na OAuth
Požadavek na OAuth vypadá následovně:
https://sts.contoso.com/adfs/oauth2/authorize?response_type=code&client_id=ClientID&redirect_uri=https://www.TestApp.com&resource=https://www.TestApp.com
Zkontrolujte, pokud parametry žádost shodovat s nastavením nakonfigurovaným ve službě AD FS.
Parametry požadavku |
Nastavení, které jsou konfigurovány ve službě AD FS |
client_id |
$client.ClientId |
redirect_uri |
Odpovídající předponu @client_RedirectUri |
Parametr "prostředek" by měla představovat platný předávající strany ve službě AD FS. Předávající strana informace získáte spuštěn jeden z následujících příkazů.
-
Pokud použijete běžné předávající stranou, spusťte následující příkaz:
Get-AdfsRelyingPartyTrust -Identifier "ValueOfTheResourceParameter" -
Pokud použijete funkci skupiny aplikace v systému Windows Server 2016, spusťte následující příkaz:
Get-AdfsWebApiApplication "ValueOfTheResourceParameter"
Požadavky na WS-Fed
Požadavek WS-Fed vypadá následovně:
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
Zkontrolujte, pokud parametry žádost shodovat s nastavením nakonfigurovaným ve službě AD FS:
Parametry požadavku |
Nastavení, které jsou konfigurovány ve službě AD FS |
wtrealm |
$rp.Identifier |
wreply |
Shoda předpony nebo zástupný znak odpovídající $rp. WSFedEndpoint |
SAML požadavky
Požadavek na SAML vypadá následovně:
https://sts.contoso.com/adfs/ls/?SAMLRequest=EncodedValue&RelayState=cookie:29002348&SigAlg=http://www.w3.org/2000/09/Fxmldsig#rsa-sha1&Signature=Signature
Hodnota parametru SAMLRequest dekódovat pomocí možnosti "Z DeflatedSAML" v průvodci nástroje Fiddler textu. Dekódovaná hodnota vypadá následovně:
<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>
Proveďte následující kontroly v rámci dekódovanou hodnotu:
-
Zkontrolovat, pokud hostitelský název cílové hodnoty se shoduje s názvem hostitele služby AD FS.
-
Zkontrolujte, zda se shoduje s hodnotou emitenta$rp.Identifier.
Další poznámky pro SAML
-
$rp. SamlEndpoints: Zobrazuje všechny typy koncových bodů SAML. Odpověď ze služby AD FS je odeslána odpovídající adresy URL v koncové body nakonfigurován. Koncový bod SAML pomocí vazby přesměrování, post nebo artefakt pro přenos zpráv. Tyto adresy URL mohou být nakonfigurovány ve službě AD FS.
-
$rp. SignedSamlRequestsRequired: Pokud je nastavena hodnota, SAML odeslána žádost předávající strany třeba podepsat. "SigAlg" a "Podpis" parametry musí být přítomny v požadavku.
-
$rp. RequestSigningCertificate: To je podpisový certifikát, který slouží ke generování podpis na žádosti SAML. Přesvědčte se, zda je certifikát platný a požádejte vlastníka aplikace odpovídající certifikát.
Problém vyřešen?