> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Uso de Auth0 como servidor de OAuth 2.0 para autenticar a usuarios que desean acceder a una API administrada por el servicio Azure API Management

# Integración con Azure API Management

<Card title="Antes de comenzar">
  Necesitarás una cuenta de Microsoft con acceso al [Azure Portal](https://azure.microsoft.com/en-us).
</Card>

El servicio [Azure API Management](https://azure.microsoft.com/en-us/products/api-management/) te permite crear nuevas API o importar definiciones de API existentes y publicarlas para su uso por parte de las audiencias autorizadas. Auth0 facilita la autorización de los usuarios de tu API (mediante los estándares de <Tooltip tip="OAuth 2.0: Marco de autorización que define protocolos y flujos de trabajo de autorización." cta="Ver glosario" href="/es/docs/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip>).

En este tutorial, aprenderás a usar Auth0 para autenticar y autorizar a los usuarios cuando accedan a una API de calculadora básica administrada por Azure API Management.

<div id="configure-auth0">
  ## Configura Auth0
</div>

<div id="create-an-api">
  ### Crear una API
</div>

Debe crear una API en Auth0 para representar la API administrada por Azure API Management Service. Para obtener más información, consulte [Registrar API](/es/docs/get-started/auth0-overview/set-up-apis).

1. Vaya a [Auth0 Dashboard > Applications > APIs](https://manage.auth0.com/#/apis) y seleccione **Create API**.
2. Configure los siguientes parámetros:

   | Campo                  | Valor              |
   | ---------------------- | ------------------ |
   | **Nombre**             | `Basic Calculator` |
   | **Identificador**      | `basic-calculator` |
   | **Algoritmo de firma** | `RS256`            |
3. Seleccione **Create**.

<div id="create-a-regular-web-application">
  ### Crear una aplicación web regular
</div>

Debe crear una aplicación web regular (RWA) en Auth0 para comunicarse con el <Tooltip tip="Servidor de autorización: servidor centralizado que ayuda a definir los límites del acceso de un usuario. Por ejemplo, su servidor de autorización puede controlar los datos, las tareas y las funcionalidades disponibles para un usuario." cta="Ver glosario" href="/es/docs/glossary?term=authorization+server">servidor de autorización</Tooltip> de OAuth 2.0 en Azure:

1. Vaya a [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications) y seleccione el botón **Create Application**.
2. Introduzca un **nombre** para su aplicación y seleccione **Regular Web Applications** como tipo de aplicación.

<div id="create-and-enable-a-connection">
  ### Crear y habilitar una conexión
</div>

Deberá crear una conexión en Auth0 y habilitarla para su aplicación:

1. Vaya a [Auth0 Dashboard > Autenticación > Base de datos](https://manage.auth0.com/#/connections/database) y seleccione **Crear conexión de base de datos**.
2. Introduzca un **nombre** para su conexión. Le sugerimos elegir un nombre que refleje el origen de los usuarios (por ejemplo, `Facebook` para una conexión que contiene usuarios que usan sus credenciales de Facebook, o `site-sign-ups` para una conexión de base de datos en la que los usuarios se registran en su sitio).
3. Seleccione **Crear**.
4. Vaya a la página de **Configuración** de su conexión.
5. Cambie a la vista **Aplicaciones**, donde verá una lista de todas las aplicaciones de su inquilino.
6. Active la aplicación que creó anteriormente para habilitarla en la conexión.

<div id="create-a-user">
  ### Crear un usuario
</div>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si ya tiene un grupo de usuarios, puede importarlos o crear una [conexión de base de datos personalizada](/es/docs/authenticate/database-connections/custom-db).
</Callout>

Necesita tener al menos un usuario en la conexión para probar la autenticación y la autorización. Si no tiene un grupo de usuarios existente para la conexión, puede crear uno manualmente:

1. Vaya a [Auth0 Dashboard > User Management > Users](https://manage.auth0.com/#/users) y seleccione **Create User**.
2. Introduzca un **correo electrónico** y una **contraseña**, y seleccione la conexión que creó en el paso 3 en el campo **Conexión**.
3. Seleccione **Create**.

<div id="configure-azure">
  ## Configurar Azure
</div>

<div id="create-azure-api-management-service">
  ### Crear un servicio de API Management en Azure
</div>

Deberá crear una instancia de API Management en Azure para administrar su API:

1. En la barra de navegación, seleccione **Create a resource**.
2. Una vez que se le redirija, seleccione **Web** > **API Management**.
3. Proporcione las siguientes variables de configuración:

   | Parámetro                                | Descripción                                                                                                                                                                                                                                                                                                                                                                      |
   | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Nombre**                               | El nombre del servicio (que también se usará para crear la URL que necesitará para acceder al servicio)                                                                                                                                                                                                                                                                          |
   | **Suscripción**                          | El plan de suscripción de Azure que usará con el servicio                                                                                                                                                                                                                                                                                                                        |
   | **Grupo de recursos**                    | La colección de [recursos](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resources-portal) que comparten un ciclo de vida, permisos y directivas. Puede usar un grupo de recursos existente o crear uno nuevo (deberá proporcionar un nombre para el grupo si crea uno nuevo)                                                                 |
   | **Ubicación**                            | Elija la ubicación que dará servicio a su instancia de API                                                                                                                                                                                                                                                                                                                       |
   | **Nombre de la organización**            | El nombre de su organización                                                                                                                                                                                                                                                                                                                                                     |
   | **Correo electrónico del administrador** | La dirección de correo electrónico de la persona que administrará esta instancia                                                                                                                                                                                                                                                                                                 |
   | **Nivel de precios**                     | El nivel de precios que desee, que determina la cantidad de llamadas que puede hacer a su API, así como la cantidad máxima de transferencia de datos permitida. Debe optar por el [plan Developer](https://azure.microsoft.com/en-us/pricing/details/api-management/) o uno superior; el plan Consumption no ofrece suficiente funcionalidad para que esta integración funcione. |
4. Seleccione **Create** para iniciar el aprovisionamiento del servicio (esto puede tardar hasta 15 minutos en completarse).

<div id="import-the-sample-api">
  ### Importar la API de ejemplo
</div>

Para este tutorial, importaremos y usaremos la API Basic Calculator proporcionada por Microsoft. Para obtener instrucciones detalladas, consulta [Import and Publish Your First API](https://docs.microsoft.com/en-us/azure/api-management/import-and-publish#go-to-your-api-management-instance) de Microsoft.

Cuando termines, selecciona **Create** para importar la API. Se te redirigirá a la página de resumen de la API cuando se haya importado por completo.

<div id="configure-an-oauth-20-authorization-server">
  ### Configurar un servidor de autorización de OAuth 2.0
</div>

Para usar Auth0 para proteger su API de Azure, deberá registrar Auth0 como un servidor de autorización de OAuth 2.0:

1. Busque el área **OAuth 2.0 + OpenID Connect** de su instancia del servicio API Management cerca de la barra de navegación. Seleccione **OAuth 2.0** y, a continuación, seleccione **Add**.
2. Vaya a la pantalla de configuración **Add OAuth2 service** y seleccione el tipo de concesión **Authorization Code**.
3. Configure los siguientes parámetros:

   | Parámetro                          | Descripción                                                                                                                                                                                                                        |
   | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Display name**                   | Introduzca un nombre descriptivo para su servidor de autorización, como `Auth0`.                                                                                                                                                   |
   | **Id**                             | Este campo debería completarse automáticamente en función del nombre para mostrar que indique.                                                                                                                                     |
   | **Description**                    | Introduzca una descripción para su servidor de autorización, como `Auth0 API Authentication`.                                                                                                                                      |
   | **Client registration page URL**   | Introduzca `https://placeholder.contoso.com` como marcador de posición.                                                                                                                                                            |
   | **Authorization code grant types** | Seleccione `Authorization code`.                                                                                                                                                                                                   |
   | **Authorization endpoint URL**     | Consulte el [endpoint de descubrimiento de OIDC](https://\{yourDomain}/.well-known/openid-configuration) de su inquilino y agregue el parámetro `audience`. Por ejemplo: `https://{yourDomain}/authorize?audience={API_AUDIENCE}`. |
   | **Authorization request method**   | El valor predeterminado es `GET`.                                                                                                                                                                                                  |
   | **Token endpoint URL**             | Consulte el [endpoint de descubrimiento de OIDC](https://\{yourDomain}/.well-known/openid-configuration) de su inquilino.                                                                                                          |
   | **Client authentication methods**  | Seleccione `Basic`.                                                                                                                                                                                                                |
   | **token de acceso sending method** | Seleccione `Authorization header`.                                                                                                                                                                                                 |
   | **Default scope**                  | Especifique un [scope](/es/docs/glossary?term=scope) predeterminado, si es necesario.                                                                                                                                              |
4. En la sección **Client Credentials**, introduzca el ID de cliente de su aplicación de Auth0 en el campo **Client ID** y el secreto del cliente en el campo **Client secret**.
5. Cambie a la vista **Redirect URI** y copie el valor del URI del campo **Authorization code flow grant**.
6. Seleccione **Create**.

<div id="configure-azure-api-to-use-auth0">
  ### Configura la API de Azure para usar Auth0
</div>

Después de crear tu servidor de autorización de OAuth 2.0 en Azure, tendrás que actualizar tu API de Azure para usar Auth0 para la autorización de usuarios:

1. En la sección **APIs** del menú de navegación, selecciona **APIs**.
2. Selecciona la API Basic Calculator y ve a la vista **Design**.
3. Cambia a la vista **Settings**.
4. Ve a la sección **Security** y selecciona **OAuth 2.0** en **User Authorization**.
5. En el campo **Servidor de autorización**, selecciona el servidor que configuraste en el paso anterior.
6. Haz clic en **Save**.

<div id="set-the-allowed-callback-url-in-auth0">
  ## Configure la Allowed Callback URL en Auth0
</div>

Después de aprovisionar y configurar la API de Azure para usar Auth0 para la autorización de usuarios, deberá actualizar su aplicación de Auth0:

1. Vaya a [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications).
2. Seleccione su aplicación y cambie a la vista **Settings**.
3. Introduzca la URI de redirección que copió anteriormente en el campo **Allowed Callback URLs**.
4. Haga clic en **Save**.

<div id="test-the-integration">
  ## Pruebe la integración
</div>

En Azure Portal, abra la instancia de API Management Service.

1. Seleccione **Consola para desarrolladores** para abrir la interfaz de sus API orientada a desarrolladores.
2. Vaya a **APIs** > **Basic Calculator**. Se abrirá la página donde puede realizar una llamada `GET` para sumar dos números enteros.
3. Seleccione **Try It**. Se abrirá la página donde puede proporcionar los parámetros de la llamada.
4. Vaya a la sección **Authorization** y seleccione **Authorization Code** (junto al campo **Auth0**).
5. Aparecerá una ventana emergente con el widget de inicio de sesión de Auth0 (si no aparece, asegúrese de que el bloqueador de ventanas emergentes esté desactivado en su navegador). Introduzca las credenciales del usuario de Auth0 que creó en el paso 4 e inicie sesión.
6. Si inicia sesión correctamente, aparecerá un mensaje con la fecha de vencimiento del token de acceso que puede usar para llamar a la API.
7. Desplácese hasta la parte inferior y seleccione **Send**. Si la solicitud se realiza correctamente, verá un mensaje con la respuesta `HTTP 200` en la parte inferior de la página.

<div id="configure-a-jwt-validation-policy-for-access-tokens">
  ### Configurar una política de validación de JWT para tokens de acceso
</div>

En el paso anterior, se le solicita al usuario que inicie sesión cuando intenta realizar una llamada desde la Consola para desarrolladores. La Consola para desarrolladores intenta obtener un <Tooltip tip="token de acceso: credencial de autorización, en forma de cadena opaca o JWT, utilizada para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=Access+Token">token de acceso</Tooltip> en nombre del usuario para incluirlo en la solicitud a la API. Todos los tokens de acceso se enviarán a la API mediante el encabezado `Authorization`.

Si desea validar el token de acceso incluido en cada solicitud, puede hacerlo con la [política Validate JWT](https://learn.microsoft.com/en-us/azure/api-management/validate-jwt-policy). Consulte la documentación de Microsoft sobre [cómo configurar una política de API Management](https://learn.microsoft.com/en-us/azure/api-management/set-edit-policies?tabs=form).
