Compartir vía


Configuración del administrador de credenciales: API de GitHub

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

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.

  1. Inicie sesión en GitHub.

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

    Captura de pantalla del registro de una nueva aplicación de OAuth en GitHub.

    1. 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.
    2. Opcionalmente, agregue una descripción de la aplicación.
    3. 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.
    4. Opcionalmente, seleccione Habilitar flujo de dispositivo (no necesario para este ejemplo).
  3. Seleccione Registrar aplicación.

  4. En la página General , copie el identificador de cliente que se usa en el paso 2.

  5. Seleccione Generar un nuevo secreto de cliente. Copie el secreto, que no se muestra de nuevo. Usted configura el secreto en el paso 2.

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

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

  1. Inicie sesión en Azure Portal y vaya a la instancia de API Management.

  2. En el menú de la izquierda, seleccioneAPI Credential manager+ Create (Administrador > de credenciales de API>+ Crear).

    Captura de pantalla de la creación de una credencial de API Management en Azure Portal.

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

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

  1. Escriba un nombre de conexión y, a continuación, 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 botón Iniciar sesión . Complete los pasos con el proveedor de identidades para autorizar el acceso y vuelva a API Management.
  3. 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.
  4. 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

  1. Inicie sesión en Azure Portal y vaya a la instancia de API Management.

  2. En el menú de la izquierda, seleccione API>API>+ Agregar API.

  3. 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.com
    Sufijo de dirección URL de API githubuser
  4. 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

    Captura de pantalla de la adición de una operación getauthdata a la API en el portal.

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

  7. Copie y pegue el código siguiente en el editor de directivas. Asegúrese de que los valores de provider-id y authorization-id en la política get-authorization-context corresponden 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-Agent encabezado (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 de la prueba correcta de la API en el portal.

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