Configuración del administrador de credenciales: GitHub API
SE APLICA A: todos los niveles de API Management
En este artículo, aprenderás a crear una conexión administrada en API Management y a llamar a una GitHub API que requiera un token de OAuth 2.0. En este ejemplo se utiliza el tipo de concesión de código de autorización.
Aprenderá a:
- Registrar una aplicación en GitHub
- Configuración de un proveedor de credenciales en API Management
- Configuración de una conexión
- Creación de una API en API Management y configuración de una directiva
- Pruebe la API de GitHub en API Management
Prerrequisitos
- Se requiere una cuenta de GitHub.
- Instancia de API Management en ejecución. Si fuera necesario, cree una instancia de Azure API Management.
- Habilita una identidad administrada asignada por el sistema para API Management en la instancia de API Management.
Paso 1: Registrar una aplicación en GitHub
Cree una aplicación de OAuth de GitHub para la API y asígnele los permisos adecuados para las solicitudes que quiera llamar.
Inicie sesión en GitHub.
En el perfil de su cuenta, vaya a Configuración > Configuración de desarrollador > Aplicaciones de OAuth. Seleccione Nueva aplicación de OAuth.
- Escribe un nombre de aplicación y la URL de la página principal de la aplicación. En este ejemplo, puede proporcionar una dirección URL de marcador de posición, como
http://localhost
. - Opcionalmente, agrega una descripción de la aplicación.
- En Dirección URL de devolución de llamada de autorización (la dirección URL de redireccionamiento), escriba
https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>
y sustituya el nombre de la instancia de API Management en la que configurará el proveedor de credenciales.
- Escribe un nombre de aplicación y la URL de la página principal de la aplicación. En este ejemplo, puede proporcionar una dirección URL de marcador de posición, como
Seleccione Register application (Registrar aplicación).
En la página General, copie el id. de cliente, que usará en el Paso 2.
Seleccione Generación de un nuevo secreto de cliente. Copie el secreto, que no se volverá a mostrar y que usará en el Paso 2.
Paso 2: Configuración de un proveedor de credenciales en API Management
Inicie sesión en el portal y vaya a la instancia de API Management.
En el menú de la izquierda, seleccione Administrador de credenciales>+Crear.
En la páginaCrear proveedor de credenciales, escriba la siguiente configuración:
Configuración Valor Nombre del proveedor de credenciales Un nombre de su elección, como github-01 Proveedor de identidades Seleccione GitHub. Tipo de concesión Selecciona Código de autorización Id. de cliente Pega el valor que copió anteriormente del registro de la aplicación Secreto de cliente Pega el valor que copió anteriormente del registro de la aplicación Ámbito En este ejemplo, establezca el ámbito en Usuario Seleccione Crear.
Cuando se le solicite, examine la URL de redireccionamiento de OAuth que se muestra y seleccione Sí para confirmar que coincide con la dirección URL que escribió en el registro de la aplicación.
Paso 3: Configuración de una conexión
En la pestaña Conexión, complete los pasos necesarios para conectarse al proveedor.
Nota:
Cuando se configura una conexión, API Management configura de manera predeterminada una directiva de acceso que habilita el acceso por la identidad administrada asignada por los sistemas de la instancia. Este acceso es suficiente para este ejemplo. Puede agregar directivas de acceso adicionales según sea necesario.
- Escriba un nombre de conexión y seleccione Guardar.
- En Paso 2: Iniciar sesión en la conexión (para el tipo de concesión de código de autorización), seleccione el vínculo para iniciar sesión en el proveedor de credenciales. Complete los pasos para autorizar el acceso, y volver a API Management.
- En Paso 3: Determine quién tendrá acceso a esta conexión (directiva de acceso),se lista el miembro de identidad administrada. Agregar otros miembros es opcional, dependiendo de su escenario.
- Seleccione Completar.
La nueva conexión aparece en la lista de autorizaciones y programa un estado de Conectado. Si desea crear otra conexión para el proveedor de credenciales, complete los pasos anteriores.
Sugerencia
Use el portal para agregar, actualizar o eliminar conexiones a un proveedor de credenciales en cualquier momento. Para más información, consulte Configuración de varias conexiones.
Paso 4: Crear una API en API Management y configurar una directiva
Inicie sesión en el portal y vaya a la instancia de API Management.
En el menú izquierdo, seleccione API > + Agregar API.
Selecciona HTTP y escribe los siguientes valores. Seleccione Crear.
Configuración Value Nombre para mostrar githubuser Dirección URL del servicio web https://api.github.com
Sufijo de dirección URL de API githubuser Dirígete a la API recién creada y selecciona Agregar operación. Escribe los siguientes valores y selecciona Guardar.
Configuración Value Nombre para mostrar getauthdata Dirección URL de GET /user Siga los pasos anteriores para agregar otra operación con la siguiente configuración.
Configuración Value Nombre para mostrar getauthfollowers Dirección URL de GET /usuario/seguidores Seleccione Todas las operaciones. En la sección Procesamiento de entrada, selecciona el icono del editor de código (</>).
Copia lo siguiente y pégalo en el editor de directivas. Asegúrese de que los valores
provider-id
yauthorization-id
de la directivaget-authorization-context
corresponden a los nombres del proveedor de credenciales y de la conexión, respectivamente, que configuró en los pasos anteriores. Seleccione Guardar.<policies> <inbound> <base /> <get-authorization-context provider-id="github-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" /> <set-header name="Authorization" exists-action="override"> <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value> </set-header> <set-header name="User-Agent" exists-action="override"> <value>API Management</value> </set-header> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies>
La definición de directiva anterior consta de tres partes:
- La directiva get-authorization-context captura un token de autorización, para lo que hace referencia al proveedor de credenciales y a la conexión que creó anteriormente.
- La primera directiva set-header crea un encabezado HTTP con el token de autorización capturado.
- La segunda directiva set-header crea un encabezado
User-Agent
(requisito de la API de GitHub).
Paso 5: probar la API
En la pestaña Prueba, seleccione una operación que haya configurado.
Seleccione Enviar.
Una respuesta correcta devuelve datos de usuario de la API de GitHub.
Contenido relacionado
- Obtenga más información sobre las directivas de autenticación y autorización
- Más información sobre la API de REST de GitHub