Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a Oracle Cloud Infrastructure Free Tier.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos del entorno en la nube.
Integración de Oracle APEX con dominios de identidad de Oracle Cloud Infrastructure Identity and Access Management
Introducción
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) proporciona funciones de gestión de identidad y acceso como autenticación, conexión única (SSO) y gestión del ciclo de vida de identidad para Oracle Cloud Infrastructure, así como para aplicaciones de Oracle y no Oracle, ya sean SaaS, alojadas en la nube o locales.
Objetivo
- Configure SSO en aplicaciones de Oracle APEX mediante dominios de identidad de OCI IAM como proveedor de identidad (IdP), que proporciona controles de seguridad como autenticación multifactor (MFA), seguridad adaptable, informes, etc.
Requisitos
- 
    Acceso de administrador de OCI IAM a cualquier dominio de identidad para la configuración de la aplicación asociada. 
- 
    Oracle APEX 18.1 y superior con una aplicación configurada para la autenticación. 
Tarea 1: Instalación de una aplicación de ejemplo en Oracle APEX
- 
    Conéctese a su espacio de trabajo de APEX para crear una aplicación de ejemplo para la que utilizaremos OCI IAM como IdP para SSO. Para crear una aplicación en Oracle APEX, haga clic en Creador de aplicaciones. 
- 
    Haga clic en Crear aplicación.  
- 
    Seleccione De un archivo.  
- 
    Haga clic en Copiar y pegar y seleccione Ventas como se muestra en las siguientes imágenes.   
Tarea 2: Registro de una aplicación confidencial en OCI IAM
Registraremos una aplicación confidencial en el dominio de OCI IAM. Para este tutorial, hemos utilizado el dominio por defecto.
- 
    Conéctese a la consola de OCI y vaya a Identidad y seguridad. En Identidad, haga clic en Dominios y Aplicaciones.  
- 
    Seleccione Confidential Application y haga clic en Launch workflow.  
- 
    Introduzca un nombre para la aplicación y haga clic en Siguiente.  
- 
    Seleccione Código de autorización como Tipo de permiso permitido y haga clic en Siguiente.  
- 
    Introduzca la URL de redirección con este formato: https://guid-demodb.adb.region.oraclecloudapps.com/ords/apex_authentication.callback. Por ejemplo,https://guid-demodb.adb.us-ashburn-1.oraclecloudapps.com/ords/apex_authentication.callback.
- 
    Introduzca la URL de redirección posterior a la desconexión con este formato: https://guid-demodb.adb.region.oraclecloudapps.com/ords/f?p=your_apex_number_here.
- 
    Deje la URL de desconexión en blanco. Nota: Tenga en cuenta que esta URL debe coincidir exactamente cuando se agregue más adelante en la URL posterior a la desconexión del esquema de autenticación de Oracle APEX.  
- 
    Haga clic en Terminar.  
- 
    Haga clic en Editar aplicación y seleccione Aplicar permiso como autorización en Autenticación y autorización (se utilizará más adelante para controlar el acceso a la aplicación de Oracle APEX).  
- 
    Haga clic en Activar aplicación.  
- 
    Copie el ID de cliente y el secreto de cliente que utilizaremos en la configuración de Oracle APEX.  
Tarea 3: Creación de una nueva credencial web en el espacio de trabajo de Oracle APEX
- 
    Abra el espacio de trabajo de Oracle APEX. En la aplicación creada en la tarea 1, haga clic en Objetos compartidos.  
- 
    Haga clic en Credenciales.  
- 
    Haga clic en Crear.  
- 
    Introduzca la siguiente información y haga clic en Crear. Nota: Utilice el ID de cliente y el Secreto de cliente de la aplicación confidencial en la tarea 2.  
- 
    Asigne un usuario a esta aplicación.  
Tarea 4: Creación de un nuevo esquema de autenticación en Oracle APEX para la aplicación de ejemplo
- 
    Abra el espacio de trabajo de Oracle APEX y haga clic en Objetos compartidos. En Seguridad, haga clic en Esquemas de autenticación y Crear.   
- 
    Seleccione Basado en un esquema preconfigurado de la galería y haga clic en Siguiente.  
- 
    Introduzca la siguiente información y haga clic en Crear. La URL de detección será https://[idcs-service-url]/.well-known/openid-configuration/. 
- 
    Haga clic en el esquema de autenticación actual de Oracle Identity Cloud Service (IDCS) creado. 
- 
    Haga clic en el separador URL posterior a la desconexión y seleccione Ir a y URL. En la URL, pegue la URL de la aplicación de Oracle APEX de la tarea 2.6. Esta URL debe coincidir con la URL de redirección posterior a la desconexión de IDCS.  
- 
    En Atributos de seguridad, actualice la información y haga clic en Aplicar cambios.   
- 
    (Opcional) En la sección Origen, introduzca el siguiente código PL/SQL. Nota: Esto solo es necesario si desea controlar la autorización, en los casos en los que queremos cambiar las funciones o el comportamiento de una aplicación en función de los grupos a los que pertenece un usuario. Para obtener más información, consulte la sección Control de Autorización al final de este tutorial. procedure load_dynamic_groups as l_group_names apex_t_varchar2; begin -- -- add all group names to l_group_names -- for i in 1 .. apex_json.get_count('groups') loop apex_string.push ( p_table => l_group_names, p_value => apex_json.get_varchar2 ( p_path => 'groups[%d].name', p0 => i )); end loop; -- -- save group names in session -- apex_authorization.enable_dynamic_groups ( p_group_names => l_group_names ); end; 
- 
    (Opcional utilizado para el paso 7) En Procesamiento de conexión, introduzca la siguiente información y guarde.  
Tarea 5: Prueba de conexión a la aplicación Oracle APEX
- 
    Haga clic en Ejecutar página.  
- 
    Introduzca las credenciales en la pantalla de inicio de sesión solicitada. Para este tutorial, la cuenta utilizada para la autenticación se sincroniza desde el directorio activo local y la contraseña reside en el directorio activo. OCI IAM recopilará el nombre de usuario y la contraseña y los validará en el directorio activo.  
- 
    Haga clic en Permitir.  
Se muestra la página de llegada de la aplicación.

Control de Autorización
Puede controlar la autorización activando Forzar otorgamiento como autorización en la aplicación confidencial configurada para SSO, que solo permitirá a los usuarios o grupos asignados a esta aplicación acceder a la aplicación de Oracle APEX. Esto se muestra en la Tarea 2.9.
La otra forma de controlar la autorización es utilizar un procedimiento PL/SQL dentro del esquema de autenticación, como se muestra en las tareas 4.7 y 4.8. Después de la autenticación correcta, se llamará a userinfo_endpoint y los resultados estarán disponibles para el procedimiento posterior a la autenticación. Los resultados de JSON se convierten en listas de grupos y se almacenan en una sesión de Oracle APEX incorporada para la gestión de grupos, que posteriormente se puede vincular con el esquema de autorización en componentes compartidos para proporcionar acceso a la aplicación en función de la pertenencia de grupo de los usuarios.
Enlaces relacionados
Agradecimientos
- Autor: Aqib Javid Bhat (ingeniero sénior en la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Integrate Oracle APEX with Oracle Cloud Infrastructure Identity and Access Management Identity Domains
F78521-02
May 2024