Azure Active Directory B2C: flusso del codice di autorizzazione di OAuth 2.0Azure Active Directory B2C: OAuth 2.0 authorization code flow

È possibile usare la concessione del codice di autorizzazione OAuth 2.0 nelle app che vengono installate su un dispositivo per ottenere l'accesso a risorse protette, ad esempio le API Web.You can use the OAuth 2.0 authorization code grant in apps installed on a device to gain access to protected resources, such as web APIs. Con l'implementazione di Azure Active Directory B2C (Azure AD B2C) di OAuth 2.0 è possibile aggiungere attività di gestione dell'iscrizione, dell'accesso e altre attività di gestione delle identità alle app per desktop e per dispositivi mobili.By using the Azure Active Directory B2C (Azure AD B2C) implementation of OAuth 2.0, you can add sign-up, sign-in, and other identity management tasks to your mobile and desktop apps. Questo articolo è indipendente dal linguaggio.This article is language-independent. Descrive come inviare e ricevere messaggi HTTP senza usare alcuna libreria open source.In the article, we describe how to send and receive HTTP messages without using any open-source libraries.

Il flusso del codice di autorizzazione di OAuth 2.0 è descritto nella sezione 4.1 della specifica di OAuth 2.0.The OAuth 2.0 authorization code flow is described in section 4.1 of the OAuth 2.0 specification. È possibile usarlo per eseguire l'autenticazione e l'autorizzazione nella maggior parte dei tipi di app, tra cui le App Web e le app installate in modo nativo.You can use it for authentication and authorization in most app types, including web apps and natively installed apps. È possibile usare il flusso del codice di autorizzazione di OAuth 2.0 per acquisire in modo sicuro token di accesso per le app, i quali possono essere usati per accedere a risorse protette da un server di autorizzazione.You can use the OAuth 2.0 authorization code flow to securely acquire access tokens for your apps, which can be used to access resources that are secured by an authorization server.

Questo articolo illustra il flusso del codice di autorizzazione di OAuth 2.0 dei client pubblici.This article focuses on the public clients OAuth 2.0 authorization code flow. Un client pubblico è qualsiasi applicazione client che non può essere considerata attendibile in modo sicuro per mantenere l'integrità di una password segreta.A public client is any client application that cannot be trusted to securely maintain the integrity of a secret password. Questo include app per dispositivi mobili, app per desktop e pressoché qualsiasi applicazione che viene eseguita su un dispositivo e deve ottenere token di accesso.This includes mobile apps, desktop apps, and essentially any application that runs on a device and needs to get access tokens.

Nota

Per aggiungere la gestione delle identità a un'App Web usando Azure AD B2C, usare OpenID Connect al posto di OAuth 2.0.To add identity management to a web app by using Azure AD B2C, use OpenID Connect instead of OAuth 2.0.

Azure AD B2C estende i flussi standard OAuth 2.0 per non limitarsi esclusivamente a semplici operazioni di autorizzazione e autenticazione.Azure AD B2C extends the standard OAuth 2.0 flows to do more than simple authentication and authorization. Introduce il parametro di criteri.It introduces the policy parameter. Con i criteri integrati è possibile usare OAuth 2.0 per aggiungere esperienze utente all'app, ad esempio la gestione dell'iscrizione, dell'accesso e del profilo.With built-in policies, you can use OAuth 2.0 to add user experiences to your app, such as sign-up, sign-in, and profile management. Questo articolo illustra come usare OAuth 2.0 e i criteri per implementare ognuna di queste esperienze nelle applicazioni native.In this article, we show you how to use OAuth 2.0 and policies to implement each of these experiences in your native applications. Illustra anche come ottenere i token di accesso per accedere alle API Web.We also show you how to get access tokens for accessing web APIs.

Nelle richieste HTTP di esempio in questo articolo si usa la directory di Azure AD B2C di esempio, fabrikamb2c.onmicrosoft.com. Si usano anche i criteri e l'applicazione di esempio.In the example HTTP requests in this article, we use our sample Azure AD B2C directory, fabrikamb2c.onmicrosoft.com. We also use our sample application and policies. È possibile provare le richieste in autonomia usando questi valori o sostituendoli con valori personalizzati.You can try the requests yourself by using these values, or you can replace them with your own values. Altre informazioni su come ottenere la directory, l'applicazione e i criteri di Azure AD B2C personalizzati.Learn how to get your own Azure AD B2C directory, application, and policies.

1. Ottenere un codice di autorizzazione1. Get an authorization code

Il flusso del codice di autorizzazione ha inizio con il client che indirizza l'utente all'endpoint /authorize .The authorization code flow begins with the client directing the user to the /authorize endpoint. Questa è la parte interattiva del flusso, dove l'utente esegue operazioni.This is the interactive part of the flow, where the user takes action. In questa richiesta il client indica nel parametro scope le autorizzazioni che deve acquisire dall'utente.In this request, the client indicates in the scope parameter the permissions that it needs to acquire from the user. Nel parametro p indica i criteri da eseguire.In the p parameter, it indicates the policy to execute. Di seguito vengono presentati tre esempi (con interruzioni di riga per migliorare la leggibilità), ognuno dei quali usa criteri diversi.The following three examples (with line breaks for readability) each use a different policy.

Uso di un criterio di accessoUse a sign-in policy

GET https://login.microsoftonline.com/fabrikamb2c.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&response_type=code
&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob
&response_mode=query
&scope=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6%20offline_access
&state=arbitrary_data_you_can_receive_in_the_response
&p=b2c_1_sign_in

Uso di un criterio di iscrizioneUse a sign-up policy

GET https://login.microsoftonline.com/fabrikamb2c.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&response_type=code
&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob
&response_mode=query
&scope=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6%20offline_access
&state=arbitrary_data_you_can_receive_in_the_response
&p=b2c_1_sign_up

Uso di un criterio di modifica del profiloUse an edit-profile policy

GET https://login.microsoftonline.com/fabrikamb2c.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&response_type=code
&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob
&response_mode=query
&scope=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6%20offline_access
&state=arbitrary_data_you_can_receive_in_the_response
&p=b2c_1_edit_profile
ParametroParameter Obbligatorio?Required? DescrizioneDescription
client_idclient_id ObbligatorioRequired ID applicazione assegnato all'app nel portale di Azure.The application ID assigned to your app in the Azure portal.
response_typeresponse_type ObbligatorioRequired Tipo di risposta, che deve includere code per il flusso del codice di autorizzazione.The response type, which must include code for the authorization code flow.
redirect_uriredirect_uri ObbligatorioRequired URI di reindirizzamento dell'app dove le risposte di autenticazione possono essere inviate e ricevute dall'app.The redirect URI of your app, where authentication responses are sent and received by your app. Deve corrispondere esattamente a uno degli URI di reindirizzamento registrati nel portale, ad eccezione del fatto che deve essere codificato come URL.It must exactly match one of the redirect URIs that you registered in the portal, except that it must be URL-encoded.
scopescope ObbligatorioRequired Elenco di ambiti separati da spazi.A space-separated list of scopes. Un singolo valore di ambito indica ad Azure Active Directory (Azure AD) entrambe le autorizzazioni richieste.A single scope value indicates to Azure Active Directory (Azure AD) both of the permissions that are being requested. L'uso dell'ID client come ambito indica che l'app necessita di un token di accesso, che può essere usato per il servizio o l'API Web, rappresentato dallo stesso ID client.Using the client ID as the scope indicates that your app needs an access token that can be used against your own service or web API, represented by the same client ID. L'ambito offline_access indica che l'app necessita di un token di aggiornamento per avere un accesso di lunga durata alle risorse.The offline_access scope indicates that your app needs a refresh token for long-lived access to resources. È anche possibile usare l'ambito openid per richiedere un token ID ad Azure Active Directory B2C.You also can use the openid scope to request an ID token from Azure AD B2C.
response_moderesponse_mode ConsigliatoRecommended Metodo da usare per inviare all'app il codice di autorizzazione risultante.The method that you use to send the resulting authorization code back to your app. Può essere query, form_post o fragment.It can be query, form_post, or fragment.
statestate ConsigliatoRecommended Valore incluso nella richiesta che viene restituito nella risposta del token.A value included in the request that is returned in the token response. Può trattarsi di una stringa di qualsiasi contenuto si voglia usare.It can be a string of any content that you want to use. Per evitare attacchi di richiesta intersito falsa, viene in genere usato un valore univoco generato casualmente.Usually, a randomly generated unique value is used, to prevent cross-site request forgery attacks. Anche lo stato viene usato per codificare le informazioni sullo stato dell'utente nell'app prima del verificarsi della richiesta di autenticazione,The state also is used to encode information about the user's state in the app before the authentication request occurred. ad esempio la pagina in cui si trova l'utente o i criteri che vengono eseguiti.For example, the page the user was on, or the policy that was being executed.
pp ObbligatorioRequired Criteri che vengono eseguiti.The policy that is executed. Si tratta del nome di criteri creati nella directory di Azure AD B2C.It's the name of a policy that is created in your Azure AD B2C directory. Il valore del nome dei criteri deve iniziare con b2c_1_.The policy name value should begin with b2c_1_. Per altre informazioni sui criteri, vedere l'articolo relativo ai criteri predefiniti di Azure AD B2C.To learn more about policies, see Azure AD B2C built-in policies.
promptprompt FacoltativoOptional Tipo di interazione utente obbligatoria.The type of user interaction that is required. L'unico valore valido in questa fase è login, che impone all'utente di immettere le credenziali per la richiesta.Currently, the only valid value is login, which forces the user to enter their credentials on that request. L'accesso Single Sign-On non avrà effetto.Single sign-on will not take effect.

Viene a questo punto richiesto all'utente di completare il flusso di lavoro dei criteri.At this point, the user is asked to complete the policy's workflow. È possibile che venga richiesto all'utente di immettere nome utente e password, di accedere con un'identità di social networking, di iscriversi alla directory o di effettuare qualsiasi altro passaggio.This might involve the user entering their username and password, signing in with a social identity, signing up for the directory, or any other number of steps. Le azioni dell'utente dipendono dal modo in cui sono definiti i criteri.User actions depend on how the policy is defined.

Dopo che l'utente ha completato i criteri, Azure AD restituisce una risposta per l'app in corrispondenza del valore usato per redirect_uri.After the user completes the policy, Azure AD returns a response to your app at the value you used for redirect_uri. Viene usato il metodo specificato nel parametro response_mode.It uses the method specified in the response_mode parameter. La risposta è esattamente la stessa per ogni scenario di azione dell'utente, indipendentemente dai criteri eseguiti.The response is exactly the same for each of the user action scenarios, independent of the policy that was executed.

Una risposta con esito positivo che usa response_mode=query ha un aspetto simile al seguente:A successful response that uses response_mode=query looks like this:

GET urn:ietf:wg:oauth:2.0:oob?
code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...        // the authorization_code, truncated
&state=arbitrary_data_you_can_receive_in_the_response                // the value provided in the request
ParametroParameter DescrizioneDescription
codecode Codice di autorizzazione richiesto dall'app.The authorization code that the app requested. L'app può usare il codice di autorizzazione per richiedere un token di accesso per una risorsa di destinazione.The app can use the authorization code to request an access token for a target resource. I codici di autorizzazione hanno una durata molto breve.Authorization codes are very short-lived. In genere scadono dopo circa 10 minuti.Typically, they expire after about 10 minutes.
statestate Vedere la descrizione completa nella tabella della sezione precedente.See the full description in the table in the preceding section. Se un parametro state è incluso nella richiesta, lo stesso valore deve essere visualizzato nella risposta.If a state parameter is included in the request, the same value should appear in the response. L'app deve verificare che i valori state nella richiesta e nella risposta siano identici.The app should verify that the state values in the request and response are identical.

Anche le risposte di errore possono essere inviate all'URI di reindirizzamento in modo che l'app possa gestirle adeguatamente:Error responses also can be sent to the redirect URI so that the app can handle them appropriately:

GET urn:ietf:wg:oauth:2.0:oob?
error=access_denied
&error_description=The+user+has+cancelled+entering+self-asserted+information
&state=arbitrary_data_you_can_receive_in_the_response
ParametroParameter DescrizioneDescription
errorerror Stringa di codice di errore che è possibile usare per classificare i tipi di errori che si verificano.An error code string that you can use to classify the types of errors that occur. È possibile usare la stringa anche per rispondere agli errori.You also can use the string to react to errors.
error_descriptionerror_description Messaggio di errore specifico che consente di identificare la causa principale di un errore di autenticazione.A specific error message that can help you identify the root cause of an authentication error.
statestate Vedere la descrizione completa nella tabella precedente.See the full description in the preceding table. Se un parametro state è incluso nella richiesta, lo stesso valore deve essere visualizzato nella risposta.If a state parameter is included in the request, the same value should appear in the response. L'app deve verificare che i valori state nella richiesta e nella risposta siano identici.The app should verify that the state values in the request and response are identical.

2. Acquisizione di un token2. Get a token

Ora che è stato acquisito il codice di autorizzazione, è possibile riscattare code per un token per la risorsa desiderata inviando una richiesta POST all'endpoint /token.Now that you've acquired an authorization code, you can redeem the code for a token to the intended resource by sending a POST request to the /token endpoint. In Azure AD B2C, l'unica risorsa per la quale è possibile richiedere un token è l'API Web back-end dell'app stessa.In Azure AD B2C, the only resource that you can request a token for is your app's own back-end web API. La convenzione usata per richiedere un token di questo tipo consiste nell'usare l'ID client dell'app come ambito:The convention that's used for requesting a token to yourself is to use your app's client ID as the scope:

POST fabrikamb2c.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_sign_in HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6&scope=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...&redirect_uri=urn:ietf:wg:oauth:2.0:oob
ParametroParameter Obbligatorio?Required? DescrizioneDescription
pp ObbligatorioRequired Il criterio utilizzato per acquisire il codice di autorizzazione.The policy that was used to acquire the authorization code. Non è possibile usare un criterio diverso in questa richiesta.You cannot use a different policy in this request. Si noti che questo parametro viene aggiunto alla stringa di query, non al corpo della richiesta POST.Note that you add this parameter to the query string, not in the POST body.
client_idclient_id ObbligatorioRequired ID applicazione assegnato all'app nel portale di Azure.The application ID assigned to your app in the Azure portal.
grant_typegrant_type ObbligatorioRequired Tipo di concessione.The type of grant. Per il flusso del codice di autorizzazione il tipo di concessione deve essere authorization_code.For the authorization code flow, the grant type must be authorization_code.
scopescope ConsigliatoRecommended Elenco di ambiti separati da spazi.A space-separated list of scopes. Un valore per l'ambito indica ad Azure AD entrambe le autorizzazioni richieste.A single scope value indicates to Azure AD both of the permissions that are being requested. L'uso dell'ID client come ambito indica che l'app necessita di un token di accesso, che può essere usato per il servizio o l'API Web, rappresentato dallo stesso ID client.Using the client ID as the scope indicates that your app needs an access token that can be used against your own service or web API, represented by the same client ID. L'ambito offline_access indica che l'app necessita di un token di aggiornamento per avere un accesso di lunga durata alle risorse.The offline_access scope indicates that your app needs a refresh token for long-lived access to resources. È anche possibile usare l'ambito openid per richiedere un token ID ad Azure Active Directory B2C.You also can use the openid scope to request an ID token from Azure AD B2C.
codecode ObbligatorioRequired Codice di autorizzazione acquisito nella prima sezione del flusso.The authorization code that you acquired in the first leg of the flow.
redirect_uriredirect_uri ObbligatorioRequired L'URI di reindirizzamento dell'applicazione dove è stato ricevuto il codice di autorizzazione.The redirect URI of the application where you received the authorization code.

Una risposta di token con esito positivo ha un aspetto simile al seguente:A successful token response looks like this:

{
    "not_before": "1442340812",
    "token_type": "Bearer",
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "scope": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
    "expires_in": "3600",
    "refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
}
ParametroParameter DescrizioneDescription
not_beforenot_before Il momento in cui il token viene considerato valido, nel periodo.The time at which the token is considered valid, in epoch time.
token_typetoken_type Valore del tipo di token.The token type value. L'unico tipo supportato da Azure AD è Bearer.The only type that Azure AD supports is Bearer.
access_tokenaccess_token Token JSON Web (JWT) firmato richiesto.The signed JSON Web Token (JWT) that you requested.
scopescope Ambiti per i quali il token è valido.The scopes that the token is valid for. È possibile usare gli ambiti anche per memorizzare i token nella cache per un uso successivo.You also can use scopes to cache tokens for later use.
expires_inexpires_in Periodo di validità del token (in secondi).The length of time that the token is valid (in seconds).
refresh_tokenrefresh_token Token di aggiornamento di OAuth 2.0.An OAuth 2.0 refresh token. L'app può usare questo token per acquisire token aggiuntivi dopo la scadenza del token corrente.The app can use this token to acquire additional tokens after the current token expires. I token di aggiornamento sono di lunga durata.Refresh tokens are long-lived. È possibile usarli per mantenere l'accesso alle risorse per periodi prolungati di tempo.You can use them to retain access to resources for extended periods of time. Per altre informazioni, vedere le informazioni di riferimento sul token di Azure AD B2C.For more information, see the Azure AD B2C token reference.

Le risposte di errore si presentano nel modo seguente:Error responses look like this:

{
    "error": "access_denied",
    "error_description": "The user revoked access to the app.",
}
ParametroParameter DescrizioneDescription
errorerror Stringa di codice di errore che è possibile usare per classificare i tipi di errori che si verificano.An error code string that you can use to classify the types of errors that occur. È possibile usare la stringa anche per rispondere agli errori.You also can use the string to react to errors.
error_descriptionerror_description Messaggio di errore specifico che consente di identificare la causa principale di un errore di autenticazione.A specific error message that can help you identify the root cause of an authentication error.

3. Uso del token3. Use the token

Dopo avere acquisito un token di accesso, è possibile usarlo nelle richieste alle API Web back-end includendolo nell'intestazione Authorization:Now that you've successfully acquired an access token, you can use the token in requests to your back-end web APIs by including it in the Authorization header:

GET /tasks
Host: https://mytaskwebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...

4. Aggiornamento del token4. Refresh the token

I token di accesso e i token ID hanno breve durata.Access tokens and ID tokens are short-lived. È necessario aggiornarli dopo la scadenza per continuare ad accedere alle risorse.After they expire, you must refresh them to continue to access resources. Inviare a tale scopo un'altra richiesta POST per l'endpoint /token.To do this, submit another POST request to the /token endpoint. questa volta specificando refresh_token invece di code:This time, provide the refresh_token instead of the code:

POST fabrikamb2c.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_sign_in HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6&scope=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access&refresh_token=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...&redirect_uri=urn:ietf:wg:oauth:2.0:oob
ParametroParameter Obbligatorio?Required? DescrizioneDescription
pp ObbligatorioRequired Criteri usati per acquisire il token di aggiornamento originale.The policy that was used to acquire the original refresh token. Non è possibile usare un criterio diverso in questa richiesta.You cannot use a different policy in this request. Si noti che questo parametro viene aggiunto alla stringa di query, non al corpo della richiesta POST.Note that you add this parameter to the query string, not in the POST body.
client_idclient_id ConsigliatoRecommended ID applicazione assegnato all'app nel portale di Azure.The application ID assigned to your app in the Azure portal.
grant_typegrant_type ObbligatorioRequired Tipo di concessione.The type of grant. Per questa parte del flusso del codice di autorizzazione il tipo di concessione deve essere refresh_token.For this leg of the authorization code flow, the grant type must be refresh_token.
scopescope ConsigliatoRecommended Elenco di ambiti separati da spazi.A space-separated list of scopes. Un valore per l'ambito indica ad Azure AD entrambe le autorizzazioni richieste.A single scope value indicates to Azure AD both of the permissions that are being requested. L'uso dell'ID client come ambito indica che l'app necessita di un token di accesso, che può essere usato per il servizio o l'API Web, rappresentato dallo stesso ID client.Using the client ID as the scope indicates that your app needs an access token that can be used against your own service or web API, represented by the same client ID. L'ambito offline_access indica che l'app necessita di un token di aggiornamento per un accesso di lunga durata alle risorse.The offline_access scope indicates that your app will need a refresh token for long-lived access to resources. È anche possibile usare l'ambito openid per richiedere un token ID ad Azure Active Directory B2C.You also can use the openid scope to request an ID token from Azure AD B2C.
redirect_uriredirect_uri FacoltativoOptional L'URI di reindirizzamento dell'applicazione dove è stato ricevuto il codice di autorizzazione.The redirect URI of the application where you received the authorization code.
refresh_tokenrefresh_token ObbligatorioRequired Token di aggiornamento originale acquisito nella seconda sezione del flusso.The original refresh token that you acquired in the second leg of the flow.

Una risposta di token con esito positivo ha un aspetto simile al seguente:A successful token response looks like this:

{
    "not_before": "1442340812",
    "token_type": "Bearer",
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "scope": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
    "expires_in": "3600",
    "refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
}
ParametroParameter DescrizioneDescription
not_beforenot_before Il momento in cui il token viene considerato valido, nel periodo.The time at which the token is considered valid, in epoch time.
token_typetoken_type Valore del tipo di token.The token type value. L'unico tipo supportato da Azure AD è Bearer.The only type that Azure AD supports is Bearer.
access_tokenaccess_token Token JWT firmato richiesto.The signed JWT that you requested.
scopescope Ambiti per i quali il token è valido.The scopes that the token is valid for. È possibile usare gli ambiti anche per memorizzare i token nella cache per un uso successivo.You also can use the scopes to cache tokens for later use.
expires_inexpires_in Periodo di validità del token (in secondi).The length of time that the token is valid (in seconds).
refresh_tokenrefresh_token Token di aggiornamento di OAuth 2.0.An OAuth 2.0 refresh token. L'app può usare questo token per acquisire token aggiuntivi dopo la scadenza del token corrente.The app can use this token to acquire additional tokens after the current token expires. I token di aggiornamento hanno durata elevata e possono essere usati per mantenere l'accesso alle risorse per lunghi periodi di tempo.Refresh tokens are long-lived, and can be used to retain access to resources for extended periods of time. Per altre informazioni, vedere le informazioni di riferimento sul token di Azure AD B2C.For more information, see the Azure AD B2C token reference.

Le risposte di errore si presentano nel modo seguente:Error responses look like this:

{
    "error": "access_denied",
    "error_description": "The user revoked access to the app.",
}
ParametroParameter DescrizioneDescription
errorerror Stringa di codice di errore che è possibile usare per classificare i tipi di errori che si verificano.An error code string that you can use to classify types of errors that occur. È possibile usare la stringa anche per rispondere agli errori.You also can use the string to react to errors.
error_descriptionerror_description Messaggio di errore specifico che consente di identificare la causa principale di un errore di autenticazione.A specific error message that can help you identify the root cause of an authentication error.

Usare la directory di Azure AD B2CUse your own Azure AD B2C directory

Per provare queste richieste, completare i passaggi seguenti.To try these requests yourself, complete the following steps. Sostituire i valori dell'esempio usato in questo articolo con valori personalizzati.Replace the example values we used in this article with your own values.

  1. Creare una directory Azure AD B2C.Create an Azure AD B2C directory. Usare il nome della directory nelle richieste.Use the name of your directory in the requests.
  2. Creare un'applicazione per ottenere un ID applicazione e un URI di reindirizzamento.Create an application to obtain an application ID and a redirect URI. Includere un client nativo nell'app.Include a native client in your app.
  3. Creare i criteri per ottenere i nomi dei criteri.Create your policies to obtain your policy names.