Dela via


Api-referens för intern autentisering

Gäller för:Vit cirkel med en grå X-symbol.Personalklientorganisationer Grön cirkel med en vit bockmarkeringssymbol. Externa klienter (läs mer)

Med Microsoft Entras interna autentisering kan du vara värd för användargränssnittet för din app i klientprogrammet i stället för att delegera autentisering till webbläsare, vilket resulterar i en inbyggd integrerad autentiseringsupplevelse. Som utvecklare har du fullständig kontroll över utseendet och känslan i inloggningsgränssnittet.

Den här API-referensartikeln beskriver endast information som krävs när du manuellt gör råa HTTP-begäranden för att köra flödet. Vi rekommenderar dock inte den här metoden. Så när det är möjligt använder du ett Microsoft-byggt och stödt autentiserings-SDK. Mer information om hur du använder SDK finns i Självstudie: Förbereda din Android-mobilapp för intern autentisering och Självstudie: Förbered din iOS-mobilapp för intern autentisering.

När ett anrop till API-slutpunkterna lyckas får du både en ID-token för användaridentifiering och en åtkomsttoken för att anropa skyddade API:er. Alla svar från API:et är i JSON-format.

Microsoft Entras api för intern autentisering stöder registrering och inloggning för två autentiseringsmetoder:

  • E-post med lösenord, som stöder registrering och inloggning med ett e-postmeddelande och lösenord, samt lösenordsåterställning via självbetjäning (SSPR).

  • Skicka ett engångslösenord via e-post, som stöder registrering och inloggning med engångslösenord för e-post.

Kommentar

För närvarande stöder inte api-slutpunkterna för intern autentisering resursdelning (CORS) för korsande ursprung.

Förutsättningar

  1. Microsoft Entra Externt ID för kunders klientorganisation. Om du inte redan har en kan du registrera dig för en kostnadsfri utvärderingsversion.

  2. Om du inte redan har gjort det registrerar du ett program i administrationscentret för Microsoft Entra. Se till att du beviljar delegerade behörigheter och aktiverar offentliga klient- och inbyggda autentiseringsflöden.

  3. Om du inte redan har gjort det skapar du ett användarflöde i administrationscentret för Microsoft Entra. När du skapar användarflödet bör du notera de användarattribut som du konfigurerar som krävs eftersom dessa attribut är de som Microsoft Entra förväntar sig att din app ska skicka. Under Identitetsprovidrar väljer du alternativet E-post engångslösenord .

  4. Associera appregistreringen med användarflödet.

  5. För inloggningsflöde registrerar du en kundanvändare som du använder för att testa inloggnings-API:erna. Du kan också hämta den här testanvändaren när du har kört registreringsflödet.

  6. För SSPR-flöde aktiverar du självbetjäning av lösenordsåterställning för kundanvändare i kundens klientorganisation. SSPR är tillgängligt för kundanvändare som använder e-post med lösenordsautentiseringsmetod.

Fortsättningstoken

Varje gång du anropar en slutpunkt i något av flödena, inloggningen, registreringen eller SSPR innehåller slutpunkten en fortsättningstoken i svaret. Fortsättningstoken är en unik identifierare som Microsoft Entra ID använder för att underhålla tillstånd mellan anrop till olika slutpunkter i samma flöde. Du måste inkludera den här token i efterföljande begäranden i samma flöde.

Varje fortsättningstoken är giltig under en viss period och kan endast användas för efterföljande begäranden inom samma flöde.

Referens för registrerings-API

För att slutföra ett användarregistreringsflöde för någon av autentiseringsmetoderna interagerar appen med fyra slutpunkter, /signup/v1.0/start, /signup/v1.0/challenge, /signup/v1.0/continueoch /token.

Registrerings-API-slutpunkter

Slutpunkt beskrivning
/signup/v1.0/start Den här slutpunkten startar registreringsflödet. Du skickar giltigt program-ID, nytt användarnamn och utmaningstyp och får sedan tillbaka en ny fortsättningstoken. Slutpunkten kan returnera ett svar som anger för programmet att använda ett flöde för webbautentisering om programmets valda autentiseringsmetoder inte stöds av Microsoft Entra.
/signup/v1.0/challenge Din app anropar den här slutpunkten med en lista över utmaningstyper som stöds av Microsoft Entra. Microsoft Entra väljer sedan en av de autentiseringsmetoder som stöds för användaren att autentisera med.
/signup/v1.0/continue Den här slutpunkten hjälper till att fortsätta flödet för att skapa användarkontot eller avbryta flödet på grund av saknade krav, till exempel krav på lösenordsprinciper eller felaktiga attributformat. Den här slutpunkten genererar en fortsättningstoken och returnerar den sedan till appen. Slutpunkten kan returnera ett svar som anger för programmet att använda ett webbaserat autentiseringsflöde om programmet inte är en autentiseringsmetod som valts av Microsoft Entra.
/token Programmet anropar den här slutpunkten för att slutligen begära säkerhetstoken. Appen måste inkludera fortsättningstoken som hämtas från det senaste lyckade anropet /signup/v1.0/continue till slutpunkten.

Registreringsutmaningstyper

MED API:et kan klientappen annonsera de autentiseringsmetoder som den stöder när den anropar Microsoft Entra. För att göra det använder appen parametern challenge_type i appens begäran. Den här parametern innehåller fördefinierade värden som representerar olika autentiseringsmetoder.

Läs mer om utmaningstyper i de inbyggda autentiseringsutmaningstyperna. I den här artikeln beskrivs de utmaningstypvärden som du bör använda för en autentiseringsmetod.

Information om registreringsflödesprotokoll

Sekvensdiagrammet visar flödet i registreringsprocessen.

Diagram över registreringsflödet för intern autentisering.

Det här diagrammet anger att appen samlar in användarnamn (e-post), lösenord (för e-post med metoder för lösenordsautentisering) och attribut från användaren vid olika tidpunkter (och eventuellt på separata skärmar). Du kan dock utforma din app för att samla in användarnamnet (e-postmeddelandet), lösenordet och alla obligatoriska och valfria attributvärden på samma skärm och sedan skicka dem alla via /signup/v1.0/start slutpunkten. I det här fallet behöver appen inte göra anrop och hantera svar för de valfria stegen.

Steg 1: Begäran om att starta registreringsflödet

Registreringsflödet börjar med att programmet gör en POST-begäran till /signup/v1.0/start slutpunkten för att starta registreringsflödet.

Här är exempel på begäran (vi presenterar exempelbegäran i flera rader för läsbarhet):

Exempel 1:

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/start
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&username=contoso-consumer@contoso.com 

Exempel 2 (inkludera användarattribut och lösenord i begäran):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/start
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&password={secure_password}
&attributes={"displayName": "{given_name}", "extension_2588abcdwhtfeehjjeeqwertc_age": "{user_age}", "postalCode": "{user_postal_code}"}
&username=contoso-consumer@contoso.com 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
username Ja E-post till den kundanvändare som de vill registrera sig med, till exempel contoso-consumer@contoso.com.
challenge_type Ja En blankstegsavgränsad lista över auktoriseringsutmaningssträngar som appen stöder, till exempel oob password redirect. Listan måste alltid innehålla utmaningstypen redirect . Värdet förväntas oob redirect eller oob password redirect för e-post med lösenordsautentiseringsmetod.
password Nej Det lösenordsvärde som appen samlar in från kundanvändaren. Du kan skicka en användares lösenord via /signup/v1.0/start eller senare i /signup/v1.0/continue slutpunkten. Ersätt {secure_password} med det lösenordsvärde som appen samlar in från kundanvändaren. Det är ditt ansvar att bekräfta att användaren är medveten om det lösenord de vill använda genom att ange fältet bekräfta lösenord i appens användargränssnitt. Du måste också se till att användaren är medveten om vad som utgör ett starkt lösenord enligt organisationens princip. Läs mer om Microsoft Entras lösenordsprinciper.
Den här parametern gäller endast för e-post med lösenordsautentiseringsmetod.
attributes Nej Användaren tillskriver värden som appen samlar in från kundanvändaren. Värdet är en sträng, men formaterad som ett JSON-objekt vars nyckelvärden är programmerbara namn på användarattribut. De här attributen kan vara inbyggda eller anpassade och obligatoriska eller valfria. Nyckelnamnen för objektet beror på de attribut som administratören har konfigurerat i administrationscentret för Microsoft Entra. Du kan skicka vissa eller alla användarattribut via /signup/v1.0/start slutpunkten eller senare i /signup/v1.0/continue slutpunkten. Om du skickar alla obligatoriska attribut via /signup/v1.0/start slutpunkten behöver du inte skicka några attribut i /signup/v1.0/continue slutpunkten. Men om du skickar några obligatoriska attribut via /signup/v1.0/start slutpunkten kan du skicka de återstående obligatoriska attributen /signup/v1.0/continue senare i slutpunkten. Ersätt {given_name}, {user_age} och {postal_code} med värdena för namn, ålder och postnummer som appen samlar in från kundanvändaren. Microsoft Entra ignorerar alla attribut som du skickar, som inte finns.

Svar om lyckad åtgärd

Här är ett exempel på ett lyckat svar:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "AQABAAEAAA…",
} 
Parameter Description
continuation_token Fortsättningstoken som Microsoft Entra returnerar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "user_already_exists", 
    "error_description": "AADSTS1003037: It looks like you may already have an account.... .\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...", 
    "error_codes": [ 
        1003037 
    ],
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.
invalid_attributes En lista (matris med objekt) med attribut som misslyckades med valideringen. Det här svaret är möjligt om appen skickar användarattribut och suberror parameterns värde är attribute_validation_failed.
suberror En felkodssträng som kan användas för att ytterligare klassificera typer av fel.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel när parametervärdet challenge_type innehåller en autentiseringsmetod som inte stöds eller om begäran inte innehöll client_id parametern som klient-ID-värdet är tomt eller ogiltigt. Använd parametern error_description för att lära dig den exakta orsaken till felet.
invalid_client Det klient-ID som appen innehåller i begäran är för en app som saknar inbyggd autentiseringskonfiguration, till exempel att den inte är en offentlig klient eller inte är aktiverad för intern autentisering. Använd parametern suberror för att lära dig den exakta orsaken till felet.
unauthorized_client Klient-ID:t som används i begäran har ett giltigt klient-ID-format, men finns inte i den externa klientorganisationen eller är felaktigt.
unsupported_challenge_type Parametervärdet challenge_type innehåller inte utmaningstypen redirect .
user_already_exists Användaren finns redan.
invalid_grant Lösenordet som appen skickar uppfyller inte alla komplexitetskrav, till exempel att lösenordet är för kort. Använd parametern suberror för att lära dig den exakta orsaken till felet.
Den här parametern gäller endast för e-post med lösenordsautentiseringsmetod.

Om felparametern har värdet invalid_grant innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_grant fel:

Underordnat värde beskrivning
password_too_weak Lösenordet är för svagt eftersom det inte uppfyller komplexitetskraven. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.
password_too_short Nytt lösenord är färre än 8 tecken. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.
password_too_long Nytt lösenord är längre än 256 tecken. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.
password_recently_used Det nya lösenordet får inte vara detsamma som det som nyligen använts. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.
password_banned Nytt lösenord innehåller ett ord, en fras eller ett mönster som är förbjudet. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.
password_is_invalid Lösenordet är ogiltigt, till exempel eftersom det använder otillåtna tecken. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.

Om felparametern har värdet invalid_client innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_client fel:

Underordnat värde beskrivning
nativeauthapi_disabled Klient-ID för en app som inte är aktiverad för intern autentisering.

Kommentar

Om du skickar alla obligatoriska attribut via /signup/v1.0/start slutpunkten, men inte alla valfria attribut, kan du inte skicka några ytterligare valfria attribut senare via /signup/v1.0/continue slutpunkten. Microsoft Entra begär inte uttryckligen valfria attribut eftersom de inte är obligatoriska för att registreringsflödet ska slutföras. Se tabellen i avsnittet Skicka användarattribut till slutpunkter för att lära dig vilka användarattribut du kan skicka till slutpunkterna /signup/v1.0/start och /signup/v1.0/continue .

Steg 2: Välj en autentiseringsmetod

Appen begär att Microsoft Entra väljer någon av de utmaningstyper som stöds för användaren att autentisera med. För att göra det gör appen ett anrop till /signup/v1.0/challenge slutpunkten. Appen måste inkludera den fortsättningstoken som den hämtar från /signup/v1.0/start slutpunkten i begäran.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet).

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/challenge
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&continuation_token=AQABAAEAAA…
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
challenge_type Nej En blankstegsavgränsad lista över auktoriseringsutmaningssträngar som appen stöder, till exempel oob password redirect. Listan måste alltid innehålla utmaningstypen redirect . Värdet förväntas oob redirect för engångslösenord för e-post och oob password redirect för e-post med lösenordsautentiseringsmetod.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.

Svar om lyckad åtgärd

Microsoft Entra skickar ett engångslösenord till användarens e-post och svarar sedan med utmaningstypen med värdet oob och ytterligare information om engångslösenordet:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "interval": 300,
    "continuation_token": "AQABAAEAAAYn...",
    "challenge_type": "oob",
    "binding_method": "prompt",
    "challenge_channel": "email",
    "challenge_target_label": "c***r@co**o**o.com",
    "code_length": 8
} 
Parameter Description
interval Hur lång tid i sekunder appen måste vänta innan den försöker skicka otp igen.
continuation_token Fortsättningstoken som Microsoft Entra returnerar.
challenge_type Utmaningstyp som valts för användaren att autentisera med.
binding_method Det enda giltiga värdet är prompten. Den här parametern kan användas i framtiden för att erbjuda fler sätt för användaren att ange engångslösenordet. Utfärdad om challenge_type är oob
challenge_channel Typ av kanal genom vilken engångslösenordet skickades. För närvarande stöds endast e-postkanal.
challenge_target_label Ett dolt e-postmeddelande där engångslösenordet skickades.
code_length Längden på engångslösenordet som Microsoft Entra genererar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{
   "challenge_type": "redirect"
}
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel att klient-ID är tomt eller ogiltigt.
expired_token Fortsättningstoken har upphört att gälla.
unsupported_challenge_type Parametervärdet challenge_type innehåller inte utmaningstypen redirect .
invalid_grant Fortsättningstoken är ogiltig.

Steg 3: Skicka engångslösenord

Appen skickar engångslösenordet som skickas till användarens e-post. Eftersom vi skickar engångslösenord krävs en oob parameter och parametern grant_type måste ha värdet oob.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue
Content-Type: application/x-www-form-urlencoded

continuation_token=uY29tL2F1dGhlbnRpY...
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=oob 
&oob={otp_code}
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
grant_type Ja En begäran till slutpunkten kan användas för att skicka engångslösenord /signup/v1.0/continue , lösenord eller användarattribut. I det här fallet grant_type används värdet för att skilja mellan dessa tre användningsfall. Möjliga värden för grant_type är oob, lösenord, attribut. Eftersom vi skickar engångslösenord i det här anropet förväntas värdet vara oob.
oob Ja Engångslösenordet som kundanvändaren fick i sin e-post. Ersätt {otp_code} med engångslösenordsvärdena som kundanvändaren fick i sin e-post. Om du vill skicka ett engångslösenord igen måste appen göra en begäran till /signup/v1.0/challenge slutpunkten igen.

När appen har skickat engångslösenordet beror registreringsflödet på scenarierna enligt tabellen:

Scenario Så här fortsätter du
Appen skickar användarens lösenord (för e-post med lösenordsautentiseringsmetod) via /signup/v1.0/start slutpunkten och inga attribut har konfigurerats i Administrationscenter för Microsoft Entra eller så skickas alla nödvändiga användarattribut via /signup/v1.0/start slutpunkten. Microsoft Entra utfärdar en fortsättningstoken. Appen kan använda fortsättningstoken för att begära säkerhetstoken enligt steg 5.
Appen skickar användarens lösenord (för e-post med lösenordsautentiseringsmetod) via /signup/v1.0/start, men inte alla nödvändiga användarattribut, Microsoft Entra anger de attribut som appen behöver skicka enligt de användarattribut som krävs. Appen måste skicka de nödvändiga användarattributen /signup/v1.0/continue via slutpunkten. Svaret liknar det som krävs i Användarattribut. Skicka användarattributen som visas i skicka användarattribut.
Appen skickar inte användarens lösenord (för e-post med lösenordsautentiseringsmetod) via /signup/v1.0/start slutpunkten. Microsoft Entras svar anger att autentiseringsuppgifter krävs. Se svar.
Det här svaret är möjligt för e-post med lösenordsautentiseringsmetod.

Response

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "credential_required",
    "error_description": "AADSTS55103: Credential required. Trace ID: d6966055-...-80500 Correlation ID: 3944-...-60d6 Timestamp: yy-mm-dd 02:37:33Z",
    "error_codes": [
        55103
    ],
    "timestamp": "yy-mm-dd 02:37:33Z",
    "trace_id": "d6966055-...-80500",
    "correlation_id": "3944-...-60d6",
    "continuation_token": "AQABEQEAAAA..."
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.
continuation_token Fortsättningstoken som Microsoft Entra returnerar.
suberror En felkodssträng som kan användas för att ytterligare klassificera typer av fel.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
credential_required Autentisering krävs för att skapa kontot, så du måste göra ett anrop till /signup/v1.0/challenge slutpunkten för att fastställa de autentiseringsuppgifter som användaren måste ange.
invalid_request Verifieringen av begäransparametern misslyckades, till exempel en validering av fortsättningstoken misslyckades eller så innehöll client_id begäran inte parametern att klient-ID-värdet är tomt eller ogiltigt eller att den externa klientadministratören inte har aktiverat otp för e-post för alla klientanvändare.
invalid_grant Den beviljandetyp som ingår i begäran är inte giltig eller stöds inte, eller så är OTP-värdet felaktigt.
expired_token Fortsättningstoken som ingår i begäran har upphört att gälla.

Om felparametern har värdet invalid_grant innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_grant fel:

Underordnat värde beskrivning
invalid_oob_value Värdet för engångslösenord är ogiltigt.

För att lösenordsautentiseringsuppgifterna ska samlas in från användaren måste appen göra ett anrop till /signup/v1.0/challenge slutpunkten för att fastställa de autentiseringsuppgifter som användaren måste ange.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/challenge
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&continuation_token=AQABAAEAAA…
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
challenge_type Nej En blankstegsavgränsad lista över auktoriseringsutmaningssträngar som appen stöder, till exempel oob password redirect. Listan måste alltid innehålla utmaningstypen redirect . För e-postmeddelandet med lösenordsregistreringsflödet förväntas värdet innehålla password redirect.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.

Svar om lyckad åtgärd

Om lösenordet är den autentiseringsmetod som konfigurerats för användaren i administrationscentret för Microsoft Entra returneras ett lyckat svar med fortsättningstoken till appen.

HTTP/1.1 200 OK
Content-Type: application/json
{
    "challenge_type": "password",
    "continuation_token": " AQABAAEAAAAty..."
}
Parameter Description
challenge_type lösenordet returneras i svaret för nödvändiga autentiseringsuppgifter.
continuation_token Fortsättningstoken som Microsoft Entra returnerar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{     
    "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Steg 4: Autentisera och hämta token för att registrera dig

Appen måste skicka användarens autentiseringsuppgifter, i det här fallet lösenord, som Microsoft Entra begärde i föregående steg. Appen måste skicka in en lösenordsautentiseringsuppgift om den inte gjorde det via /signup/v1.0/start slutpunkten. Appen skickar en begäran till /signup/v1.0/continue slutpunkten om att skicka lösenordet. Eftersom vi skickar ett lösenord krävs en password parameter och parametern måste ha ett värdelösenordgrant_type.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue
Content-Type: application/x-www-form-urlencoded

continuation_token=uY29tL2F1dGhlbnRpY...
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=password 
&password={secure_password}
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående steg.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
grant_type Ja En begäran till slutpunkten kan användas för att skicka engångslösenord /signup/v1.0/continue , lösenord eller användarattribut. I det här fallet grant_type används värdet för att skilja mellan dessa tre användningsfall. Möjliga värden för grant_type är oob, lösenord, attribut. I det här anropet, eftersom vi skickar användarens lösenord, förväntas värdet vara lösenord.
password Ja Det lösenordsvärde som appen samlar in från kundanvändaren. Ersätt {secure_password} med det lösenordsvärde som appen samlar in från kundanvändaren. Det är ditt ansvar att bekräfta att användaren är medveten om det lösenord de vill använda genom att ange fältet bekräfta lösenord i appens användargränssnitt. Du måste också se till att användaren är medveten om vad som utgör ett starkt lösenord enligt organisationens princip. Läs mer om Microsoft Entras lösenordsprinciper.

Svar om lyckad åtgärd

Om begäran lyckas, men inga attribut har konfigurerats i administrationscentret för Microsoft Entra eller om alla obligatoriska attribut har skickats via /signup/v1.0/start slutpunkten, hämtar appen en fortsättningstoken utan att skicka några attribut. Appen kan använda fortsättningstoken för att begära säkerhetstoken enligt steg 5. Annars anger Microsoft Entras svar att appen måste skicka nödvändiga attribut. Dessa attribut, inbyggda eller anpassade, konfigurerades i administrationscentret för Microsoft Entra av klientadministratören.

Användarattribut krävs

Det här svaret begär att appen skickar värden för namn, *ålder och telefonattribut .

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "attributes_required",
    "error_description": "User attributes required",
    "error_codes": [
            55106
        ],
    "timestamp": "yy-mm-dd 02:37:33Z",
    "trace_id": "d6966055-...-80500",
    "correlation_id": "3944-...-60d6",
    "continuation_token": "AQABAAEAAAAtn...",
    "required_attributes": [
        {
            "name": "displayName",
            "type": "string",
            "required": true,
            "options": {
              "regex": ".*@.**$"
            }
        },
        {
            "name": "extension_2588abcdwhtfeehjjeeqwertc_age",
            "type": "string",
            "required": true
        },
        {
            "name": "postalCode",
            "type": "string",
            "required": true,
            "options": {
              "regex":"^[1-9][0-9]*$"
            }
        }
    ],
}

Kommentar

Anpassade attribut (även kallade katalogtillägg) namnges med hjälp av konventionen extension_{appId-without-hyphens}_{attribute-name} där är den avskalade versionen av klient-ID:t för tilläggsappen{appId-without-hyphens}. Om klient-ID:t för tilläggsappen till exempel är 2588a-bcdwh-tfeehj-jeeqw-ertc och attributnamnet är hobbyer, namnges det anpassade attributet somextension_2588abcdwhtfeehjjeeqwertc_hobbies. Läs mer om anpassade attribut och tilläggsappar.

Parameter Description
error Det här attributet anges om Microsoft Entra inte kan skapa användarkontot eftersom ett attribut måste verifieras eller skickas.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till felet.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.
continuation_token Fortsättningstoken som Microsoft Entra returnerar.
required_attributes En lista (matris med objekt) med attribut som appen behöver skicka nästa anrop för att fortsätta. Dessa attribut är de extra attribut som appen behöver skicka förutom användarnamnet. Microsoft Entra innehåller den här parametern är svaret om värdet error för parametern är attributes_required.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begäransparameter misslyckades, till exempel en validering av fortsättningstoken misslyckades eller så innehöll client_id begäran inte parametern att klient-ID-värdet är tomt eller ogiltigt.
invalid_grant Den beviljandetyp som ingår i begäran är inte giltig eller stöds inte. Möjliga värden för grant_type är oob, lösenord, attribut
expired_token Fortsättningstoken som ingår i begäran har upphört att gälla.
attributes_required Ett eller flera användarattribut krävs.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "invalid_grant",
    "error_description": "New password is too weak",
    "error_codes": [
        399246
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6",
    "suberror": "password_too_weak"
}
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.
suberror En felkodssträng som kan användas för att ytterligare klassificera typer av fel.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel när parametern challenge_type innehåller en ogiltig utmaningstyp.
invalid_grant Det angivna beviljandet är ogiltigt, till exempel att lösenordet som skickas är för kort. Använd parametern suberror för att lära dig den exakta orsaken till felet.
expired_token Fortsättningstoken har upphört att gälla.
attributes_required Ett eller flera användarattribut krävs.

Om felparametern har värdet invalid_grant innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror :

Underordnat värde beskrivning
password_too_weak Lösenordet är för svagt eftersom det inte uppfyller komplexitetskraven. Läs mer om Microsoft Entras lösenordsprinciper.
password_too_short Nytt lösenord är färre än 8 tecken. Läs mer om Microsoft Entras lösenordsprinciper.
password_too_long Nytt lösenord är längre än 256 tecken. Läs mer om Microsoft Entras lösenordsprinciper.
password_recently_used Det nya lösenordet får inte vara detsamma som det som nyligen använts. Läs mer om Microsoft Entras lösenordsprinciper.
password_banned Nytt lösenord innehåller ett ord, en fras eller ett mönster som är förbjudet. Läs mer om Microsoft Entras lösenordsprinciper.
password_is_invalid Lösenordet är ogiltigt, till exempel eftersom det använder otillåtna tecken. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.

Skicka användarattribut

För att fortsätta med flödet måste appen göra ett anrop till /signup/v1.0/continue slutpunkten för att skicka de nödvändiga användarattributen. Eftersom vi skickar attribut krävs en attributes parameter och parametern grant_type måste ha ett värde som är lika med attribut.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue
Content-Type: application/x-www-form-urlencoded

&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=attributes 
&attributes={"displayName": "{given_name}", "extension_2588abcdwhtfeehjjeeqwertc_age": "{user_age}", "postaCode": "{postal_code}"}
&continuation_token=AQABAAEAAAAtn...
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
grant_type Ja En begäran till slutpunkten kan användas för att skicka engångslösenord /signup/v1.0/continue , lösenord eller användarattribut. I det här fallet grant_type används värdet för att skilja mellan dessa tre användningsfall. Möjliga värden för grant_type är oob, lösenord, attribut. Eftersom vi skickar användarattribut i det här anropet förväntas värdet vara attribut.
attributes Ja De värden för användarattribut som appen samlar in från kundanvändaren. Värdet är en sträng, men formaterad som ett JSON-objekt vars nyckelvärden är namn på användarattribut, inbyggda eller anpassade. Nyckelnamnen för objektet beror på de attribut som administratören har konfigurerat i administrationscentret för Microsoft Entra. Ersätt {given_name}, {user_age} och {postal_code} med värdena för namn, ålder och postnummer som appen samlar in från kundanvändaren. Microsoft Entra ignorerar alla attribut som du skickar, som inte finns.

Svar om lyckad åtgärd

Om begäran lyckas utfärdar Microsoft Entra en fortsättningstoken som appen kan använda för att begära säkerhetstoken.

HTTP/1.1 200 OK
Content-Type: application/json
{  
    "continuation_token": "AQABAAEAAAYn..."
} 
Parameter Description
continuation_token Fortsättningstoken som Microsoft Entra returnerar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "expired_token",
    "error_description": "AADSTS901007: The continuation_token is expired.  .\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...", 
    "error_codes": [
        552003
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6" 
}
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.
continuation_token Fortsättningstoken som Microsoft Entra returnerar.
unverified_attributes En lista (matris med objekt) med attributnyckelnamn som måste verifieras. Den här parametern ingår i svaret när error parameterns värde verification_required.
required_attributes En lista (matris med objekt) med attribut som appen behöver skicka. Microsoft Entra innehåller den här parametern i sitt svar när error parameterns värde attributes_required.
invalid_attributes En lista (matris med objekt) med attribut som misslyckades med valideringen. Den här parametern ingår i svaret när suberror parameterns värde attribute_validation_failed.
suberror En felkodssträng som kan användas för att ytterligare klassificera typer av fel.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begäransparameter misslyckades, till exempel en validering av fortsättningstoken misslyckades eller så innehöll client_id begäran inte parametern att klient-ID-värdet är tomt eller ogiltigt.
invalid_grant Den angivna beviljandetypen är inte giltig eller stöds inte eller misslyckades, till exempel att verifieringen av attribut misslyckades. Använd parametern suberror för att lära dig den exakta orsaken till felet.
expired_token Fortsättningstoken som ingår i begäran har upphört att gälla.
attributes_required Ett eller flera användarattribut krävs.

Om felparametern har värdet invalid_grant innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_grant fel:

Underordnat värde beskrivning
attribute_validation_failed Verifieringen av användarattribut misslyckades. invalid_attributes parametern innehåller listan (matrisen med objekt) med attribut som misslyckades med valideringen.

Steg 5: Begäran om säkerhetstoken

Appen gör en POST-begäran till /token slutpunkten och tillhandahåller fortsättningstoken som hämtades från föregående steg för att hämta säkerhetstoken.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
 
continuation_token=ABAAEAAAAtyo... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&username=contoso-consumer@contoso.com
&scope={scopes}
&grant_type=continuation_token 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
grant_type Ja Parametervärdet måste vara fortsättningstoken.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående steg.
scope Ja En blankstegsavgränsad lista över omfång som åtkomsttoken är giltig för. Ersätt {scopes} med de giltiga omfång som åtkomsttoken som Microsoft Entra returnerar är giltig för.
username Ja E-post till den kundanvändare som de vill registrera sig med, till exempel contoso-consumer@contoso.com.

Lyckat svar

Här är ett exempel på ett lyckat svar:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "token_type": "Bearer",
    "scope": "openid profile",
    "expires_in": 4141,
    "access_token": "eyJ0eXAiOiJKV1Qi...",
    "refresh_token": "AwABAAAA...",
    "id_token": "eyJ0eXAiOiJKV1Q..."
}
Parameter Description
access_token Åtkomsttoken som appen begärde från /token slutpunkten. Appen kan använda den här åtkomsttoken för att begära åtkomst till skyddade resurser, till exempel webb-API:er.
token_type Anger värdet för tokentyp. Den enda typ som Microsoft Entra stöder är Bearer.
expires_in Hur lång tid i sekunder åtkomsttoken förblir giltig.
scopes En blankstegsavgränsad lista över omfång som åtkomsttoken är giltig för.
refresh_token En OAuth 2.0-uppdateringstoken. Appen kan använda den här token för att hämta andra åtkomsttoken när den aktuella åtkomsttoken upphör att gälla. Uppdateringstoken är långlivade. De kan upprätthålla åtkomsten till resurser under längre perioder. Mer information om hur du uppdaterar en åtkomsttoken finns i artikeln Uppdatera åtkomsttoken .
Obs! Utfärdas endast om offline_access omfång begärdes.
id_token En JSON-webbtoken (Jwt) som används för att identifiera kundanvändaren. Appen kan avkoda token för att läsa information om användaren som loggade in. Appen kan cachelagras värdena och visa dem, och konfidentiella klienter kan använda den här token för auktorisering. Mer information om ID-token finns i ID-token.
Obs! Utfärdas endast om openid-omfång begärs.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The client doesn't have consent for the requested scopes.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        50126 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Verifieringen av begärandeparametern misslyckades, till exempel att klienten/appen inte har medgivande för de begärda omfången.
invalid_grant Fortsättningstoken som ingår i begäran är ogiltig.
unauthorized_client Klient-ID:t som ingår i begäran är ogiltigt eller finns inte.
unsupported_grant_type Den beviljandetyp som ingår i begäran stöds inte eller är felaktig.

Skicka användarattribut till slutpunkter

I administrationscentret för Microsoft Entra kan du konfigurera användarattribut efter behov eller valfritt. Den här konfigurationen avgör hur Microsoft Entra svarar när du gör ett anrop till dess slutpunkter. Valfria attribut är inte obligatoriska för att registreringsflödet ska slutföras. När alla attribut är valfria måste de därför skickas innan användarnamnet verifieras. Annars slutförs registreringen utan de valfria attributen.

I följande tabell sammanfattas när det är möjligt att skicka användarattribut till Microsoft Entra-slutpunkter.

Slutpunkt Obligatoriska attribut Valfria attribut Både obligatoriska och valfria attribut
/signup/v1.0/start Slutpunkt Ja Ja Ja
/signup/v1.0/continue slutpunkt före användarnamnsverifiering Ja Ja Ja
/signup/v1.0/continue slutpunkt efter användarnamnsverifiering Ja No Ja

Format för värden för användarattribut

Du anger den information som du vill samla in från användaren genom att konfigurera användarflödesinställningarna i administrationscentret för Microsoft Entra. Använd artikeln Samla in anpassade användarattribut under registreringen för att lära dig hur du samlar in värden för både inbyggda och anpassade attribut.

Du kan också ange indatatypen för användaren för de attribut som du konfigurerar. I följande tabell sammanfattas de användarindatatyper som stöds och hur du skickar värden som samlas in av användargränssnittskontrollerna till Microsoft Entra.

Indatatyp för användare Format för skickade värden
TextBox  Ett enda värde, till exempel jobbtitel, programvarutekniker.
SingleRadioSelect Ett enda värde, till exempel Språk, Norska. 
KryssrutaMultiVälj Ett eller flera värden, till exempel en hobby eller hobby, dans eller dans, simning, resor.

Här är en exempelbegäran som visar hur du skickar attributens värden:

POST /{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue HTTP/1.1
Host: {tenant_subdomain}.ciamlogin.com
Content-Type: application/x-www-form-urlencoded
 
continuation_token=ABAAEAAAAtfyo... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=attributes 
&attributes={"jobTitle": "Software Engineer", "extension_2588abcdwhtfeehjjeeqwertc_language": "Norwegian", "extension_2588abcdwhtfeehjjeeqwertc_hobbies": "Dancing,Swimming,Traveling"}
&continuation_token=AQABAAEAAAAtn...

Läs mer om indatatyper för användarattribut i artikeln Indatatyper för anpassade användarattribut.

Referera till användarattribut

När du skapar ett användarflöde för registrering konfigurerar du användarattribut som du vill samla in från användaren under registreringen. Namnen på användarattributen i administrationscentret för Microsoft Entra skiljer sig från hur du refererar till dem i det interna autentiserings-API:et.

Visningsnamn i administrationscentret för Microsoft Entra refereras till som displayName i API:et.

Använd artikeln Användarprofilattribut för att lära dig hur du refererar till både inbyggda och anpassade användarattribut i det interna autentiserings-API:et.

Inloggnings-API-referens

Användarna måste logga in med den autentiseringsmetod som de använder för registrering. Användare som registrerar sig med e-post med lösenordsautentiseringsmetod måste till exempel logga in e-post och lösenord.

Om du vill begära säkerhetstoken interagerar appen med tre slutpunkter, /initiate, /challenge och /token.

Inloggnings-API-slutpunkter

Slutpunkt beskrivning
/initiate Den här slutpunkten initierar inloggningsflödet. Om appen anropar den med ett användarnamn för ett användarkonto som redan finns returneras ett lyckat svar med en fortsättningstoken. Om din app begär att använda autentiseringsmetoder som inte stöds av Microsoft Entra kan det här slutpunktssvaret indikera för din app att den behöver använda ett webbläsarbaserat autentiseringsflöde.
/challenge din app anropar den här slutpunkten med en lista över utmaningstyper som stöds av identitetstjänsten. Vår identitetstjänst genererar och skickar sedan ett engångslösenord till den valda utmaningskanalen, till exempel e-post. Om din app anropar den här slutpunkten upprepade gånger skickas en ny OTP varje gång ett anrop görs.
/token Den här slutpunkten verifierar engångslösenordet som den tar emot från din app och utfärdar sedan säkerhetstoken till din app.

Typer av inloggningsutmaningar

MED API:et kan appen annonsera de autentiseringsmetoder som den stöder när den anropar Microsoft Entra. För att göra det använder appen parametern challenge_type i sina begäranden. Den här parametern innehåller fördefinierade värden som representerar olika autentiseringsmetoder.

För en viss autentiseringsmetod är de utmaningstypvärden som en app skickar till Microsoft Entra under registreringsflödet desamma som när appen loggar in. Till exempel använder metoden e-post med lösenordsautentisering oob, lösenord och omdirigeringsutmaningstyp för både registrerings- och inloggningsflöden.

Läs mer om utmaningstyper i artikeln om inbyggda autentiseringsutmaningstyper .

Information om inloggningsflödesprotokoll

Sekvensdiagrammet visar flödet för inloggningsprocessen.

Diagram över inbyggd autentiseringsinloggning med engångslösenord för e-post.

När appen verifierar användarens e-post med OTP tar den emot säkerhetstoken. Om leveransen av engångslösenordet fördröjs eller aldrig levereras till användarens e-post kan användaren begära att få ett annat engångslösenord. Microsoft Entra skickar ett nytt engångslösenord om det tidigare inte har verifierats. När Microsoft Entra skickar ett engångslösenord igen ogiltigförklaras den tidigare skickade koden.

I de avsnitt som följer sammanfattar vi sekvensdiagramflödet i tre grundläggande steg.

Steg 1: Begäran om att starta inloggningsflödet

Autentiseringsflödet börjar med att programmet gör en POST-begäran till /initiate slutpunkten för att starta inloggningsflödet.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/initiate
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=password redirect
&username=contoso-consumer@contoso.com 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
username Ja E-post för kundanvändaren, till exempel contoso-consumer@contoso.com.
challenge_type Ja En blankstegsavgränsad lista över auktoriseringsutmaningssträngar som appen stöder, till exempel oob password redirect. Listan måste alltid innehålla utmaningstypen redirect . Värdet förväntas oob redirect för engångslösenord för e-post och password redirect för e-post med lösenord.

Svar om lyckad åtgärd

Här är ett exempel på ett lyckat svar:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY..."
}
Parameter Description
continuation_token Fortsättningstoken som Microsoft Entra returnerar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json

{     
   "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel när parametern challenge_type innehåller en ogiltig utmaningstyp. eller om begäran inte innehöll client_id parametern är klient-ID-värdet tomt eller ogiltigt. Använd parametern error_description för att lära dig den exakta orsaken till felet.
unauthorized_client Klient-ID:t som används i begäran har ett giltigt klient-ID-format, men finns inte i den externa klientorganisationen eller är felaktigt.
invalid_client Det klient-ID som appen innehåller i begäran är för en app som saknar inbyggd autentiseringskonfiguration, till exempel att den inte är en offentlig klient eller inte är aktiverad för intern autentisering. Använd parametern suberror för att lära dig den exakta orsaken till felet.
user_not_found Användarnamnet finns inte.
unsupported_challenge_type Parametervärdet challenge_type innehåller inte utmaningstypen redirect .

Om felparametern har värdet invalid_client innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_client fel:

Underordnat värde beskrivning
nativeauthapi_disabled Klient-ID för en app som inte är aktiverad för intern autentisering.

Steg 2: Välj en autentiseringsmetod

För att fortsätta med flödet använder appen den fortsättningstoken som hämtas från föregående steg för att begära att Microsoft Entra väljer någon av de utmaningstyper som stöds för användaren att autentisera med. Appen skickar en POST-begäran till /challenge slutpunkten.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/challenge
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=password redirect 
&continuation_token=uY29tL2F1dGhlbnRpY... 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
challenge_type Nej En blankstegsavgränsad lista över auktoriseringsutmaningssträngar som appen stöder, till exempel oob password redirect. Listan måste alltid innehålla utmaningstypen redirect . Värdet förväntas oob redirect för engångslösenord för e-post och password redirect för e-post med lösenord.

Svar om lyckad åtgärd

Om klientadministratören har konfigurerat engångslösenord för e-post i administrationscentret för Microsoft Entra som användarens autentiseringsmetod skickar Microsoft Entra ett engångslösenord till användarens e-post, svarar sedan med en utmaningstyp av oob och ger mer information om engångslösenordet.

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "challenge_type": "oob",
    "binding_method": "prompt ", 
    "challenge_channel": "email",
    "challenge_target_label ": "c***r@co**o**o.com ",
    "code_length": 8
} 
Parameter Description
continuation_token Fortsättningstoken som Microsoft Entra returnerar.
challenge_type Utmaningstyp som valts för användaren att autentisera med.
binding_method Det enda giltiga värdet är prompten. Den här parametern kan användas i framtiden för att erbjuda fler sätt för användaren att ange engångslösenordet. Utfärdad om challenge_type är oob
challenge_channel Typ av kanal genom vilken engångslösenordet skickades. För närvarande stöder vi e-post.
challenge_target_label Ett dolt e-postmeddelande där engångslösenordet skickades.
code_length Längden på engångslösenordet som Microsoft Entra genererar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel när parametern challenge_type innehåller en ogiltig utmaningstyp.
invalid_grant Fortsättningstoken som ingår i begäran är inte giltig.
expired_token Fortsättningstoken som ingår i begäran har upphört att gälla.
unsupported_challenge_type Parametervärdet challenge_type innehåller inte utmaningstypen redirect .

Steg 3: Begäran om säkerhetstoken

Appen skickar en POST-begäran till /token slutpunkten och tillhandahåller användarens autentiseringsuppgifter som valdes i föregående steg, i det här fallet lösenord, för att hämta säkerhetstoken.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

continuation_token=uY29tL2F1dGhlbnRpY...
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=password 
&password={secure_password}
&scope=openid offline_access 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
grant_type Ja Värdet måste vara lösenord för e-post med lösenordsautentiseringsmetod och oob för autentiseringsmetod för engångslösenord för e-post.
scope Ja En blankstegsavgränsad lista med omfång. Alla omfång måste komma från en enskild resurs, tillsammans med OpenID Connect-omfång (OIDC), till exempel profil, *openid och e-post. Appen måste innehålla openid-omfång för Att Microsoft Entra ska kunna utfärda en ID-token. Appen måste innehålla offline_access omfång för Microsoft Entra för att utfärda en uppdateringstoken. Läs mer om behörigheter och medgivande i Microsoft platforma za identitete.
password Ja
(för e-post med lösenord)
Det lösenordsvärde som appen samlar in från kundanvändaren. Ersätt {secure_password} med det lösenordsvärde som appen samlar in från kundanvändaren.
oob Ja
(för engångslösenord för e-post)
Engångslösenordet som kundanvändaren fick i sin e-post. Ersätt {otp_code} med engångslösenordet som kundanvändaren fick i sin e-post. Om du vill skicka ett engångslösenord igen måste appen göra en begäran till /challenge slutpunkten igen.

Lyckat svar

Här är ett exempel på ett lyckat svar:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "token_type": "Bearer",
    "scope": "openid profile",
    "expires_in": 4141,
    "access_token": "eyJ0eXAiOiJKV1Qi...",
    "refresh_token": "AwABAAAA...",
    "id_token": "eyJ0eXAiOiJKV1Q..."
}
Parameter Description
token_type Anger värdet för tokentyp. Den enda typ som Microsoft Entra stöder är Bearer.
scopes En blankstegsavgränsad lista över omfång som åtkomsttoken är giltig för.
expires_in Hur lång tid i sekunder åtkomsttoken förblir giltig.
access_token Åtkomsttoken som appen begärde från /token slutpunkten. Appen kan använda den här åtkomsttoken för att begära åtkomst till skyddade resurser, till exempel webb-API:er.
refresh_token En OAuth 2.0-uppdateringstoken. Appen kan använda den här token för att hämta andra åtkomsttoken när den aktuella åtkomsttoken upphör att gälla. Uppdateringstoken är långlivade. De kan upprätthålla åtkomsten till resurser under längre perioder. Mer information om hur du uppdaterar en åtkomsttoken finns i artikeln Uppdatera åtkomsttoken .
Obs! Utfärdas endast om du begär offline_access omfång.
id_token En JSON-webbtoken (Jwt) som används för att identifiera kundanvändaren. Appen kan avkoda token för att begära information om användaren som loggade in. Appen kan cachelagras värdena och visa dem, och konfidentiella klienter kan använda den här token för auktorisering. Mer information om ID-token finns i ID-token.
Obs! Utfärdas endast om du begär openid-omfång .

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_grant", 
    "error_description": "AADSTS901007: Error validating credentials due to invalid username or password.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        50126 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades. Om du vill förstå vad som hände använder du meddelandet i felbeskrivningen.
invalid_grant Fortsättningstoken som ingår i begäran är inte giltig eller så är autentiseringsuppgifterna för kundanvändare som ingår i begäran ogiltiga eller så är den beviljandetyp som ingår i begäran okänd.
invalid_client Klient-ID:t som ingår i begäran är inte för en offentlig klient.
expired_token Fortsättningstoken som ingår i begäran har upphört att gälla.
invalid_scope En eller flera av de omfång som ingår i begäran är ogiltiga.

Om felparametern har värdet invalid_grant innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_grant fel:

Underordnat värde beskrivning
invalid_oob_value Värdet för engångslösenord är ogiltigt. Det här underfelet gäller endast engångslösenord för e-post

Lösenordsåterställning via självbetjäning (SSPR)

Om du använder e-post och lösenord som autentiseringsmetod i din app använder du API:et för självbetjäning av lösenordsåterställning (SSPR) för att göra det möjligt för kundanvändare att återställa sitt lösenord. Använd det här API:et för att glömma lösenord eller ändra lösenordsscenarier.

API-slutpunkter för lösenordsåterställning med självbetjäning

Om du vill använda det här API:et interagerar appen med slutpunkten som visas i följande tabell:

Slutpunkt beskrivning
/start Din app anropar den här slutpunkten när kundanvändaren väljer Länken eller knappen Glömt lösenord eller Ändra lösenord i appen. Den här slutpunkten validerar användarens användarnamn (e-post) och returnerar sedan en fortsättningstoken för användning i flödet för lösenordsåterställning. Om din app begär att använda autentiseringsmetoder som inte stöds av Microsoft Entra kan det här slutpunktssvaret indikera för din app att den behöver använda ett webbläsarbaserat autentiseringsflöde.
/challenge Accepterar en lista över utmaningstyper som stöds av klienten och fortsättningstoken. En utmaning utfärdas till en av de önskade återställningsuppgifterna. Till exempel utfärdar oob challenge ett out-of-band engångslösenord till e-postmeddelandet som är associerat med kundens användarkonto. Om din app begär att använda autentiseringsmetoder som inte stöds av Microsoft Entra kan det här slutpunktssvaret indikera för din app att den behöver använda ett webbläsarbaserat autentiseringsflöde.
/continue Validerar den utmaning som utfärdas av /challenge slutpunkten och returnerar sedan antingen en fortsättningstoken för /submit slutpunkten eller utfärdar en annan utmaning till användaren.
/submit Accepterar en ny lösenordsinmatning av användaren tillsammans med fortsättningstoken för att slutföra flödet för lösenordsåterställning. Den här slutpunkten utfärdar en annan fortsättningstoken.
/poll_completion Slutligen kan appen använda fortsättningstoken som utfärdats av /submit slutpunkten för att kontrollera statusen för begäran om lösenordsåterställning.

Utmaningstyper för självbetjäning av lösenordsåterställning

MED API:et kan appen annonsera de autentiseringsmetoder som den stöder när den anropar Microsoft Entra. För att göra det använder appen parametern challenge_type i sina begäranden. Den här parametern innehåller fördefinierade värden som representerar olika autentiseringsmetoder.

För SSPR-flödet är utmaningstypvärdena oob och omdirigering.

Läs mer om utmaningstyper i de inbyggda autentiseringsutmaningstyperna.

Protokollinformation för självbetjäning av lösenordsåterställningsflöde

Sekvensdiagrammet visar flödet för processen för lösenordsåterställning.

Diagram över internt autentiseringsflöde för självbetjäning av lösenordsåterställning.

Det här diagrammet anger att appen samlar in användarnamn (e-post) och lösenord från användaren vid olika tidpunkter (och eventuellt på separata skärmar). Du kan dock utforma din app för att samla in användarnamnet (e-postmeddelandet) och det nya lösenordet på samma skärm. I det här fallet innehåller appen lösenordet och skickar det sedan via slutpunkten /submit där det krävs.

Steg 1: Begäran om att starta självbetjäningsflödet för lösenordsåterställning

Flödet för lösenordsåterställning börjar med att appen gör en POST-begäran till /start slutpunkten för att starta självbetjäningsflödet för lösenordsåterställning.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/start
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&challenge_type=oob redirect 
&username=contoso-consumer@contoso.com 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
username Ja E-post för kundanvändaren, till exempel contoso-consumer@contoso.com.
challenge_type Ja En blankstegsavgränsad lista över auktoriseringsutmaningssträngar som appen stöder, till exempel oob password redirect. Listan måste alltid innehålla utmaningstypen redirect . För den här begäran förväntas värdet innehålla oob redirect.

Svar om lyckad åtgärd

Exempel:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY..."
}
Parameter Description
continuation_token Fortsättningstoken som Microsoft Entra returnerar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Verifieringen av begärandeparametern misslyckades, till exempel när parametern challenge_type innehåller en ogiltig utmaningstyp eller om begäran inte innehöll client_id parametern som klient-ID-värdet är tomt eller ogiltigt. Använd parametern error_description för att lära dig den exakta orsaken till felet.
user_not_found Användarnamnet finns inte.
unsupported_challenge_type Parametervärdet challenge_type innehåller inte utmaningstypen redirect .
invalid_client Det klient-ID som appen innehåller i begäran är för en app som saknar inbyggd autentiseringskonfiguration, till exempel att den inte är en offentlig klient eller inte är aktiverad för intern autentisering. Använd parametern suberror för att lära dig den exakta orsaken till felet.
unauthorized_client Klient-ID:t som används i begäran har ett giltigt klient-ID-format, men finns inte i den externa klientorganisationen eller är felaktigt.

Om felparametern har värdet invalid_client innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_client fel:

Underordnat värde beskrivning
nativeauthapi_disabled Klient-ID för en app som inte är aktiverad för intern autentisering.

Steg 2: Välj en autentiseringsmetod

För att fortsätta med flödet använder appen fortsättningstoken som hämtades från föregående steg för att begära att Microsoft Entra väljer någon av de utmaningstyper som stöds för användaren att autentisera med. Appen skickar en POST-begäran till /challenge slutpunkten. Om den här begäran lyckas skickar Microsoft Entra ett engångslösenord till användarens konto-e-post. För närvarande stöder vi endast e-post-OTP.

Här är ett exempel (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/challenge
Content-Type: application/x-www-form-urlencoded

client_id=client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob redirect
&continuation_token=uY29tL2F1dGhlbnRpY... 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
challenge_type Nej En blankstegsavgränsad lista över auktoriseringsutmaningssträngar som appen stöder, till exempel oob redirect. Listan måste alltid innehålla utmaningstypen redirect . För den här begäran förväntas värdet innehålla oob redirect.

Svar om lyckad åtgärd

Exempel:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "challenge_type": "oob",
    "binding_method": "prompt ", 
    "challenge_channel": "email",
    "challenge_target_label ": "c***r@co**o**o.com ",
    "code_length": 8
} 
Parameter Description
continuation_token Fortsättningstoken som Microsoft Entra returnerar.
challenge_type Utmaningstyp som valts för användaren att autentisera med.
binding_method Det enda giltiga värdet är prompten. Den här parametern kan användas i framtiden för att erbjuda fler sätt för användaren att ange engångslösenordet. Utfärdad om challenge_type är oob
challenge_channel Typ av kanal genom vilken engångslösenordet skickades. För närvarande stöder vi e-post.
challenge_target_label Ett dolt e-postmeddelande där engångslösenordet skickades.
code_length Längden på engångslösenordet som Microsoft Entra genererar.

Om en app inte kan stödja en obligatorisk autentiseringsmetod av Microsoft Entra krävs en återställning till det webbaserade autentiseringsflödet. I det här scenariot informerar Microsoft Entra appen genom att returnera en typ av omdirigeringsutmaning i svaret:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Parameter Description
challenge_type Microsoft Entra returnerar ett svar som har en utmaningstyp. Värdet för den här utmaningstypen är omdirigering, vilket gör att appen kan använda det webbaserade autentiseringsflödet.

Det här svaret anses vara lyckat, men appen krävs för att växla till ett webbaserat autentiseringsflöde. I det här fallet rekommenderar vi att du använder ett autentiseringsbibliotek som stöds av Microsoft.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel när parametern challenge_type innehåller en ogiltig utmaningstyp eller om valideringen av fortsättningstoken misslyckades.
expired_token Fortsättningstoken har upphört att gälla.
unsupported_challenge_type Parametervärdet challenge_type innehåller inte utmaningstypen redirect .

Steg 3: Skicka engångslösenord

Appen skickar sedan en POST-begäran till /continue slutpunkten. I begäran måste appen inkludera användarens autentiseringsuppgifter som valdes i föregående steg och fortsättningstoken som utfärdades från /challenge slutpunkten.

Här är ett exempel på begäran (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/continue
Content-Type: application/x-www-form-urlencoded

continuation_token=uY29tL2F1dGhlbnRpY... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=oob 
&oob={otp_code}
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
grant_type Ja Det enda giltiga värdet är oob.
oob Ja Engångslösenordet som kundanvändaren fick i sin e-post. Ersätt {otp_code} med engångslösenordet som kundanvändaren fick i sin e-post. Om du vill skicka ett engångslösenord igen måste appen göra en begäran till /challenge slutpunkten igen.

Svar om lyckad åtgärd

Exempel:

HTTP/1.1 200 OK
Content-Type: application/json
{ 
    "expires_in": 600,
    "continuation_token": "czZCaGRSa3F0MzpnW...",
} 
Parameter Description
expires_in Tid i sekunder innan continuation_token upphör att gälla. Det maximala värdet expires_in är 600 sekunder.
continuation_token Fortsättningstoken som Microsoft Entra returnerar.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS55200: The continuation_token is invalid.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        55200 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.
suberror En felkodssträng som kan användas för att ytterligare klassificera typer av fel.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begäransparameter misslyckades, till exempel en validering av fortsättningstoken misslyckades eller så innehöll client_id begäran inte parametern att klient-ID-värdet är tomt eller ogiltigt eller att den externa klientadministratören inte har aktiverat SSPR och otp för e-post för alla klientanvändare. Använd parametern error_description för att lära dig den exakta orsaken till felet.
invalid_grant Beviljandetypen är okänd eller matchar inte värdet för den förväntade beviljandetypen. Använd parametern suberror för att lära dig den exakta orsaken till felet.
expired_token Fortsättningstoken har upphört att gälla.

Om felparametern har värdet invalid_grant innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror för ett invalid_grant fel:

Underordnat värde beskrivning
invalid_oob_value Engångslösenordet som tillhandahålls av användaren är ogiltigt.

Steg 4: Skicka ett nytt lösenord

Appen samlar in ett nytt lösenord från användaren och använder sedan fortsättningstoken som utfärdats av /continue slutpunkten för att skicka lösenordet genom att göra en POST-begäran till /submit slutpunkten.

Här är ett exempel (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/submit
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&continuation_token=czZCaGRSa3F0Mzp...
&new_password={new_password}
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.
new_password Ja Användarens nya lösenord. Ersätt {new_password} med användarens nya lösenord. Det är ditt ansvar att bekräfta att användaren är medveten om det lösenord de vill använda genom att ange fältet bekräfta lösenord i appens användargränssnitt. Du måste också se till att användaren är medveten om vad som utgör ett starkt lösenord enligt organisationens princip. Läs mer om Microsoft Entras lösenordsprinciper.

Svar om lyckad åtgärd

Exempel:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "poll_interval": 2
}
Parameter Description
continuation_token Fortsättningstoken som Microsoft Entra returnerar.
poll_interval Den minsta tid i sekunder som appen ska vänta mellan avsökningsbegäranden för att kontrollera status för begäran om lösenordsåterställning via /poll_completion slutpunkten, se steg 5

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.
suberror En felkodssträng som kan användas för att ytterligare klassificera typer av fel.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel en validering av fortsättningstoken misslyckades.
expired_token Fortsättningstoken har upphört att gälla.
invalid_grant Det angivna beviljandet är ogiltigt, till exempel att lösenordet som skickas är för kort. Använd parametern suberror för att lära dig den exakta orsaken till felet.

Om felparametern har värdet invalid_grant innehåller Microsoft Entra en suberror parameter i svaret. Här är de möjliga värdena för parametern suberror :

Underordnat värde beskrivning
password_too_weak Lösenordet är för svagt eftersom det inte uppfyller komplexitetskraven. Läs mer om Microsoft Entras lösenordsprinciper.
password_too_short Nytt lösenord är färre än 8 tecken. Läs mer om Microsoft Entras lösenordsprinciper.
password_too_long Nytt lösenord är längre än 256 tecken. Läs mer om Microsoft Entras lösenordsprinciper.
password_recently_used Det nya lösenordet får inte vara detsamma som det som nyligen använts. Läs mer om Microsoft Entras lösenordsprinciper.
password_banned Nytt lösenord innehåller ett ord, en fras eller ett mönster som är förbjudet. Läs mer om Microsoft Entras lösenordsprinciper.
password_is_invalid Lösenordet är ogiltigt, till exempel eftersom det använder otillåtna tecken. Läs mer om Microsoft Entras lösenordsprinciper. Det här svaret är möjligt om appen skickar ett användarlösenord.

Steg 5: Sök efter status för lösenordsåterställning

Eftersom uppdateringen av användarens konfiguration med det nya lösenordet medför viss fördröjning kan appen använda /poll_completion slutpunkten för att söka efter status för lösenordsåterställning i Microsoft Entra. Den minsta tid i sekunder som appen ska vänta mellan avsökningsbegäranden returneras från /submit slutpunkten i parametern poll_interval .

Här är ett exempel (vi presenterar exempelbegäran på flera rader för läsbarhet):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/poll_completion
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&continuation_token=czZCaGRSa3F0... 
Parameter Obligatoriskt Beskrivning
tenant_subdomain Ja Underdomänen för den externa klientorganisation som du skapade. I URL:en ersätter du {tenant_subdomain} med underdomänen Katalog (klientorganisation). Om din klients primära domän till exempel är contoso.onmicrosoft.com använder du contoso. Om du inte har klientunderdomänen kan du läsa klientinformationen.
continuation_token Ja Fortsättningstoken som Microsoft Entra returnerade i föregående begäran.
client_id Ja Program-ID :t (klient) för den app som du registrerade i administrationscentret för Microsoft Entra.

Svar om lyckad åtgärd

Exempel:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "status": "succeeded",
    "continuation_token":"czZCaGRSa3F0..."
} 
Parameter Description
status Status för begäran om återställningslösenord. Om Microsoft Entra returnerar statusen misslyckad kan appen skicka det nya lösenordet igen genom att göra en annan begäran till /submit slutpunkten och inkludera den nya fortsättningstoken.
continuation_token Fortsättningstoken som Microsoft Entra returnerar. Om statusen lyckas kan appen använda fortsättningstoken som Microsoft Entra returnerar för att begära säkerhetstoken via slutpunkten enligt beskrivningen /token i steg 5 i registreringsflödet. Det innebär att när en användare har återställt sitt lösenord kan du logga in dem direkt i din app utan att initiera ett nytt inloggningsflöde.

Här är de möjliga statusar som Microsoft Entra returnerar (möjliga värden för parametern status ):

Felvärde beskrivning
succeeded Lösenordsåterställningen har slutförts.
failed Lösenordsåterställningen misslyckades. Appen kan skicka det nya lösenordet igen genom att göra en annan begäran till /submit slutpunkten.
not_started Lösenordsåterställningen har inte startats. Appen kan kontrollera statusen igen senare.
in_progress Lösenordsåterställning pågår. Appen kan kontrollera statusen igen senare.

Felsvar

Exempel:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "expired_token", 
    "error_description": "AADSTS901007: The continuation_token is expired.\r\nTrace ID: b386ad47-23ae-4092-...-1000000\r\nCorrelation ID: 72f57f26-...-3fa6\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        552003 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "b386ad47-...-0000", 
    "correlation_id": "72f57f26-...-3fa6"
} 
Parameter Description
error En felkodssträng som kan användas för att klassificera typer av fel och reagera på fel.
error_description Ett specifikt felmeddelande som kan hjälpa dig att identifiera orsaken till ett autentiseringsfel.
error_codes En lista över Microsoft Entra-specifika felkoder som kan hjälpa dig att diagnostisera fel.
timestamp Den tid då felet inträffade.
trace_id En unik identifierare för begäran som kan hjälpa dig att diagnostisera fel.
correlation_id En unik identifierare för begäran som kan hjälpa till med diagnostik mellan komponenter.

Här är de möjliga fel som du kan stöta på (möjliga värden för parametern error ):

Felvärde beskrivning
invalid_request Valideringen av begärandeparametern misslyckades, till exempel att valideringen av fortsättningstoken misslyckades.
expired_token Fortsättningstoken har upphört att gälla.

Nästa steg