Flujo de código de autorización de OAuth 2.0 en Azure Active Directory B2COAuth 2.0 authorization code flow in Azure Active Directory B2C

Puede usar la concesión de un código de autorización de OAuth 2.0 en las aplicaciones instaladas en un dispositivo para obtener acceso a recursos protegidos, como las 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. Mediante la implementación de OAuth 2.0 de Azure Active Directory B2C (Azure AD B2C) puede agregar tareas de registro, inicio de sesión y otras tareas de administración de identidades a las aplicaciones móviles y de escritorio.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. Este artículo es independiente del lenguajeThis article is language-independent. y en él describimos cómo enviar y recibir mensajes HTTP sin usar ninguna biblioteca de código abierto.In the article, we describe how to send and receive HTTP messages without using any open-source libraries.

El flujo de código de autorización de OAuth 2.0 se describe en la sección 4.1 de la especificación de OAuth 2.0.The OAuth 2.0 authorization code flow is described in section 4.1 of the OAuth 2.0 specification. Puede usarlo para llevar a cabo la autenticación y la autorización en la mayoría de los tipos de aplicación, incluidas las aplicaciones web y las aplicaciones instaladas de forma nativa.You can use it for authentication and authorization in most application types, including web applications and natively installed applications. Puede usar el flujo de código de autorización de OAuth 2.0 para adquirir de forma segura tokens de acceso y tokens de actualización para las aplicaciones, que se pueden usar para acceder a recursos protegidos por un servidor de autorización.You can use the OAuth 2.0 authorization code flow to securely acquire access tokens and refresh tokens for your applications, which can be used to access resources that are secured by an authorization server. El token de actualización permite que el cliente adquiera nuevos tokens de acceso (y de actualización) cuando expira el token de acceso, normalmente al cabo de una hora.The refresh token allows the client to acquire new access (and refresh) tokens once the access token expires, typically after one hour.

Este artículo se centra en el flujo de código de autorización de OAuth 2.0 de clientes públicos.This article focuses on the public clients OAuth 2.0 authorization code flow. Un cliente público es cualquier aplicación cliente que no es de confianza para mantener la integridad de una contraseña secreta de forma segura.A public client is any client application that cannot be trusted to securely maintain the integrity of a secret password. Esto incluye las aplicaciones móviles, las aplicaciones de escritorio y prácticamente cualquier aplicación que se ejecute en un dispositivo y necesite obtener tokens de acceso.This includes mobile apps, desktop applications, and essentially any application that runs on a device and needs to get access tokens.

Nota

Para agregar la administración de identidades a una aplicación web mediante Azure AD B2C, use OpenID Connect en lugar de 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 extiende los flujos de OAuth 2.0 estándar para realizar algo más que una autorización y autenticación simples.Azure AD B2C extends the standard OAuth 2.0 flows to do more than simple authentication and authorization. Incorpora el flujo de usuario.It introduces the user flow. Con los flujos de usuario, puede usar OAuth 2.0 para agregar experiencias de usuario a la aplicación, como el registro, el inicio de sesión y la administración de perfiles.With user flows, you can use OAuth 2.0 to add user experiences to your application, such as sign-up, sign-in, and profile management. Entre los proveedores de identidades que usan el protocolo OAuth 2.0 se incluyen: Amazon, Azure Active Directory, Facebook, GitHub, Google y LinkedIn.Identity providers that use the OAuth 2.0 protocol include Amazon, Azure Active Directory, Facebook, GitHub, Google, and LinkedIn.

Para probar las solicitudes HTTP en este artículo, haga lo siguiente:To try the HTTP requests in this article:

  1. Reemplace {tenant} por el nombre del inquilino de Azure AD B2C.Replace {tenant} with the name of your Azure AD B2C tenant.
  2. Reemplace 90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 por el id. de la aplicación que registró previamente en el inquilino de Azure AD B2C.Replace 90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 with the app ID of an application you've previously registered in your Azure AD B2C tenant.
  3. Reemplace {policy} por el nombre de una directiva que haya creado en el inquilino, por ejemplo b2c_1_sign_in.Replace {policy} with the name of a policy you've created in your tenant, for example b2c_1_sign_in.

1. Obtener un código de autorización1. Get an authorization code

El flujo del código de autorización comienza con el cliente dirigiendo al usuario al punto de conexión /authorize .The authorization code flow begins with the client directing the user to the /authorize endpoint. Esta es la parte interactiva del flujo, en la que el usuario lleva a cabo la acción.This is the interactive part of the flow, where the user takes action. En esta solicitud, el cliente indica en el parámetro scope los permisos que debe obtener por parte del usuario.In this request, the client indicates in the scope parameter the permissions that it needs to acquire from the user. Los siguientes tres ejemplos (con saltos de línea para facilitar la lectura) usan cada uno un flujo de usuario diferente.The following three examples (with line breaks for readability) each use a different user flow.

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/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
ParámetroParameter ¿Necesario?Required? DESCRIPCIÓNDescription
{tenant}{tenant} ObligatorioRequired Nombre de su inquilino de Azure AD B2C.Name of your Azure AD B2C tenant
{policy}{policy} ObligatorioRequired Flujo de usuario que se va a ejecutar.The user flow to be run. Especifique el nombre del flujo de usuario que creó en el inquilino de Azure AD B2C.Specify the name of a user flow you've created in your Azure AD B2C tenant. Por ejemplo: b2c_1_sign_in, b2c_1_sign_up o b2c_1_edit_profile.For example: b2c_1_sign_in, b2c_1_sign_up, or b2c_1_edit_profile.
client_idclient_id ObligatorioRequired Identificador de aplicación asignado a la aplicación en Azure Portal.The application ID assigned to your app in the Azure portal.
response_typeresponse_type ObligatorioRequired El tipo de respuesta, que debe incluir code para el flujo de código de autorización.The response type, which must include code for the authorization code flow.
redirect_uriredirect_uri ObligatorioRequired El URI de redirección de la aplicación, donde su aplicación envía y recibe las respuestas de autenticación.The redirect URI of your app, where authentication responses are sent and received by your app. Debe coincidir exactamente con uno de los URI de redirección que registró en el portal, con la excepción de que debe estar codificado como URL.It must exactly match one of the redirect URIs that you registered in the portal, except that it must be URL-encoded.
scopescope ObligatorioRequired Una lista de ámbitos separada por espacios.A space-separated list of scopes. Un valor de ámbito único indica a Azure Active Directory (Azure AD) los dos permisos que se solicitan.A single scope value indicates to Azure Active Directory (Azure AD) both of the permissions that are being requested. El uso del identificador de cliente como ámbito indica que la aplicación necesita un token de acceso que se puede usar con su propio servicio o API web, representado por el mismo identificador de cliente.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. El ámbito offline_access indica que la aplicación necesita un token de actualización para un acceso de larga duración a los recursos.The offline_access scope indicates that your app needs a refresh token for long-lived access to resources. También puede usar el ámbito openid para solicitar un token de identificador desde Azure AD B2C.You also can use the openid scope to request an ID token from Azure AD B2C.
response_moderesponse_mode RecomendadoRecommended El método que se usa para devolver el código de autorización resultante a la aplicación.The method that you use to send the resulting authorization code back to your app. Puede ser query, form_post o fragment.It can be query, form_post, or fragment.
statestate RecomendadoRecommended Un valor incluido en la solicitud que puede ser una cadena de cualquier contenido que desee usar.A value included in the request that can be a string of any content that you want to use. Se suele usar un valor único generado de forma aleatoria para evitar los ataques de falsificación de solicitudes entre sitios.Usually, a randomly generated unique value is used, to prevent cross-site request forgery attacks. El estado también se usa para codificar información sobre el estado del usuario en la aplicación antes de que se haya producido la solicitud de autenticación.The state also is used to encode information about the user's state in the app before the authentication request occurred. Por ejemplo, la página en la que se encontraba el usuario o el flujo de usuario que se estaba ejecutando.For example, the page the user was on, or the user flow that was being executed.
símbolo del sistemaprompt OpcionalOptional El tipo de interacción necesaria con el usuario.The type of user interaction that is required. Actualmente, el único valor válido es login, que obliga al usuario a escribir sus credenciales en esa solicitud.Currently, the only valid value is login, which forces the user to enter their credentials on that request. El inicio de sesión único no surtirá efecto.Single sign-on will not take effect.

En este punto, se le pedirá al usuario que complete el flujo de trabajo del flujo de usuario.At this point, the user is asked to complete the user flow's workflow. Esto puede implicar que el usuario tenga que escribir su nombre de usuario y contraseña, iniciar sesión con una identidad social, registrarse en el directorio o realizar otros pasos.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. Las acciones del usuario dependerán de cómo se defina el flujo de usuario.User actions depend on how the user flow is defined.

Cuando el usuario haya completado el flujo de usuario, Azure AD devuelve una respuesta a la aplicación en el valor que ha usado para redirect_uri.After the user completes the user flow, Azure AD returns a response to your app at the value you used for redirect_uri. Usa el método especificado en el parámetro response_mode.It uses the method specified in the response_mode parameter. La respuesta es exactamente la misma para cada uno de los escenarios de acción del usuario, independientemente del flujo de usuario que se haya ejecutado.The response is exactly the same for each of the user action scenarios, independent of the user flow that was executed.

Una respuesta correcta que usa response_mode=query tiene este aspecto: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
ParámetroParameter DESCRIPCIÓNDescription
códigocode El código de autorización que la aplicación solicitó.The authorization code that the app requested. La aplicación puede usar el código de autorización para solicitar un token de acceso para un recurso de destino.The app can use the authorization code to request an access token for a target resource. Los códigos de autorización tienen una duración muy breve.Authorization codes are very short-lived. Normalmente, caducan al cabo de unos 10 minutos.Typically, they expire after about 10 minutes.
statestate Vea la descripción completa en la tabla de la sección anterior.See the full description in the table in the preceding section. Si un parámetro state está incluido en la solicitud, debería aparecer el mismo valor en la respuesta.If a state parameter is included in the request, the same value should appear in the response. La aplicación debe comprobar que los valores state de la solicitud y de la respuesta sean idénticos.The app should verify that the state values in the request and response are identical.

Las respuestas de error también se pueden enviar al URI de redirección para que la aplicación pueda controlarlas correctamente: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
ParámetroParameter DESCRIPCIÓNDescription
errorerror Una cadena de código de error que se puede usar para clasificar los tipos de errores que se producen.An error code string that you can use to classify the types of errors that occur. También puede usar la cadena para reaccionar frente a errores.You also can use the string to react to errors.
error_descriptionerror_description Un mensaje de error específico que puede ayudarlo a identificar la causa raíz de un error de autenticación.A specific error message that can help you identify the root cause of an authentication error.
statestate Vea la descripción completa en la tabla anterior.See the full description in the preceding table. Si un parámetro state está incluido en la solicitud, debería aparecer el mismo valor en la respuesta.If a state parameter is included in the request, the same value should appear in the response. La aplicación debe comprobar que los valores state de la solicitud y de la respuesta sean idénticos.The app should verify that the state values in the request and response are identical.

2. Obtención de un token2. Get a token

Ahora que ha adquirido un código de autorización, puede canjear el elemento code por un token al recurso deseado mediante el envío de una solicitud POST al punto de conexión /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. En Azure AD B2C, puede solicitar tokens de acceso para otras API como de costumbre especificando sus ámbitos en la solicitud.In Azure AD B2C, you can request access tokens for other API's as usual by specifying their scope(s) in the request.

También puede solicitar un token de acceso para su propia API web de back-end de la aplicación mediante la convención del uso del identificador del cliente de la aplicación como el ámbito solicitado (lo que resultará en un token de acceso con ese identificador de cliente como el "público"):You can also request an access token for your app's own back-end Web API by convention of using the app's client ID as the requested scope (which will result in an access token with that client ID as the "audience"):

POST {tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.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

ParámetroParameter ¿Necesario?Required? DESCRIPCIÓNDescription
{tenant}{tenant} ObligatorioRequired Nombre de su inquilino de Azure AD B2C.Name of your Azure AD B2C tenant
{policy}{policy} ObligatorioRequired El flujo de usuario usado para adquirir el código de autorización.The user flow that was used to acquire the authorization code. No puede usar un flujo de usuario diferente en esta solicitud.You cannot use a different user flow in this request.
client_idclient_id ObligatorioRequired Identificador de aplicación asignado a la aplicación en Azure Portal.The application ID assigned to your app in the Azure portal.
grant_typegrant_type ObligatorioRequired Tipo de concesión.The type of grant. Para el flujo de código de autorización, el tipo de concesión debe ser authorization_code.For the authorization code flow, the grant type must be authorization_code.
scopescope RecomendadoRecommended Una lista de ámbitos separada por espacios.A space-separated list of scopes. Un valor de ámbito único indica a Azure AD los dos permisos que se solicitan.A single scope value indicates to Azure AD both of the permissions that are being requested. El uso del identificador de cliente como ámbito indica que la aplicación necesita un token de acceso que se puede usar con su propio servicio o API web, representado por el mismo identificador de cliente.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. El ámbito offline_access indica que la aplicación necesita un token de actualización para un acceso de larga duración a los recursos.The offline_access scope indicates that your app needs a refresh token for long-lived access to resources. También puede usar el ámbito openid para solicitar un token de identificador desde Azure AD B2C.You also can use the openid scope to request an ID token from Azure AD B2C.
códigocode ObligatorioRequired El código de autorización que adquirió en el primer segmento del flujo.The authorization code that you acquired in the first leg of the flow.
redirect_uriredirect_uri ObligatorioRequired El URI de redirección de la aplicación en la que recibió el código de autorización.The redirect URI of the application where you received the authorization code.

Una respuesta correcta del token tiene el siguiente aspecto: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...",
}
ParámetroParameter DESCRIPCIÓNDescription
not_beforenot_before Hora a la que el token se considera válido, en tiempo de época.The time at which the token is considered valid, in epoch time.
token_typetoken_type El valor del tipo de token.The token type value. El único tipo que admite Azure AD es portador.The only type that Azure AD supports is Bearer.
access_tokenaccess_token El JSON Web Token (JWT) firmado que ha solicitado.The signed JSON Web Token (JWT) that you requested.
scopescope Los ámbitos para los que el token es válido.The scopes that the token is valid for. También puede usar ámbitos para almacenar en caché los tokens para su posterior uso.You also can use scopes to cache tokens for later use.
expires_inexpires_in El período de tiempo que el token es válido (en segundos).The length of time that the token is valid (in seconds).
refresh_tokenrefresh_token Un token de actualización de OAuth 2.0.An OAuth 2.0 refresh token. La aplicación puede usar este token para adquirir tokens adicionales una vez que expire el token actual.The app can use this token to acquire additional tokens after the current token expires. Los tokens de actualización tienen una duración larga.Refresh tokens are long-lived. Puede usarlos para conservar el acceso a los recursos durante largos períodos de tiempo.You can use them to retain access to resources for extended periods of time. Para obtener más información, consulte Azure AD B2C: referencia de tokens.For more information, see the Azure AD B2C token reference.

Las respuestas de error tienen un aspecto similar al siguiente:Error responses look like this:

{
    "error": "access_denied",
    "error_description": "The user revoked access to the app.",
}
ParámetroParameter DESCRIPCIÓNDescription
errorerror Una cadena de código de error que se puede usar para clasificar los tipos de errores que se producen.An error code string that you can use to classify the types of errors that occur. También puede usar la cadena para reaccionar frente a errores.You also can use the string to react to errors.
error_descriptionerror_description Un mensaje de error específico que puede ayudarlo a identificar la causa raíz de un error de autenticación.A specific error message that can help you identify the root cause of an authentication error.

3. Uso del token3. Use the token

Ahora que ha adquirido correctamente un token de acceso, puede usar el token en las solicitudes a las API web de back-end incluyéndolo en el encabezado 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: mytaskwebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...

4. Actualización del token4. Refresh the token

Los tokens de acceso y los tokens de identificación tienen una corta duración.Access tokens and ID tokens are short-lived. Una vez expirados, debe actualizarlos para poder seguir obteniendo acceso a los recursos.After they expire, you must refresh them to continue to access resources. Para ello, envíe otra solicitud POST al punto de conexión /token.To do this, submit another POST request to the /token endpoint. Esta vez, proporcione el elemento refresh_token, en lugar de code:This time, provide the refresh_token instead of the code:

POST {tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.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
ParámetroParameter ¿Necesario?Required? DESCRIPCIÓNDescription
{tenant}{tenant} ObligatorioRequired Nombre de su inquilino de Azure AD B2C.Name of your Azure AD B2C tenant
{policy}{policy} ObligatorioRequired El flujo de usuario usado para adquirir el token de actualización original.The user flow that was used to acquire the original refresh token. No puede usar un flujo de usuario diferente en esta solicitud.You cannot use a different user flow in this request.
client_idclient_id ObligatorioRequired Identificador de aplicación asignado a la aplicación en Azure Portal.The application ID assigned to your app in the Azure portal.
client_secretclient_secret ObligatorioRequired El client_secret asociado a su client_id en Azure Portal.The client_secret associated to your client_id in the Azure portal.
grant_typegrant_type ObligatorioRequired Tipo de concesión.The type of grant. Para este segmento del flujo de código de autorización, el tipo de concesión debe ser refresh_token.For this leg of the authorization code flow, the grant type must be refresh_token.
scopescope RecomendadoRecommended Una lista de ámbitos separada por espacios.A space-separated list of scopes. Un valor de ámbito único indica a Azure AD los dos permisos que se solicitan.A single scope value indicates to Azure AD both of the permissions that are being requested. El uso del identificador de cliente como ámbito indica que la aplicación necesita un token de acceso que se puede usar con su propio servicio o API web, representado por el mismo identificador de cliente.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. El ámbito offline_access indica que la aplicación necesitará un token de actualización para un acceso de larga duración a los recursos.The offline_access scope indicates that your app will need a refresh token for long-lived access to resources. También puede usar el ámbito openid para solicitar un token de identificador desde Azure AD B2C.You also can use the openid scope to request an ID token from Azure AD B2C.
redirect_uriredirect_uri OpcionalOptional El URI de redirección de la aplicación en la que recibió el código de autorización.The redirect URI of the application where you received the authorization code.
refresh_tokenrefresh_token ObligatorioRequired El token de actualización original que adquirió en el segundo segmento del flujo.The original refresh token that you acquired in the second leg of the flow.

Una respuesta correcta del token tiene el siguiente aspecto: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...",
}
ParámetroParameter DESCRIPCIÓNDescription
not_beforenot_before Hora a la que el token se considera válido, en tiempo de época.The time at which the token is considered valid, in epoch time.
token_typetoken_type El valor del tipo de token.The token type value. El único tipo que admite Azure AD es portador.The only type that Azure AD supports is Bearer.
access_tokenaccess_token El JWT firmado que ha solicitado.The signed JWT that you requested.
scopescope Los ámbitos para los que el token es válido.The scopes that the token is valid for. También puede usar los ámbitos para almacenar en caché los tokens para su posterior uso.You also can use the scopes to cache tokens for later use.
expires_inexpires_in El período de tiempo que el token es válido (en segundos).The length of time that the token is valid (in seconds).
refresh_tokenrefresh_token Un token de actualización de OAuth 2.0.An OAuth 2.0 refresh token. La aplicación puede usar este token para adquirir tokens adicionales una vez que expire el token actual.The app can use this token to acquire additional tokens after the current token expires. Los tokens de actualización son de larga duración y pueden usarse para conservar el acceso a los recursos durante largos periodos.Refresh tokens are long-lived, and can be used to retain access to resources for extended periods of time. Para obtener más información, consulte Azure AD B2C: referencia de tokens.For more information, see the Azure AD B2C token reference.

Las respuestas de error tienen un aspecto similar al siguiente:Error responses look like this:

{
    "error": "access_denied",
    "error_description": "The user revoked access to the app.",
}
ParámetroParameter DESCRIPCIÓNDescription
errorerror Una cadena de código de error que se puede usar para clasificar los tipos de errores que se producen.An error code string that you can use to classify types of errors that occur. También puede usar la cadena para reaccionar frente a errores.You also can use the string to react to errors.
error_descriptionerror_description Un mensaje de error específico que puede ayudarlo a identificar la causa raíz de un error de autenticación.A specific error message that can help you identify the root cause of an authentication error.

Usar su propio directorio de Azure AD B2CUse your own Azure AD B2C directory

Para probar estas solicitudes, lleve a cabo los siguientes pasos.To try these requests yourself, complete the following steps. Reemplace los valores de ejemplo que hemos usado en este artículo por los suyos propios.Replace the example values we used in this article with your own values.

  1. Cree un directorio de Azure AD B2C.Create an Azure AD B2C directory. Use el nombre del directorio en las solicitudes.Use the name of your directory in the requests.
  2. Cree una aplicación para obtener un identificador de aplicación y un URI de redirección.Create an application to obtain an application ID and a redirect URI. Incluya un cliente nativo en la aplicación.Include a native client in your app.
  3. Cree flujos de usuario para obtener sus nombres.Create your user flows to obtain your user flow names.