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

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.

  1. Inicie sesión en GitHub.

  2. En el perfil de su cuenta, vaya a Configuración > Configuración de desarrollador > Aplicaciones de OAuth. Seleccione Nueva aplicación de OAuth.

    Captura de pantalla que muestra el registro de una nueva aplicación OAuth en GitHub.

    1. 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.
    2. Opcionalmente, agrega una descripción de la aplicación.
    3. 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.
  3. Seleccione Register application (Registrar aplicación).

  4. En la página General, copie el id. de cliente, que usará en el Paso 2.

  5. 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.

    Captura de pantalla que muestra cómo obtener un identificador de cliente y un secreto de cliente para la aplicación en GitHub.

Paso 2: Configuración de un proveedor de credenciales en API Management

  1. Inicie sesión en el portal y vaya a la instancia de API Management.

  2. En el menú de la izquierda, seleccione Administrador de credenciales>+Crear.

    Captura de pantalla que muestra la creación de credenciales de API Management en Azure Portal.

  3. 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
  4. Seleccione Crear.

  5. Cuando se le solicite, examine la URL de redireccionamiento de OAuth que se muestra y seleccione 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.

  1. Escriba un nombre de conexión y seleccione Guardar.
  2. 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.
  3. 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.
  4. 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

  1. Inicie sesión en el portal y vaya a la instancia de API Management.

  2. En el menú izquierdo, seleccione API > + Agregar API.

  3. 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
  4. 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

    Captura de pantalla que muestra la incorporación de la operación getauthdata para la API en el portal.

  5. 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
  6. Seleccione Todas las operaciones. En la sección Procesamiento de entrada, selecciona el icono del editor de código (</>).

  7. Copia lo siguiente y pégalo en el editor de directivas. Asegúrese de que los valores provider-id y authorization-id de la directiva get-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

  1. En la pestaña Prueba, seleccione una operación que haya configurado.

  2. Seleccione Enviar.

    Captura de pantalla que muestra la evaluación correcta de la API en el portal.

    Una respuesta correcta devuelve datos de usuario de la API de GitHub.