Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A: Todos los niveles de API Management
En este artículo, aprenderá a crear una conexión administrada en API Management y a llamar a una API de GitHub que requiera un token de OAuth 2.0. En este ejemplo se usa el tipo de concesión de código de autorización.
Aprenderá a:
- Registro de 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
- Prueba de la API de GitHub en API Management
Prerrequisitos
- Una cuenta de GitHub.
- Una instancia de API Management en ejecución. Si necesita una, cree una instancia de Azure API Management.
- Habilite una identidad administrada asignada por el sistema para API Management en la instancia de API Management.
Paso 1: Registro de 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 a las que desea llamar.
Inicie sesión en GitHub.
En el perfil de su cuenta, vaya a Configuración > Configuración de desarrollador > OAuth Apps. Seleccione Nueva aplicación de OAuth.
- Escriba un nombre de aplicación y la dirección URL de la página principal de la aplicación. En este ejemplo, puedes suministrar una URL de marcador de posición como
http://localhost. - Opcionalmente, agregue una descripción de la aplicación.
- En Dirección URL de devolución de llamada de autorización (dirección URL de redireccionamiento), escriba
https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>, sustituyendo el nombre de la instancia de API Management donde se configura el proveedor de credenciales. - Opcionalmente, seleccione Habilitar flujo de dispositivo (no necesario para este ejemplo).
- Escriba un nombre de aplicación y la dirección URL de la página principal de la aplicación. En este ejemplo, puedes suministrar una URL de marcador de posición como
Seleccione Registrar aplicación.
En la página General , copie el identificador de cliente que se usa en el paso 2.
Seleccione Generar un nuevo secreto de cliente. Copie el secreto, que no se muestra de nuevo. Usted configura el secreto en el paso 2.
Paso 2: Configuración de un proveedor de credenciales en API Management
Inicie sesión en Azure Portal y vaya a la instancia de API Management.
En el menú de la izquierda, seleccioneAPI Credential manager+ Create (Administrador > de credenciales de API>+ Crear).
En Crear proveedor de credenciales, escriba la siguiente configuración:
Configuración Importancia Nombre del proveedor de credenciales Nombre de su elección, como github-01 Proveedor de identidades Selección de GitHub Tipo de concesión Selección del código de autorización Id. de cliente Pegue el valor que copió anteriormente del registro de la aplicación. Secreto de cliente Pegue el valor que copió anteriormente del registro de la aplicación. Ámbito En este ejemplo, establezca el ámbito en Usuario. Selecciona Crear.
Cuando se le solicite, revise la dirección URL de redireccionamiento de OAuth que se muestra y seleccione Sí para confirmar que coincide con la dirección URL especificada en el registro de la aplicación de GitHub.
Paso 3: Configurar una conexión
En la pestaña Conexión , complete los pasos para la conexión al proveedor.
Nota:
Al configurar una conexión, API Management configura de forma 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, a continuación, 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 botón Iniciar sesión . Complete los pasos con el proveedor de identidades para autorizar el acceso y vuelva a API Management.
- En Paso 3: Determine quién tendrá acceso a esta conexión (directiva de acceso), aparece el miembro de identidad administrada. Agregar otros miembros es opcional, en función de su escenario.
- Seleccione Complete.
La nueva conexión aparece en la lista de conexiones y muestra un estado de Conectado. Si desea crear otra conexión para el proveedor de credenciales, complete los pasos anteriores.
Sugerencia
Use Azure Portal para agregar, actualizar o eliminar conexiones a un proveedor de credenciales en cualquier momento. Para obtener más información, consulte Configuración de varias conexiones.
Paso 4: Creación de una API en API Management y configuración de una directiva
Inicie sesión en Azure Portal y vaya a la instancia de API Management.
En el menú de la izquierda, seleccione API>API>+ Agregar API.
Seleccione HTTP y escriba la siguiente configuración y, a continuación, seleccione Crear.
Configuración Importancia Nombre para mostrar githubuser Dirección URL del servicio web https://api.github.comSufijo de dirección URL de API githubuser Vaya a la nueva API y seleccione Agregar operación. Escriba la siguiente configuración y seleccione Guardar.
Configuración Importancia Nombre para mostrar getauthdata URL para GET /user
Siga los pasos anteriores para agregar otra operación con la siguiente configuración.
Configuración Importancia Nombre para mostrar getauthfollowers URL para GET /usuario/seguidores Seleccione Todas las operaciones. En la sección Procesamiento de entrada , seleccione el icono (</>) (editor de código).
Copie y pegue el código siguiente en el editor de directivas. Asegúrese de que los valores de
provider-idyauthorization-iden la políticaget-authorization-contextcorresponden a los nombres del proveedor de credenciales y de la conexión que configuró respectivamente en los pasos anteriores. Haga clic en 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 haciendo referencia al proveedor de credenciales y la conexión que creó anteriormente.
- La primera directiva set-header crea un encabezado HTTP con el token de autorización obtenido.
- La segunda directiva set-header crea un
User-Agentencabezado (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
- Más información sobre las directivas de autenticación y autorización
- Más información sobre la API REST de GitHub