Compartir vía


Conexiones de OAuth 2.0 en el administrador de credenciales: detalles del proceso y flujos

SE APLICA A: todos los niveles de API Management

En este artículo se proporcionan detalles sobre los flujos de proceso para administrar conexiones de OAuth 2.0 mediante el administrador de credenciales en Azure API Management. Los flujos de proceso se dividen en dos partes: administración y tiempo de ejecución.

Para obtener información general sobre el administrador de credenciales en API Management, consulte Acerca del administrador de credenciales y las credenciales de API en API Management.

Administración de conexiones

La parte de administración de conexiones en el administrador de credenciales se encarga de configurar y configurar un proveedor de credenciales para tokens de OAuth 2.0, lo que permite el flujo de consentimiento para el proveedor y configura una o varias conexiones al proveedor de credenciales para acceder a las credenciales.

En la imagen siguiente se resume el flujo de proceso para crear una conexión en API Management que usa el tipo de concesión de código de autorización.

Diagrama que muestra el flujo de proceso para crear credenciales.

Step Description
1 El cliente envía una solicitud para crear un proveedor de credenciales.
2 Se crea el proveedor de credenciales y se devuelve una respuesta.
3 El cliente envía una solicitud para crear una conexión.
4 Se crea la conexión y se devuelve una respuesta con la información que la conexión no está "conectada".
5 El cliente envía una solicitud para recuperar una dirección URL de inicio de sesión para iniciar el consentimiento de OAuth 2.0 en el proveedor de credenciales. La solicitud incluye una dirección URL posterior a la redirección que se usará en el último paso.
6 La respuesta se devuelve con una dirección URL de inicio de sesión que se debe usar para iniciar el flujo de consentimiento.
7 El cliente abre un explorador con la dirección URL de inicio de sesión que se proporcionó en el paso anterior. El explorador se redirige al flujo de consentimiento de OAuth 2.0 del proveedor de credenciales.
8 Una vez aprobado el consentimiento, el explorador se redirige con un código de autorización a la dirección URL de redireccionamiento configurada en el proveedor de credenciales.
9 API Management usa el código de autorización para obtener tokens de acceso y renovación.
10 API Management recibe los tokens y los cifra.
11 La gestión de API redirige a la URL proporcionada del paso 5.

Proveedor de credenciales

Al configurar el proveedor de credenciales, puede elegir entre diferentes proveedores de OAuth y tipos de concesión (código de autorización o credencial de cliente). Cada proveedor requiere configuraciones específicas. Aspectos importantes que se deben tener en cuenta:

  • Una configuración del proveedor de credenciales solo puede tener un tipo de concesión.
  • Una configuración del proveedor de credenciales puede tener varias conexiones.

Nota:

Con el proveedor genérico de OAuth 2.0, se pueden usar otros proveedores de identidades que admiten los estándares del flujo de OAuth 2.0 .

Al configurar un proveedor de credenciales, el administrador de credenciales crea un almacén de credenciales en segundo plano que se usa para almacenar en caché los tokens de acceso de OAuth 2.0 del proveedor y los tokens de actualización.

Conexión a un proveedor de credenciales

Para acceder y usar tokens para un proveedor, las aplicaciones cliente necesitan una conexión con el proveedor de credenciales. Las directivas de acceso permiten una conexión determinada en función de las identidades de Microsoft Entra ID. Puede configurar varias conexiones para un proveedor.

El proceso de configuración de una conexión difiere en función de la concesión configurada y es específico de la configuración del proveedor de credenciales. Por ejemplo, si desea configurar el identificador de Entra de Microsoft para usar ambos tipos de concesión, necesita dos configuraciones de proveedor de credenciales. En la tabla siguiente se resumen los dos tipos de concesión.

Tipo de concesión Description
Código de autorización Enlazado a un contexto de usuario, lo que significa que un usuario debe dar su consentimiento a la conexión. Siempre que el token de actualización sea válido, API Management puede recuperar nuevos tokens de acceso y actualización. Si el token de actualización deja de ser válido, el usuario debe volver a autorizarlo. Todos los proveedores de credenciales admiten el código de autorización. Aprende más
Credenciales del cliente No está enlazado a un usuario y a menudo se usa en escenarios de aplicación a aplicación. No se requiere ningún consentimiento para el tipo de concesión de credenciales de cliente y la conexión no se convierte en no válida.  Aprende más

Para las conexiones basadas en el tipo de concesión de código de autorización, debe autenticarse en el proveedor y dar su consentimiento a la autorización. Después de que el proveedor de credenciales haya autorizado e iniciado sesión correctamente, el proveedor devuelve tokens de acceso y de actualización válidos, que API Management cifra y guarda.

Directiva de acceso

Configure una o varias directivas de acceso para cada conexión. Las directivas de acceso determinan qué identidades de Id. de Microsoft Entra pueden obtener acceso a sus credenciales en tiempo de ejecución. Actualmente, las conexiones admiten el acceso mediante entidades de servicio, la identidad, los usuarios y los grupos de su instancia de API Management.

identidad Description Ventajas Consideraciones
Entidad de servicio Identidad cuyos tokens se pueden usar para autenticar y conceder acceso a recursos específicos de Azure cuando una organización usa el identificador de Microsoft Entra. Mediante el uso de una entidad de servicio, las organizaciones evitan crear usuarios ficticios para administrar la autenticación cuando necesitan acceder a un recurso. Una entidad de seguridad de servicio es una identidad de Microsoft Entra que representa una aplicación registrada de Microsoft Entra. Permite un acceso más limitado a contextos de conexión y delegación de usuarios. No está vinculado a una instancia específica de API Management. Se basa en Microsoft Entra ID para la aplicación de permisos. La obtención del contexto de autorización requiere un token de Microsoft Entra ID.
Identidad administrada <Your API Management instance name> Esta opción corresponde a una identidad administrada asociada a la instancia de API Management. De forma predeterminada, se proporciona acceso a la identidad administrada asignada por el sistema para la instancia de API Management correspondiente. La identidad está vinculada a la instancia de API Management. Cualquier usuario con acceso de colaborador a la instancia de API Management puede acceder a cualquier conexión que conceda permisos de identidad administrada.
Usuarios o grupos Usuarios o grupos en el inquilino de Microsoft Entra ID. Permite limitar el acceso a usuarios o grupos de usuarios específicos. Requiere que los usuarios tengan una cuenta de Id. de Microsoft Entra.

Tiempo de ejecución de conexiones

La parte de tiempo de ejecución requiere que se configure una API OAuth 2.0 API de back-end con la directiva get-authorization-context. En tiempo de ejecución, la directiva captura y almacena los tokens de acceso y actualización del almacén de credenciales que API Management configuró para el proveedor. Cuando una llamada entra en API Management y se ejecuta la get-authorization-context directiva, primero se valida si el token de autorización existente es válido. Si el token de autorización ha expirado, API Management usa un flujo de OAuth 2.0 para actualizar los tokens almacenados del proveedor de credenciales. A continuación, el token de acceso se usa para autorizar el acceso al servicio back-end.

Durante la ejecución de la directiva, también se valida el acceso a los tokens mediante directivas de acceso.

La siguiente imagen muestra un flujo de procesos de ejemplo para capturar y almacenar tokens de autorización y de actualización basados en una conexión que usa el tipo de concesión de código de autorización. Una vez recuperados los tokens, se realiza una llamada a la API de back-end.

Diagrama que muestra el flujo de proceso para recuperar el token en tiempo de ejecución.

Step Description
1 El cliente envía una solicitud a la instancia de API Management.
2 La directiva get-authorization-context comprueba si el token de acceso es válido para la conexión actual.
3 Si el token de acceso ha expirado, pero el token de actualización es válido, API Management intenta capturar nuevos tokens de acceso y actualización del proveedor de credenciales configurado.
4 El proveedor de credenciales devuelve un token de acceso y un token de actualización, que se cifran y guardan en API Management.
5 Una vez recuperados los tokens, el token de acceso se adjunta mediante la set-header política como encabezado de autorización a la solicitud saliente a la API de backend.
6 La respuesta se devuelve a API Management.
7 La respuesta se devuelve al cliente.