Dela via


AD FS OpenID Connect/OAuth-flöden och programscenarier

Gäller för Active Directory Federation Services (AD FS) 2019 och senare

Scenario Genomgång av scenario med exempel OAuth 2.0-flöde/beviljande Klienttyp
enkeltsideapplikation exempel med MSAL Implicit Public
Webbapp som loggar in användare Auktoriseringskod Offentligt, konfidentiellt
Intern app anropar webb-API exempel med MSAL Auktoriseringskod Public
Webbapp anropar webb-API exempel med MSAL Auktoriseringskod Confidential
PKCE-implementering Auktoriseringskod Public
Webb-API anropar ett annat webb-API för (OBO) användarens räkning exempel med MSAL On-behalf-of Webbappen fungerar som konfidentiell
Daemon-appen anropar webb-API Klientautentiseringsuppgifter Confidential
Webbapp anropar webb-API med hjälp av användarautentiseringsuppgifter autentiseringsuppgifter för resursägarens lösenord Offentligt, konfidentiellt
Webbläsarlös app anropar webb-API Enhetskod Offentligt, konfidentiellt

Implicit beviljandeflöde

Note

Microsoft rekommenderar starkt att du migrerar till Microsoft Entra-ID i stället för att uppgradera till en nyare AD FS-version. Mer information om implicit beviljandeflöde i Microsoft Entra-ID finns i implicit beviljandeflöde i Microsofts identitetsplattform.

För ensidesprogram (AngularJS, Ember.js, React.jsoch så vidare) stöder AD FS implicit beviljandeflöde för OAuth 2.0. Det implicita flödet beskrivs i OAuth 2.0-specifikationen. Den främsta fördelen är att appen kan hämta token från AD FS utan att utföra ett utbyte av autentiseringsuppgifter för serverservern. Med det här flödet kan appen logga in på användaren, underhålla sessionen och hämta token till andra webb-API:er i klientens JavaScript-kod. Det finns några viktiga säkerhetsöverväganden att tänka på när du använder det implicita flödet, särskilt kring klienten.

Om du vill använda implicit flöde och AD FS för att lägga till autentisering i JavaScript-appen följer du de allmänna stegen i följande avsnitt.

Protokolldiagram

Följande diagram visar hur hela det implicita inloggningsflödet ser ut. Avsnitten som följer beskriver varje steg mer detaljerat.

Diagram som visar det implicita inloggningsflödet.

Begära en ID-token och åtkomsttoken

Om du först vill logga in användaren i din app kan du skicka en OpenID Connect-autentiseringsbegäran och hämta en id_token- och åtkomsttoken från AD FS-slutpunkten.

// Line breaks for legibility only

https://adfs.contoso.com/adfs/oauth2/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=id_token+token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=openid
&response_mode=fragment
&state=12345
Parameter Required/optional Description
client_id required Det program-ID (klient)-ID som AD FS tilldelade till din app.
response_type required Måste innehålla id_token för OpenID Connect-inloggning. Den kan också innehålla response_type token. Genom att använda token här kan din app ta emot en åtkomsttoken omedelbart från auktoriseringsslutpunkten utan att behöva göra en andra begäran till tokenslutpunkten.
redirect_uri required Appens redirect_uri, där autentiseringssvar kan skickas och tas emot av din app. Den måste exakt matcha en av de redirect_uris som du konfigurerade i AD FS.
nonce required Ett värde som inkluderas i begäran, genererat av appen, som ska finnas med i den resulterande id_token som ett påstående. Appen kan sedan verifiera det här värdet för att minimera tokenreprisattacker. Värdet är vanligtvis en slumpmässig unik sträng som kan användas för att identifiera begärans ursprung. Krävs endast när en id_token begärs.
scope optional En blankstegsavgränsad lista med omfattningar. För OpenID Connect måste det innehålla omfånget openid.
resource optional URL:en för webb-API:et.
Obs! Om du använder MSAL-klientbiblioteket skickas inte resursparametern. I stället skickas resurs-URL:en som en del av omfångsparametern: scope = [resource url]//[scope values, for example, openid]
Om resursen inte skickas hit eller i omfånget, använder AD FS standardresursen urn: microsoft:userinfo. userinfo-resursprinciper som MFA, utfärdande eller auktoriseringsprinciper kan inte anpassas.
response_mode optional Anger vilken metod som ska användas för att skicka tillbaka den resulterande token till din app. Standardinställningen är fragment.
state optional Ett värde som ingår i begäran som också ska returneras i tokensvaret. Det kan vara en sträng med valfritt innehåll som du vill. Ett slumpmässigt genererat unikt värde används vanligtvis för att förhindra förfalskningsattacker mellan webbplatser. Tillståndet används också för att koda information om användarens tillstånd i appen innan autentiseringsbegäran inträffade, till exempel sidan eller vyn de var på.
prompt optional Anger vilken typ av användarinteraktion som krävs. De enda giltiga värdena för tillfället är inloggning och inga.
- prompt=login tvingar användaren att ange sina autentiseringsuppgifter för den begäran och negera enkel inloggning.
-  prompt=none är motsatsen – det säkerställer att användaren inte visas med någon interaktiv fråga. Om begäran inte kan slutföras tyst via enkel inloggning returnerar AD FS ett interaction_required fel.
login_hint optional Kan användas för att i förväg fylla i fältet användarnamn/e-postadress på inloggningssidan för användaren, om du känner till användarnamnet i förväg. Ofta använder appar den här parametern vid omauktorisering, efter att redan ha hämtat användarnamnet från en tidigare inloggning med hjälp av anspråket upn från id_token.
domain_hint optional Om det här värdet ingår utelämnas den domänbaserade identifieringsprocessen som användaren går igenom på inloggningssidan, vilket leder till en lite mer strömlinjeformad användarupplevelse.

Nu uppmanas användaren att ange sina autentiseringsuppgifter och slutföra autentiseringen. När användaren har autentiserats returnerar AD FS-auktoriseringsslutpunkten ett svar till din app på den angivna redirect_uri med hjälp av den metod som anges i parametern response_mode.

Lyckat svar

Ett lyckat svar, när response_mode=fragment and response_type=id_token+token det används, ser ut så här:

// Line breaks for legibility only

GET https://localhost/myapp/#
access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZEstZnl0aEV...
&token_type=Bearer
&expires_in=3599
&scope=openid
&id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZstZnl0aEV1Q...
&state=12345
Parameter Description
access_token Ingår om response_type innehåller token.
token_type Ingår om response_type innehåller token. Är alltid Bearer.
expires_in Ingår om response_type innehåller token. Anger hur många sekunder token är giltig för cachelagring.
scope Anger omfången som access_token är giltigt för.
id_token Ingår om response_type innehåller id_token. En JSON-webbtokensignatur (JWT) som är signerad. Appen kan avkoda segmenten för den här token för att begära information om användaren som loggade in. Appen kan cachelagrat värdena och visa dem, men den bör inte förlita sig på dem för auktorisering eller säkerhetsgränser.
state Om en tillståndsparameter ingår i begäran bör samma värde visas i svaret. Appen bör kontrollera att tillståndsvärdena i begäran och svaret är identiska.

Uppdatera tokenar

Den implicita tilldelningen ger inte uppdateringstokener. Både id_tokens och access_tokens upphör att gälla efter en kort tidsperiod, så din app måste vara beredd att uppdatera dessa token regelbundet. Om du vill uppdatera någon av tokentyperna kan du utföra samma dolda iframe-begäran som i föregående avsnitt med hjälp av parametern prompt=none för att styra identitetsplattformens beteende. Om du vill ta emot en ny id_token ska du använda response_type=id_token.

Beviljandeflöde för auktoriseringskod

Note

Microsoft rekommenderar starkt att du migrerar till Microsoft Entra-ID i stället för att uppgradera till en nyare AD FS-version. Mer information om auktoriseringskodens beviljandeflöde i Microsoft Entra ID finns i beviljandeflöde för auktoriseringskod i Microsoft identity platform.

Du kan använda OAuth 2.0-auktoriseringskoden i webbappar för att få åtkomst till skyddade resurser som webb-API:er. OAuth 2.0-auktoriseringskodflödet beskrivs i avsnitt 4.1 i OAuth 2.0-specifikationen. Den används för att utföra autentisering och auktorisering i de flesta apptyper, inklusive webbappar och inbyggda appar. Flödet gör det möjligt för appar att på ett säkert sätt hämta access_tokens som kan användas för att komma åt resurser som litar på AD FS.

Protokolldiagram

På hög nivå ser autentiseringsflödet för ett internt program ut ungefär så här:

Diagram över flödet för beviljande av auktoriseringskod.

Begära en auktoriseringskod

Auktoriseringskodflödet börjar med att klienten dirigerar användaren till slutpunkten /authorize. I den här begäran anger klienten de behörigheter som krävs för att hämta från användaren:

// Line breaks for legibility only

https://adfs.contoso.com/adfs/oauth2/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&resource=https://webapi.com/
&scope=openid
&state=12345
Parameter Required/optional Description
client_id required Det program-ID (klient)-ID som AD FS tilldelade till din app.
response_type required Måste innehålla kod för auktoriseringskodflödet.
redirect_uri required Appens redirect_uri , där autentiseringssvar kan skickas och tas emot av din app. Den måste exakt matcha en av de redirect_uris som du registrerade i AD FS för klienten.
resource optional URL:en för webb-API:et.
Obs! Om du använder MSAL-klientbiblioteket skickas inte resursparametern. I stället skickas resurs-URL:en som en del av omfångsparametern: scope = [resource url]//[scope values, for example, openid]
Om resursen inte skickas hit eller i omfånget, använder AD FS standardresursen urn: microsoft:userinfo. userinfo-resursprinciper som MFA, utfärdande eller auktoriseringsprinciper kan inte anpassas.
scope optional En blankstegsavgränsad lista med omfattningar.
response_mode optional Anger vilken metod som ska användas för att skicka tillbaka den resulterande token till din app. Kan vara någon av följande metoder:
– fråga
– fragment
– form_post
query tillhandahåller koden som en frågesträngsparameter på omdirigerings-URI:n. Om du begär koden kan du använda frågor, fragment eller form_post.  form_post kör en POST som innehåller koden till din omdirigerings-URI.
state optional Ett värde som ingår i begäran som också ska returneras i tokensvaret. Det kan vara en sträng med valfritt innehåll som du vill. Ett slumpmässigt genererat unikt värde används vanligtvis för att förhindra förfalskningsattacker mellan webbplatser. Värdet kan också koda information om användarens tillstånd i appen innan autentiseringsbegäran inträffade, till exempel sidan eller vyn de var på.
prompt optional Anger vilken typ av användarinteraktion som krävs. De enda giltiga värdena för tillfället är inloggning och inga.
- prompt=login tvingar användaren att ange sina autentiseringsuppgifter för den begäran och negera enkel inloggning.
-  prompt=none är motsatsen – det säkerställer att användaren inte visas med någon interaktiv fråga. Om begäran inte kan slutföras tyst via enkel inloggning returnerar AD FS ett interaction_required fel.
login_hint optional Kan användas för att i förväg fylla i fältet användarnamn/e-postadress på inloggningssidan för användaren, om du känner till användarnamnet i förväg. Ofta använder appar den här parametern under återautentisering, efter att redan ha extraherat användarnamnet från en tidigare inloggning med hjälp av anspråket från upn via id_token.
domain_hint optional Om det här värdet ingår hoppar den domänbaserade upptäcktsprocessen, som användaren går igenom på inloggningssidan, över, vilket leder till en något mer strömlinjeformad användarupplevelse.
code_challenge_method optional Metoden som används för att koda code_verifier för parametern code_challenge. Kan vara något av följande värden:
- plain
– S256
Om det här värdet undantas antas code_challenge vara klartext om code_challenge det ingår. AD FS stöder både plain och S256. Mer information finns i PKCE RFC.
code_challenge optional Används för att säkra auktoriseringskodsbidrag via Proof Key for Code Exchange (PKCE) från en inhemsk klient. Krävs om code_challenge_method ingår. Mer information finns i PKCE RFC.

Nu uppmanas användaren att ange sina autentiseringsuppgifter och slutföra autentiseringen. När användaren har autentiserats returnerar AD FS ett svar till din app på angiven redirect_uri, med hjälp av den metod som anges i parametern response_mode .

Lyckat svar

Ett lyckat svar, när response_mode=query används, ser ut så här:

GET https://adfs.contoso.com/common/oauth2/nativeclient?
code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&state=12345
Parameter Description
code Det authorization_code som appen begärde. Appen kan använda auktoriseringskoden för att begära en åtkomsttoken för målresursen. authorization_code är kortlivade. De upphör vanligtvis att gälla efter cirka 10 minuter.
state Om en state parameter ingår i begäran bör samma värde visas i svaret. Appen bör kontrollera att tillståndsvärdena i begäran och svaret är identiska.

Begära en åtkomsttoken

Nu när du har skaffat en authorization_code och har fått tillstånd från användaren kan du lösa in koden för en access_token till önskad resurs. Lös in koden genom att skicka en POST-begäran till slutpunkten /token:

// Line breaks for legibility only

POST /adfs/oauth2/token HTTP/1.1
Host: https://adfs.contoso.com/
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh    // NOTE: Only required for confidential clients (web apps)
Parameter Required/optional Description
client_id required Det program-ID (klient)-ID som AD FS tilldelade till din app.
grant_type required Måste vara authorization_code för auktoriseringskodflödet.
code required Det authorization_code som du fick i den första delen av processflödet.
redirect_uri required Samma redirect_uri värde som användes för att hämta authorization_code.
client_secret krävs för webbappar Den programhemlighet som du skapade under appregistreringen i AD FS. Du bör inte använda programhemligheten i en intern app eftersom client_secrets inte kan lagras på ett tillförlitligt sätt på enheter. Den här parametern krävs för webbappar och webb-API:er, som har möjlighet att lagra client_secret på ett säkert sätt på serversidan. Klienthemligheten måste vara URL-kodad innan den skickas. Dessa appar kan också använda nyckelbaserad autentisering genom att signera en JWT och lägga till den som en client_assertion parameter.
code_verifier optional Samma code_verifier som användes för att hämta auktorisationskod. Krävs om PKCE användes i begäran om beviljande av auktoriseringskod. Mer information finns i PKCE RFC. Det här alternativet gäller för AD FS 2019 och senare.

Lyckat svar

Ett lyckat tokensvar ser ut så här:

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "token_type": "Bearer",
    "expires_in": 3599,
    "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4...",
    "refresh_token_expires_in": 28800,
    "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctOD...",
}
Parameter Description
access_token Den begärda åtkomsttoken. Appen kan använda den här token för att autentisera till den skyddade resursen (webb-API).
token_type Anger värdet för tokentyp. Den enda typ som AD FS stöder är Bearer.
expires_in Hur länge åtkomsttoken är giltig (i sekunder).
refresh_token En OAuth 2.0-uppfräschningskod. Appen kan använda den här token för att hämta fler åtkomsttoken när den aktuella åtkomsttoken upphör att gälla. Refresh_tokens är långlivade och kan användas för att behålla åtkomsten till resurser under längre tidsperioder.
refresh_token_expires_in Hur länge uppdateringstoken är giltig (i sekunder).
id_token En JWT. Appen kan avkoda segmenten för den här token för att begära information om användaren som loggade in. Appen kan cachelagrat värdena och visa dem, men den bör inte förlita sig på dem för auktorisering eller säkerhetsgränser.

Använda åtkomsttoken

GET /v1.0/me/messages
Host: https://webapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...

Uppdatera flödet för tokenbidrag

Access_tokens är kortvariga och du måste uppdatera dem när de upphör att gälla för att fortsätta komma åt resurser. Du kan göra det genom att skicka en annan POST-begäran till /token slutpunkten, den här gången genom att ange refresh_token i stället för koden. Uppdateringstoken är giltiga för alla behörigheter som klienten redan har tagit emot åtkomsttoken för.

Uppdateringstoken har inte angivna livslängder. Normalt är livslängden för uppdateringstoken relativt lång. I vissa fall upphör dock uppdateringstoken att gälla, återkallas eller saknar tillräcklig behörighet för den önskade åtgärden. Programmet måste förvänta sig och hantera fel som returneras av slutpunkten för tokenutfärdning korrekt.

Även om uppdateringstoken inte återkallas när de används för att hämta nya åtkomsttoken förväntas du ta bort den gamla uppdateringstoken. OAuth 2.0-specifikationen säger: "Auktoriseringsservern kan utfärda en ny uppdateringstoken, i vilket fall klienten MÅSTE ta bort den gamla uppdateringstoken och ersätta den med den nya uppdateringstoken. Auktoriseringsservern kan återkalla den gamla uppdateringstoken efter att ha utfärdat en ny uppdateringstoken till klienten." AD FS utfärdar uppdateringstoken när den nya uppdateringstokens livslängd är längre än tidigare livslängd för uppdateringstoken. Mer information om livslängden för AD FS-uppdateringstoken finns i inställningarna för enkel inloggning med AD FS.

// Line breaks for legibility only

POST /adfs/oauth2/token HTTP/1.1
Host: https://adfs.contoso.com
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
&grant_type=refresh_token
&client_secret=JqQX2PNo9bpM0uEihUPzyrh      // NOTE: Only required for confidential clients (web apps)
Parameter Required/optional Description
client_id required Det program-ID (klient)-ID som AD FS tilldelade till din app.
grant_type required Måste vara refresh_token för den här delen av auktoriseringskodflödet.
resource optional URL:en för webb-API:et.
Obs! Om du använder MSAL-klientbiblioteket skickas inte resursparametern. I stället skickas resurs-URL:en som en del av omfångsparametern: scope = [resource url]//[scope values, for example, openid]
Om resursen inte skickas hit eller i omfånget, använder AD FS standardresursen urn: microsoft:userinfo. userinfo-resursprinciper som MFA, utfärdande eller auktoriseringsprinciper kan inte anpassas.
scope optional En blankstegsavgränsad lista med omfattningar.
refresh_token required Den "refresh_token" som du skaffade i den andra delen av flödet.
client_secret krävs för webbappar Programhemligheten som du skapade i appregistreringsportalen för din app. Den bör inte användas i en intern app eftersom client_secrets inte kan lagras på ett tillförlitligt sätt på enheter. Den här parametern krävs för webbappar och webb-API:er, som har möjlighet att lagra client_secret på ett säkert sätt på serversidan. Dessa appar kan också använda nyckelbaserad autentisering genom att signera en JWT och lägga till den som en client_assertion parameter.

Lyckat svar

Ett lyckat tokensvar ser ut så här:

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "token_type": "Bearer",
    "expires_in": 3599,
    "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4...",
    "refresh_token_expires_in": 28800,
    "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctOD...",
}
Parameter Description
access_token Den begärda åtkomsttoken. Appen kan använda den här token för att autentisera till den skyddade resursen, till exempel ett webb-API.
token_type Anger värdet för tokentyp. Den enda typ som AD FS stöder är Bearer.
expires_in Hur länge åtkomsttoken är giltig (i sekunder).
scope De omfång som access_token är giltigt för.
refresh_token En OAuth 2.0-uppfräschningskod. Appen kan använda den här token för att hämta fler åtkomsttoken när den aktuella åtkomsttoken upphör att gälla. Refresh_tokens är långlivade och kan användas för att behålla åtkomsten till resurser under längre tidsperioder.
refresh_token_expires_in Hur länge uppdateringstoken är giltig (i sekunder).
id_token En JWT. Appen kan avkoda segmenten för den här token för att begära information om användaren som loggade in. Appen kan cachelagrat värdena och visa dem, men den bör inte förlita sig på dem för auktorisering eller säkerhetsgränser.

Stöd för Proof Key for Code Exchange (PKCE) för OAuth

Offentliga OAuth-klienter som använder auktoriseringskodflödet är sårbara för avlyssningsattacker på auktoriseringskoder, enligt beskrivningen i RFC 7636. För att undvika dessa attacker stöder AD FS från och med Windows Server 2019 proof key for code exchange (PKCE) för OAuth-auktoriseringskodens beviljandeflöde.

PKCE-supportspecifikationen lägger till fler parametrar i begäranden om OAuth 2.0-auktorisering och åtkomsttoken. Följande diagram visar en översikt över PKCE-processen när en klient kontaktar AD FS i Windows Server 2019.

diagram över PKCE-relationen mellan klienten och AD FS 2019.

I avsnittet A skapar och registrerar klienten en hemlighet med namnet code_verifier och härleder en transformerad version av hemligheten med namnet t(code_verifier), även kallad code_challenge. Klienten skickar sedan hemligheten i OAuth 2.0-auktoriseringsbegäran tillsammans med t_m transformeringsmetoden.

I avsnittet B svarar auktoriseringsslutpunkten som vanligt, men registrerar t(code_verifier) hemligheten och transformeringsmetoden.

I avsnittet C skickar klienten auktoriseringskoden i begäran om åtkomsttoken som vanligt, men innehåller hemligheten code_verifier som genereras i avsnitt A.

I avsnittet D omvandlar AD FS hemligheten code_verifieroch jämför den med hemligheten t(code_verifier) från avsnitt B. Om deras värden inte är lika med nekar AD FS åtkomst.

Så här väljer du flera autentiseringsprovidrar för samma regelprincip i Windows Server 2019

AD FS har redan stöd för att utlösa extra autentisering baserat på en anspråksregelprincip (RP). Du kan ange dessa principer för en viss RP eller på global nivå. Du kan ange en extra autentiseringsprincip för en viss RP genom att öppna PowerShell som administratör och köra cmdleten Set-AdfsRelyingPartyTrust genom att antingen skicka parametern AdditionalAuthenticationRules eller AdditionalAuthenticationRulesFile . Om du vill ange det globalt kan en administratör använda cmdleten Set-AdfsAdditionalAuthenticationRule. Genom att ange extra principer kan du använda mer än en autentiseringsprovider för samma program.

Anspråksregler ger möjlighet att välja autentiseringsprovidern för ytterligare autentisering, vilket visar sig vara fördelaktigt i situationer där kunder byter mellan leverantörer eller kräver en distinkt leverantör för vissa program. Från och med Windows Server 2019 kan du använda anspråksregler för att bestämma vilken annan autentiseringsprovider som ska anropas för extra autentisering. Den här funktionen är användbar i två scenarier:

  • Användarna övergår från en autentiseringsprovider till en annan. När du registrerar användare till en nyare autentiseringsprovider kan de använda grupper för att styra vilken extra autentiseringsprovider som tjänsten använder.

  • Användare behöver en specifik extra autentiseringsprovider för vissa program men måste också använda en annan metod för andra program.

Du kan konfigurera de här inställningarna genom att köra följande kommando från andra autentiseringsprinciper:

Set-AdfsAdditionalAuthenticationRule -AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", value = "http://schemas.microsoft.com/claims/multipleauthn" );' 

Om du vill konfigurera denna regel måste du utfärda anspråket http://schemas.microsoft.com/claims/authnmethodsproviders från andra autentiseringspolicyer. Värdet för det här anspråket ska vara variabeln Namn för autentiseringsprovidern.

Du kan också ändra den här regelkonfigurationen för att hjälpa användare att övergå från en autentiseringsprovider till en annan. Anta till exempel att du vill ändra en grupp som du hanterar för att använda Microsoft Entra multifaktorautentisering (MFA) och en grupp för att använda certifikat som en extra autentiseringsprovider.

Om du vill spåra hur många personer som registrerar sig för MFA och certifikatautentisering kan du köra ett kommando som det här, med de värden som ersätts med värden som är relevanta för din organisation:

'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", Value = "http://schemas.microsoft.com/claims/multipleauthn" ); 

 c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "S-1-5-21-608905689-872870963-3921916988-12345"] => issue(Type = "http://schemas.microsoft.com/claims/authnmethodsproviders", Value = "AzureMfaAuthentication"); 

not exists([Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value=="S-1-5-21-608905689-872870963-3921916988-12345"]) => issue(Type = "http://schemas.microsoft.com/claims/authnmethodsproviders", Value = "CertificateAuthentication");’ 

Sedan kan du ange det första programmet, kallat AppA, för att använda MFA som en extra autentiseringsprovider genom att köra det här kommandot:

Set-AdfsRelyingPartyTrust -TargetName AppA -AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", Value = "http://schemas.microsoft.com/claims/multipleauthn" ); 

c:[] => issue(Type = "http://schemas.microsoft.com/claims/authnmethodsproviders", Value = "AzureMfaAuthentication");' 

Slutligen kan du ange den andra appen, kallad AppB, för att använda certifikat som en extra autentiseringsprovider genom att köra det här kommandot:

Set-AdfsRelyingPartyTrust -TargetName AppB -AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", Value = "http://schemas.microsoft.com/claims/multipleauthn" ); 

c:[] => issue(Type = "http://schemas.microsoft.com/claims/authnmethodsproviders", Value = "CertificateAuthentication");' 

Administratörer kan också skapa regler för att tillåta mer än en extra autentiseringsprovider. I det här fallet visar AD FS de utfärdade autentiseringsmetodprovidrar och en användare kan välja någon av dem. Om du vill tillåta flera extra autentiseringsprovidrar bör de utfärda flera anspråk med hjälp av värdet http://schemas.microsoft.com/claims/authnmethodsproviders.

Om anspråksutvärderingen inte returnerar någon av autentiseringsprovidrar rullar AD FS tillbaka och visar en lista som visar alla extra autentiseringsproviders som konfigurerats av administratören på AD FS. Användaren måste sedan manuellt välja lämplig autentiseringsprovider.

Om din föredragna autentiseringsprovider inte finns med i listan kan du köra följande cmdlet för att visa alla leverantörer som stöds:

(Get-AdfsGlobalAuthenticationPolicy).AdditionalAuthenticationProvider

Värdet som du använder för anspråket http://schemas.microsoft.com/claims/authnmethodsproviders ska vara ett av providernamnen som returneras av listan över leverantörer som AD FS returnerade.

AD FS stöder inte att utlösa en specifik extra autentiseringsleverantör när RP använder -principer för åtkomstkontroll i AD FS Windows Server 2016. När du flyttar ett program från en åtkomstkontrollprincip kopierar AD FS motsvarande princip från Åtkomstkontrollprincip till AdditionalAuthenticationRules och IssuanceAuthorizationRules. Om en administratör vill använda en specifik autentiseringsprovider bör de sluta använda principen för åtkomstkontroll och i stället ändra AdditionalAuthenticationRules.

On-Behalf-Of flow

Note

Microsoft rekommenderar starkt att du migrerar till Microsoft Entra-ID i stället för att uppgradera till en nyare AD FS-version. Mer information om on-Behalf-Of-flöde i Microsoft Entra-ID finns i On-Behalf-Of-flöde i Microsoft identity platform.

OAuth 2.0 On-Behalf-Of flow (OBO) hanterar användningsfallet där ett program anropar en tjänst/webb-API, som i sin tur måste anropa en annan tjänst/webb-API. Tanken är att sprida den delegerade användaridentiteten och behörigheterna via begärandekedjan. För att mellannivåtjänsten ska kunna göra autentiserade begäranden till den underordnade tjänsten måste den skydda en åtkomsttoken från AD FS för användarens räkning.

Protokolldiagram

Anta att en användare autentiseras i ett program med hjälp av OAuth 2.0-auktoriseringskodens beviljandeflöde som beskrivs i föregående avsnitt. I det här läget har programmet en åtkomsttoken för API A (token A) med användarens anspråk och medgivande för att få åtkomst till webb-API:et på mellannivå (API A). Säkerställ att klienten begär användarimitation urval i token. Api A måste nu göra en autentiserad begäran till det underordnade webb-API:et (API B).

Stegen som följer utgör OBO-flödet och förklaras med hjälp av följande diagram.

Diagram som visar On-Behalf-Of flöde.

  1. Klientprogrammet skickar en begäran till API A med token A. (När du konfigurerar OBO-flödet i AD FS kontrollerar du att omfånget user_impersonation är valt och att klienterna begär user_impersonation omfång i begäran.)
  2. API A autentiserar till AD FS-tokenutfärdarslutpunkten och begär en token för åtkomst till API B. (När du konfigurerar det här flödet i AD FS kontrollerar du att API A också är registrerat som ett serverprogram med ett klient-ID som har samma värde som resurs-ID:t i API A.)
  3. AD FS-tokenutfärdarslutpunkten validerar API A:s autentiseringsuppgifter med token A och utfärdar åtkomsttoken för API B (token B).
  4. Token B anges i auktoriseringshuvudet för begäran till API B.
  5. Data från den skyddade resursen returneras av API B.

Begäran om tjänst-till-tjänst-åtkomsttoken

Om du vill begära en åtkomsttoken skapar du en HTTP POST till AD FS-tokenslutpunkten med parametrarna som beskrivs i följande avsnitt.

Första fallet: Åtkomsttokenbegäran med en delad hemlighet

För en delad hemlighet innehåller en begäran om tjänst-till-tjänst-åtkomsttoken följande parametrar:

Parameter Required/optional Description
grant_type required Typ av tokenbegäran. För en begäran med en JWT måste värdet vara urn:ietf:params:oauth:grant-type:jwt-bearer.
client_id required Det klient-ID som du konfigurerar när du registrerar ditt första webb-API som en serverapp (mellannivåapp). Det bör vara samma som resurs-ID:t som användes i den första delen, det vill sa url:en för det första webb-API:et.
client_secret required Den programhemlighet som du skapade under registreringen av serverappen i AD FS.
assertion required Värdet för den token som används i begäran.
requested_token_use required Anger hur begäran ska bearbetas. I OBO-flödet måste värdet anges till on_behalf_of.
resource required Resurs-ID:t som angavs när du registrerade det första webb-API:et som serverapp (mellannivåapp). Resurs-ID:t ska vara URL:en för det andra webb-API:ets appanrop på mellannivå för klientens räkning.
scope optional En blankstegsavgränsad lista över omfång för tokenbegäran.
Example

Följande HTTP POST begär en åtkomsttoken och en uppdateringstoken.

// Line breaks for legibility only

POST /adfs/oauth2/token HTTP/1.1
Host: adfs.contoso.com
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&client_id=https://webapi.com/
&client_secret=BYyVnAt56JpLwUcyo47XODd
&assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm…
&resource=https://secondwebapi.com/
&requested_token_use=on_behalf_of
&scope=openid

Andra fallet: Begäran om åtkomsttoken med ett certifikat

En tjänst-till-tjänst-åtkomsttokenbegäran med ett certifikat innehåller följande parametrar:

Parameter Required/optional Description
grant_type required Typ av tokenbegäran. För en begäran med en JWT måste värdet vara urn:ietf:params:oauth:grant-type:jwt-bearer.
client_id required Det klient-ID som du konfigurerar när du registrerar ditt första webb-API som en serverapp (mellannivåapp). Det bör vara samma som resurs-ID:t som användes i den första delen, det vill sa url:en för det första webb-API:et.
client_assertion_type required Värdet måste vara urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
client_assertion required En försäkran (en JWT) som du behöver för att skapa och signera med certifikatet som du registrerade som autentiseringsuppgifter för ditt program.
assertion required Värdet för den token som används i begäran.
requested_token_use required Anger hur begäran ska bearbetas. I OBO-flödet måste värdet anges till on_behalf_of.
resource required Resurs-ID:t som angavs när du registrerade det första webb-API:et som serverapp (mellannivåapp). Resurs-ID:t ska vara URL:en för det andra webb-API:ets appanrop på mellannivå för klientens räkning.
scope optional En blankstegsavgränsad lista över omfång för tokenbegäran.

Observera att parametrarna är nästan desamma. Det här exemplet liknar begäran av delad hemlighet, förutom att parametern client_secret ersätts av två parametrar: client_assertion_type och client_assertion.

Example

Följande HTTP POST begär en åtkomsttoken för webb-API:et med ett certifikat.

// Line breaks for legibility only

POST /adfs/oauth2/token HTTP/1.1
Host: https://adfs.contoso.com
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
&client_id= https://webapi.com/
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNS…
&resource=https://secondwebapi.com/
&requested_token_use=on_behalf_of
&scope= openid

Åtkomsttokensvar för tjänst-till-tjänst

Ett lyckat svar är ett JSON OAuth 2.0-svar som har följande parametrar.

Parameter Description
token_type Anger värdet för tokentyp. Den enda typ som AD FS stöder är Bearer.
scope Omfånget för åtkomst som beviljas i token.
expires_in Hur lång tid, i sekunder, som åtkomsttoken är giltig.
access_token Den begärda åtkomsttoken. Den anropande tjänsten kan använda den här token för att autentisera till den mottagande tjänsten.
id_token En JWT. Appen kan avkoda segmenten för den här token för att begära information om användaren som loggade in. Appen kan cachelagrat värdena och visa dem, men den bör inte förlita sig på dem för auktorisering eller säkerhetsgränser.
refresh_token Uppdateringstoken för den begärda åtkomsttoken. Den anropande tjänsten kan använda den här token för att begära en annan åtkomsttoken när den aktuella åtkomsttoken upphör att gälla.
Refresh_token_expires_in Antal sekunder som uppdateringstoken är giltig.

Exempel på lyckat svar

I följande exempel visas ett lyckat svar på en begäran om en åtkomsttoken för webb-API:et.

{
  "token_type": "Bearer",
  "scope": openid,
  "expires_in": 3269,
  "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFCbmZpRy1t"
  "id_token": "aWRfdG9rZW49ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOa"
  "refresh_token": "OAQABAAAAAABnfiG…"
  "refresh_token_expires_in": 28800,
}

Använda åtkomsttoken för att komma åt den skyddade resursen

Nu kan mellannivåtjänsten använda den token som hämtades i föregående svarsexempel för att göra autentiserade begäranden till det underordnade webb-API:et. Ange token i auktoriseringshuvudet.

Example

GET /v1.0/me HTTP/1.1
Host: https://secondwebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFCbmZpRy1tQ…

Beviljandeflöde för klientautentiseringsuppgifter

Note

Microsoft rekommenderar starkt att du migrerar till Microsoft Entra-ID i stället för att uppgradera till en nyare AD FS-version. Mer information om beviljandeflöde för klientautentiseringsuppgifter i Microsoft Entra-ID finns i Flöde för beviljande av klientautentiseringsuppgifter i Microsofts identitetsplattform.

Du kan använda OAuth 2.0-klientautentiseringsuppgifterna som anges i RFC 6749 för att få åtkomst till webbaserade resurser med hjälp av identiteten för ett program. Den här typen av beviljande används ofta för server-till-server-interaktioner som måste köras i bakgrunden, utan omedelbar interaktion med en användare. Dessa typer av program kallas ofta för daemoner eller tjänstkonton.

Med OAuth 2.0-klientens autentiseringsuppgifter kan en webbtjänst (konfidentiell klient) använda sina egna autentiseringsuppgifter, i stället för att personifiera en användare, för att autentisera när en annan webbtjänst anropas. I det här scenariot är klienten vanligtvis en mellannivåwebbtjänst, en daemontjänst eller en webbplats. För en högre säkerhetsnivå tillåter AD FS även att den anropande tjänsten använder ett certifikat (i stället för en delad hemlighet) som autentiseringsuppgifter.

Protokolldiagram

Följande diagram visar flödet för beviljande av klientautentiseringsuppgifter.

Diagram över flödet för klientautentiseringsuppgifter.

Begära en token

Om du vill hämta en token med hjälp av beviljandet av klientautentiseringsuppgifter skickar du en POST begäran till AD FS-slutpunkten /token, enligt följande avsnitt.

Första fallet: Åtkomsttokenbegäran med en delad hemlighet

POST /adfs/oauth2/token HTTP/1.1
// Line breaks for legibility only

Host: https://adfs.contoso.com
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials
Parameter Required/optional Description
client_id required Det program-ID (klient)-ID som AD FS tilldelade till din app.
scope optional En utrymmesavgränsad lista över omfång som du vill att användaren ska samtycka till.
client_secret required Klienthemligheten som du genererade för din app i appregistreringsportalen. Klienthemligheten måste vara URL-kodad innan den skickas.
grant_type required Måste anges till client_credentials.

Andra fallet: Begäran om åtkomsttoken med ett certifikat

POST /adfs/oauth2/token HTTP/1.1

// Line breaks for legibility only

Host: https://adfs.contoso.com
Content-Type: application/x-www-form-urlencoded

&client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNScUtqRlBuZDdSRnd2d1pJMCJ9.eyJ{a lot of characters here}M8U3bSUKKJDEg
&grant_type=client_credentials
Parameter Required/optional Description
client_assertion_type required Värdet måste anges till urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
client_assertion required En försäkran (en JWT) som du behöver för att skapa och signera med certifikatet som du registrerade som autentiseringsuppgifter för ditt program.
grant_type required Måste anges till client_credentials.
client_id optional Det program-ID (klient)-ID som AD FS tilldelade till din app. Det är en del av client_assertion, så det krävs inte här.
scope optional En utrymmesavgränsad lista över omfång som du vill att användaren ska samtycka till.

Använd en token

Nu när du har skaffat en token använder du token för att göra begäranden till resursen. När token upphör att gälla upprepar du begäran till slutpunkten /token för att hämta en ny åtkomsttoken.

GET /v1.0/me/messages
Host: https://webapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...

Note

Microsoft rekommenderar starkt att du migrerar till Microsoft Entra-ID i stället för att uppgradera till en nyare AD FS-version. För mer information om resursägarens lösenordsuppgifter i Microsoft Entra-ID, se Grant-flödet för resursägarens lösenordsuppgifter i Microsofts identitetsplattform.

Med hjälp av ROPC-beviljande (resource owner password credential) kan en applikation logga in användaren genom att direkt hantera deras lösenord. ROPC-flödet kräver en hög grad av förtroende och användarexponering. Du bör bara använda det här flödet när du inte kan använda andra flöden som är säkrare.

Protokolldiagram

Följande diagram visar ROPC-flödet.

Diagram över ROPC-flödet.

Auktoriseringsbegäran

ROPC-flödet är en enskild begäran – det skickar klientidentifieringen och användarens autentiseringsuppgifter till IDP:n och tar sedan emot token i gengäld. Klienten måste begära användarens e-postadress (UPN) och lösenord innan du gör det. Omedelbart efter en lyckad begäran bör klienten på ett säkert sätt frigöra användarens autentiseringsuppgifter från minnet. Det får aldrig rädda dem.

// Line breaks and spaces are for legibility only

POST /adfs/oauth2/token HTTP/1.1
Host: https://adfs.contoso.com
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope= openid
&username=myusername@contoso.com
&password=SuperS3cret
&grant_type=password
Parameter Required/optional Description
client_id required Klient-ID.
grant_type required Måste vara inställt på lösenord.
username required Användarens e-postadress.
password required Användarens lösenord.
scope optional En blankstegsavgränsad lista med omfattningar.

Lyckat autentiseringssvar

I följande exempel visas ett lyckat tokensvar:

{
    "token_type": "Bearer",
    "scope": "openid",
    "expires_in": 3599,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn...",
    "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4...",
    "refresh_token_expires_in": 28800,
    "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIyZDR..."
}
Parameter Description
token_type Ställ alltid in på Bearer.
scope Om en åtkomsttoken returnerades visar den här parametern de omfång som åtkomsttoken är giltig för.
expires_in Antal sekunder som den inkluderade åtkomsttoken är giltig för.
access_token Utfärdat för de områden som begärdes.
id_token En JWT. Appen kan avkoda segmenten för den här token för att begära information om användaren som loggade in. Appen kan cachelagrat värdena och visa dem, men den bör inte förlita sig på dem för auktorisering eller säkerhetsgränser.
refresh_token_expires_in Antal sekunder som den inkluderade uppdateringstoken är giltig för.
refresh_token Utfärdad om den ursprungliga omfångsparametern inkluderade offline_access.

Du kan använda uppdateringstoken för att hämta nya åtkomsttoken och uppdateringstoken med hjälp av samma flöde som beskrivs i avsnittet för beviljande av autentiseringskod i den här artikeln.

Enhetskodflöde

Note

Microsoft rekommenderar starkt att du migrerar till Microsoft Entra-ID i stället för att uppgradera till en nyare AD FS-version. Mer information om enhetskodflödet i Microsoft Entra-ID finns i Enhetskodflöde i Microsofts identitetsplattform.

Med enhetskodsbeviljande kan användare logga in på indatabegränsade enheter, till exempel en smart-TV, IoT-enhet eller skrivare. För att aktivera det här flödet, instruerar enheten användaren att besöka en webbsida i sin webbläsare på en annan enhet för att logga in. När användaren har loggat in kan enheten hämta åtkomsttoken och uppdateringstoken efter behov.

Protokolldiagram

Hela enhetskodflödet liknar det flöde som visas i nästa diagram. Vart och ett av stegen beskrivs senare i den här artikeln.

Diagram som visar enhetskodflödet.

Begäran om enhetsauktorisering

Klienten måste först kontrollera med autentiseringsservern om en enhet och användarkod som används för att initiera autentisering. Klienten samlar in den här begäran från slutpunkten /devicecode. I den här begäran ska klienten även ange de behörigheter som krävs för att erhålla från användaren. Från den tidpunkt då den här begäran skickas har användaren bara 15 minuter på sig att logga in (det vanliga värdet för expires_in), så gör bara den här begäran när användaren har angett att de är redo att logga in.

// Line breaks are for legibility only

POST https://adfs.contoso.com/adfs/oauth2/devicecode
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
scope=openid
Parameter Condition Description
client_id required Det program-ID (klient)-ID som AD FS tilldelade till din app.
scope optional En blankstegsavgränsad lista med omfattningar.

Enhetsauktoriseringssvar

Ett lyckat svar är ett JSON-objekt som innehåller den information som krävs för att användaren ska kunna logga in.

Parameter Description
device_code En lång sträng som används för att verifiera sessionen mellan klienten och auktoriseringsservern. Klienten använder den här parametern för att begära åtkomsttoken från auktoriseringsservern.
user_code En kort sträng som visas för användaren som används för att identifiera sessionen på en sekundär enhet.
verification_uri Den URI som användaren ska gå till med user_code för att logga in.
verification_uri_complete Den URI som användaren ska gå till med user_code för att logga in. Den är förfylld med user_code så att användaren inte behöver ange det värdet.
expires_in Antalet sekunder innan device_code och user_code upphör att gälla.
interval Antalet sekunder som klienten ska vänta mellan avsökningsbegäranden.
message En läsbar sträng för människor med instruktioner för användaren. Du kan lokalisera den genom att inkludera en frågeparameter i begäran i formuläret ?mkt=xx-XX, och fylla i lämplig språkkulturkod.

Autentisera användaren

När klienten har fått user_code och verification_uri visas informationen för användaren och instrueras att logga in med hjälp av deras mobiltelefon eller datorwebbläsare. Dessutom kan klienten använda en QR-kod eller liknande mekanism för att visa verfication_uri_complete, vilket tar steget att ange user_code för användaren. Medan användaren autentiserar sig vid verification_uri bör klienten avsöka /token-slutpunkten för den begärda tokenen med hjälp av device_code.

POST https://adfs.contoso.com /adfs/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type: urn:ietf:params:oauth:grant-type:device_code
client_id: 00001111-aaaa-2222-bbbb-3333cccc4444
device_code: GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8
Parameter Required/optional Description
grant_type required Måste vara urn:ietf:params:oauth:grant-type:device_code.
client_id required Måste matcha client_id som användes i den första begäran.
code required Enhetskoden som returneras i begäran om enhetsauktorisering.

Lyckat autentiseringssvar

Ett lyckat tokensvar kan innehålla följande parametrar:

Parameter Description
token_type Alltid Bearer.
scope Om en åtkomsttoken returnerades visas de omfång som åtkomsttoken är giltig för.
expires_in Antal sekunder som den inkluderade åtkomsttoken är giltig för.
access_token Utfärdat för de områden som begärdes.
id_token Utfärdat om den ursprungliga omfångsparametern inkluderade openid-omfånget.
refresh_token Utfärdad om den ursprungliga omfångsparametern inkluderade offline_access.
refresh_token_expires_in Antal sekunder som den inkluderade uppdateringstoken är giltig för.

I AD FS Development finns en fullständig lista över genomgångsartiklar som innehåller stegvisa instruktioner om hur du använder relaterade flöden.