Note:

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

Requisitos

Tarea 1: Instalación de una aplicación de ejemplo en Oracle APEX

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

  2. Haga clic en Crear aplicación.

    Imagen 1

  3. Seleccione De un archivo.

    Imagen 2

  4. Haga clic en Copiar y pegar y seleccione Ventas como se muestra en las siguientes imágenes.

    Imagen 3

    Imagen 4

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.

  1. Conéctese a la consola de OCI y vaya a Identidad y seguridad. En Identidad, haga clic en Dominios y Aplicaciones.

    Imagen 4

  2. Seleccione Confidential Application y haga clic en Launch workflow.

    Imagen 5

  3. Introduzca un nombre para la aplicación y haga clic en Siguiente.

    Imagen 6

  4. Seleccione Código de autorización como Tipo de permiso permitido y haga clic en Siguiente.

    Imagen 7

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

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

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

    Imagen 31

  8. Haga clic en Terminar.

    Imagen 8

  9. 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).

    Imagen 10

  10. Haga clic en Activar aplicación.

    Imagen 9

  11. Copie el ID de cliente y el secreto de cliente que utilizaremos en la configuración de Oracle APEX.

    Imagen 11

Tarea 3: Creación de una nueva credencial web en el espacio de trabajo de Oracle APEX

  1. Abra el espacio de trabajo de Oracle APEX. En la aplicación creada en la tarea 1, haga clic en Objetos compartidos.

    Imagen 12

  2. Haga clic en Credenciales.

    Imagen 13

  3. Haga clic en Crear.

    Imagen 14

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

    Imagen 15

  5. Asigne un usuario a esta aplicación.

    Imagen 22

Tarea 4: Creación de un nuevo esquema de autenticación en Oracle APEX para la aplicación de ejemplo

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

    Imagen 16

    Imagen 17

  2. Seleccione Basado en un esquema preconfigurado de la galería y haga clic en Siguiente.

    Imagen 18

  3. Introduzca la siguiente información y haga clic en Crear. La URL de detección será https://[idcs-service-url]/.well-known/openid-configuration/.

    Imagen 19

  4. Haga clic en el esquema de autenticación actual de Oracle Identity Cloud Service (IDCS) creado.

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

    Imagen 30

  6. En Atributos de seguridad, actualice la información y haga clic en Aplicar cambios.

    Imagen 27

    Imagen 28

  7. (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;
    
    

    Imagen 20

  8. (Opcional utilizado para el paso 7) En Procesamiento de conexión, introduzca la siguiente información y guarde.

    Imagen 29

Tarea 5: Prueba de conexión a la aplicación Oracle APEX

  1. Haga clic en Ejecutar página.

    Imagen 23

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

    Imagen 24

  3. Haga clic en Permitir.

    Imagen 25

Se muestra la página de llegada de la aplicación.

Imagen 26

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.

Agradecimientos

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.