Este tutorial muestra cómo crear un proveedor OAuth nativo utilizando la interfaz de usuario del Gestor de API.
Acerca de esta guía de aprendizaje
La creación de un proveedor OAuth nativo permite a API Connect realizar tareas de autorización OAuth internamente en lugar de requerir que una aplicación de terceros las complete. Cuando se crea un proveedor de OAuth nativo, se aplica a una API, que se actualiza para incluir la configuración de OAuth. A continuación, publica la API. Cada vez que se invoca la API publicada, API Connect se asegura de que la aplicación que llama está autorizada a acceder a los recursos de la API y, a continuación, hace que la API esté disponible.
Implementar la seguridad OAuth requiere crear un proveedor y, a continuación, actualizar su API para utilizar el proveedor. En esta guía de aprendizaje, completará las lecciones siguientes:
- Crear un proveedor OAuth nativo
- Añadir seguridad OAuth a una API
- Añadir una redirección OAuth URL a la aplicación de prueba Sandbox por defecto
- Probar la implementación de seguridad OAuth
Antes de empezar
Este tutorial utiliza la API predefinida FindBranch. Para preparar su entorno para este tutorial, realice las siguientes tareas:
- Añada el servicio DataPower® API Gateway al catálogo Sandbox como se explica en Creación y configuración de catálogos.
El catálogo Sandbox debe estar configurado para utilizar al menos una pasarela. Para este tutorial, debe utilizar la misma pasarela que utiliza la API FindBranch.
- Importe la API FindBranch y actívela como se explica en el tutorial, Tutorial: Importar una API.
Crear un proveedor OAuth nativo
Para crear un proveedor nativo de OAuth en API Manager, configure un registro de usuarios que utilice una autenticación externa URL para verificar a los usuarios y, a continuación, cree un proveedor para autenticar a los usuarios que inicien sesión con ese registro.
- Crear un registro de usuarios que se pueda utilizar para autenticar usuarios con OAuth:
- Inicie sesión en API Manager.
- En la página de inicio, haga clic en el mosaico Gestionar recursos.

- En la página Recursos, en el panel izquierdo, seleccione Registros de usuario.
- En la sección Registros de usuario, haga clic en Crear.
- En la página Crear registro de usuario, seleccione el mosaico de registro de usuario Autenticación URL. En la página Crear registro de usuario, haga clic en Autenticación URL Registro de usuario como tipo de registro de usuario seleccionado.

- En la página Crear registro de usuario de autenticación URL, introduzca la siguiente información.
- En los campos Título y Nombre para mostrar, introduzca AuthURL.
Si introduce AuthURL en los campos Título y Nombre para mostrar, podrá determinar fácilmente que este registro está configurado con una autenticación URL.
- En el campo URL introduzca https://httpbin.org/basic-auth/user/password.
Nota: La dirección URL que se facilita aquí es sólo para fines de prueba. El punto final
httpbin.org proporciona un espacio aislado en el que se puede simular un inicio de sesión con autenticación básica pasando credenciales en la cabecera de autorización que coincidan con los parámetros de ruta {user} y {password}.
- En la lista desplegable Perfil de cliente TLS (opcional), seleccione No TLS profile.
- Pulse Guardar.

Aparece la página Recursos con el nuevo registro incluido en la lista.
- Para crear un proveedor OAuth para autenticar a los usuarios que inician sesión con el registro AuthURL, realice las siguientes tareas.
- En la lista de navegación de la página Recursos, haga clic en Proveedores OAuth.

- En la sección Proveedores de OAuth, haga clic en .

Aparecerá la página Crear proveedor OAuth nativo.
- En la sección Proveedor nativo de OAuth, introduzca la siguiente información.
- En el campo Título, introduzca MyNativeOAuthProvider.
- En la sección Tipo de puerta de enlace, seleccione el botón de opción DataPower API Gateway (la misma pasarela utilizada por la API FindBranch ).
Nota: Cada proveedor nativo de OAuth se aplica a un tipo de pasarela. El tipo de puerta de enlace que seleccione aquí debe coincidir con el tipo de puerta de enlace utilizado por la API que se protegerá con este nuevo proveedor.
- Pulse Siguiente.

- En la sección Tipos de subvención admitidos, realice las siguientes tareas.
- Seleccione la casilla Código de acceso y anule la selección de todos los demás tipos de subvención.
Tenga en cuenta que, este tutorial utiliza un único tipo de concesión para ilustrar cómo funciona el proveedor nativo de OAuth.
- Pulse Siguiente.

- En la sección Ámbitos, realice las siguientes tareas.
- Haga clic en
para eliminar el ámbito por defecto.
- Haga clic en Añadir para definir el ámbito de la API que será protegida por el proveedor nativo de OAuth.
- En el campo Nombre, introduzca details.
- En el campo Descripción, introduzca Branch
details
- Pulse Siguiente.

- En la sección Punto final de autorización, realice las siguientes tareas.
- En la sección Autenticación, en la lista desplegable Autenticar usuarios de aplicaciones mediante, seleccione AuthURL.
- Pulse Siguiente.

- En la sección Resumen del proveedor de OAuth nativo, revise la configuración y haga clic en Finalizar.
Una vez guardado el nuevo proveedor, su información estará disponible para su edición y se mostrará en la página Información.
- En la página Información, realice las siguientes tareas.
- Seleccione la casilla Habilitar cabeceras de respuesta de depuración.
Al seleccionar esta casilla se incluyen detalles del error en las cabeceras de respuesta cuando se producen problemas.
- Pulse Guardar.

El nuevo proveedor nativo de OAuth ya está completo.
- Para configurar el registro AuthURL de modo que funcione como un registro de usuario de API en el catálogo Sandbox, realice las siguientes tareas.
- En el panel de navegación, haga clic en el icono Gestionar
.
- En la página Gestionar, haga clic en la ficha Catálogo Sandbox.

Aparece la página Productos.
- En la barra de menús, seleccione Configuración del catálogo.

- En el panel izquierdo, haga clic en Registros de usuarios API.
- En la sección Añadir registros de usuario API, haga clic en Editar.

- En la página Editar registros de usuario de API, realice las siguientes tareas.
- Seleccione la casilla AuthURL casilla de verificación.
- Pulse Guardar.

El nuevo registro aparece en la lista de registros de usuario de la API, como se muestra en la siguiente imagen.

- Para configurar su proveedor nativo de OAuth y hacerlo disponible en la interfaz del Gestor de API, realice las siguientes tareas.
- Seleccione .
- En el panel izquierdo, haga clic en Proveedores OAuth.
- En la sección Proveedores OAuth, haga clic en Editar.

- En la página Editar proveedor OAuth, realice la siguiente tarea.
- Seleccione la casilla MyNativeOAuthProvider casilla de verificación.
- Pulse Guardar.

MyNativeOAuthProvider aparece en la lista de proveedores configurados que puede utilizar con API Manager.
Añadir seguridad OAuth a una API
Cree una definición de seguridad para la API FindBranch e incluya la información de su proveedor OAuth nativo.
- Vaya a la página de inicio del Gestor de API.

- En la página de inicio, haga clic en el icono
Develop.Como alternativa, seleccione el mosaico Desarrollar API y productos.
- En la página Desarrollo, en APIs, seleccione la API que desea modificar. Por ejemplo, FindBranch.

- En la página FindBranch Diseño de la API, realice las siguientes tareas.
- En el panel de navegación izquierdo, seleccione Esquemas de seguridad.

- En la sección Esquemas de seguridad, haga clic en Añadir.

- En la ventana emergente Añadir esquema, realice las siguientes tareas.
- En el campo Nombre de definición de seguridad (clave), introduzca FindBranchOA.
- En la lista desplegable Tipo, seleccione oauth2.
- En la lista desplegable Proveedor OAuth (Nombre) (opcional), seleccione MyNativeOAuthProvider.
- En la lista desplegable Flujo, seleccione Access
Code.
- Conserve los valores precargados en los campos URL de autorización y URL de token.
- Pulse Añadir.

FindBranchOA aparece ahora en Esquemas de seguridad.

- En el panel derecho, en la sección FindBranchOA haga clic en el enlace de detalles y compruebe que se muestra el ámbito que definió para el proveedor nativo de OAuth.

- En la esquina superior derecha de la página, haga clic en Guardar.
- En el panel de navegación izquierdo, seleccione Seguridad.

- En la sección Requisitos de seguridad, realice las siguientes tareas.
- Pulse Añadir.
- En la ventana emergente Añadir esquema, seleccione el icono ClientID y FindBranchOA y haga clic en Añadir.

FindBranchOA en la sección Requisitos de seguridad.
- Junto a FindBranchOA, en la lista desplegable Scopes, seleccione details.
- En la esquina superior derecha, haga clic en Guardar.

Añadir una redirección OAuth a la aplicación de prueba Sandbox
Para probar la funcionalidad OAuth dentro del API Manager, utilice la aplicación Sandbox Test App. La Sandbox Test App se incluye con el catálogo Sandbox, y se suscribe automáticamente al producto predeterminado para cada API que se crea dentro del catálogo, por lo que siempre está disponible para probar APIs en API Manager.
Nota: Antes de utilizar la aplicación para pruebas OAuth, debe actualizarla para incluir una redirección OAuth URL.
- Vaya a la página de inicio del Gestor de API.

- En la página de inicio, en el panel de navegación, haga clic en Administrar
.
- En la página Gestionar, haga clic en la ficha Catálogo Sandbox.

Aparece la página Productos.
- En la barra de menús, haga clic en Aplicaciones.
- En la lista de aplicaciones, seleccione la aplicación Sandbox Test App.

Aparecerá la página Editar aplicación.
- En la página Editar aplicación, realice las siguientes tareas.
- En la sección URL de redireccionamiento de OAuth (opcional), haga clic en Agregar URL de redireccionamiento.
- En el campo URL de redireccionamiento de OAuth (opcional), introduzca https://example.com/redirect
Aunque este campo es opcional, debe introducir el valor para el flujo de autorización en su proveedor de OAuth. Para probar OAuth en el Administrador de API, URL puede ser cualquier valor formateado como URL, pero debe utilizar el mismo valor cuando proporcione la redirección URL durante la prueba.
- Tras introducir el valor en el campo URL de redirección de OAuth (opcional), haga clic en el icono Completar para guardar el valor.

- Haga clic en Guardar para actualizar la aplicación.

Probar la implementación de seguridad OAuth
Nota: Debido a las restricciones de Cross-Origin Resource Sharing (CORS), la herramienta de prueba de ensamblaje no puede utilizarse con los navegadores Chrome o Safari en la plataforma macOS Catalina.
Para probar su implementación de OAuth, ejecute una API desde el API Manager utilizando la Sandbox Test App.
Nota: Antes de ejecutar la API,
- Debe publicar el producto para asegurarse de que la última actualización está en línea y disponible para las pruebas.
- Debe obtener un código de autorización y luego utilizarlo para obtener un token de acceso que le permita ejecutar la API.
- Vaya a la página de inicio del Gestor de API.

- En la página de inicio, haga clic en el icono
Develop.Como alternativa, seleccione el mosaico Desarrollar API y productos.
- En la página Desarrollar, seleccione la API que desea probar. Por ejemplo, FindBranch.
- En la barra de menús, seleccione Prueba.
- En la página Prueba, realice las siguientes tareas.
- Haga clic en .

- En la ventana emergente Autorizar, realice las siguientes tareas.
- Seleccione la Oauth2 pestaña
- En el campo ID de cliente, introduzca su ID de cliente.
- En el campo Secreto de cliente, introduzca su secreto de cliente.
- En Ámbitos, seleccione la casilla Detalles.
- En el campo Nombre de usuario, introduzca user.
- En el campo Contraseña, introduzca password.
- Haga clic en la pestaña Obtener token.
- En el cuadro de diálogo emergente, introduzca las credenciales de inicio de sesión del Administrador de API y, a continuación, haga clic en Iniciar sesión o pulse INTRO.

El código de acceso se genera y se muestra en la ventana emergente Autorizar.
- En la sección Access Token, copie el token.

- Haga clic en Aplicar.
- En la barra de menús, seleccione Explorador.
- En la página Explorador, en el panel izquierdo, seleccione GET/detalles.
- En el panel derecho, en la sección GET : /details, realice las siguientes tareas.
- Seleccione la pestaña Pruébelo.

- En el campo Secreto API, introduzca su secreto de cliente.
- En la sección Autorización, realice las siguientes tareas.
- Seleccione la casilla de verificación de detalles.
- En el campo Redirect URI, introduzca https://example.com/redirect.
- Para obtener el código de autorización, desplácese hacia abajo y haga clic en Autorizar.
- En el cuadro de diálogo emergente, en el campo ID de usuario, introduzca user, en el campo Contraseña, introduzca password y, a continuación, haga clic en Iniciar sesión o pulse INTRO.

Cuando se autentifica correctamente, el navegador le redirige a una ventana que muestra la página de la redirección URL. Su código de autorización se incluye en la barra de direcciones como parámetro de URL.
Su código de autorización se incluye en la barra de direcciones como parámetro de URL, tal y como se muestra en la siguiente imagen. Si el URL es https://example.com/redirect?code=AAPl-yX6XVtdROcU4_WJhETLPLjLOJoJIpAYSFf7-4FxcNJ2XfXbMWpu8LnruLtcgmkdjNeDstRi0aO-d8bZX888iQYrtyhfrYSgADZgWy84nw, su código de autorización es, AAPl-yX6XVtdROcU4_WJhETLPLjLOJoJIpAYSFf7-4FxcNJ2XfXbMWpu8LnruLtcgmkdjNeDstRi0aO-d8bZX888iQYrtyhfrYSgADZgWy84nw.
- Copie el código de autorización de URL en la barra de direcciones de la ventana, capturando todo lo que aparece después de "code=".
Por ejemplo:
https://example.com/redirect?code= AALMmZCyKnhY1HpZGfpHkFH7wDdsNh9R2hgDfGwMVgdEzBOTlnq5LPZ3x6RFPa3V7CzsGacH8LLGlafnqa3ntbh921n5rJE7W0_jC1cAtzcZEg
- En el campo Autorizar, introduzca el código de autorización.
- Haga clic en Obtener Token para obtener el token de acceso.
Si la autorización se realiza correctamente, el código de acceso se introduce en Get Token.
Consejo: Si el código de acceso no aparece y ve un mensaje sobre la caducidad de su código de autorización, vuelva al paso anterior para solicitar un nuevo código de autorización y utilícelo para generar el código de acceso.
- Pulse Enviar.
La respuesta de la API FindBranch La respuesta de la API muestra el código de estado200. Puede ver la información de las cabeceras de la respuesta y la información del cuerpo que contiene los datos de cada sucursal bancaria.
Puede desplazarse hacia abajo y ver la información en la sección Respuesta.


Qué ha hecho en esta guía de aprendizaje
En esta guía de aprendizaje, ha completado las actividades siguientes:
- Creado un registro de usuarios para su uso con un proveedor OAuth.
- Se ha creado un proveedor OAuth nativo y se ha puesto a disposición en el catálogo.
- Añadida seguridad OAuth a una API.
- Actualizada la Sandbox Test App (aplicación cliente) para proporcionar una redirección OAuth para pruebas.
- Se ha comprobado la seguridad de OAuth obteniendo un código de autorización, intercambiándolo por un token de acceso e invocando la API segura.