Note:

Mensajes de lectura publicados en un flujo de OCI desde Oracle Access Governance Event Data Publisher

Introducción

La publicación de datos de eventos es un proceso para exportar datos únicos y publicar continuamente eventos de datos en curso en sistemas externos, como una cuenta en la nube de Oracle Cloud Infrastructure (OCI). Con Oracle Access Governance, tiene la flexibilidad de exportar eventos de datos puntuales y publicar continuamente, como identidad, recopilaciones de identidades, políticas, recursos, acceso a recursos, etc., a su arrendamiento en la nube. Puede utilizar estos datos para obtener estadísticas, almacenar datos para el cumplimiento o analizar datos de gobernanza y gestión de acceso.

Un evento hace referencia a cualquier cambio en el estado de los datos que se produce cuando se crean, modifican o suprimen componentes de Oracle Access Governance, como identidad, políticas, recursos, etc. Mediante Event Data Publisher, los administradores obtienen un control completo sobre los datos de acceso e identidad y pueden utilizarlos para automatizar el registro de eventos y simplificar los informes de cumplimiento.

El flujo de publicación de eventos de datos utiliza cubos de OCI para la exportación puntual y publica actualizaciones posteriores en flujos de OCI o cubos de OCI según el tamaño del archivo.

Flujo de publicación de evento de datos

En este tutorial, le mostraremos cómo Oracle Access Governance captura y publica las actualizaciones de usuario en OCI en flujos de OCI y cómo consumir y decodificar estos mensajes de flujo mediante un script a través de OCI Cloud Shell.

Nota: Event Data Publisher soporta la exportación de identidades, recopilaciones de identidades, políticas y recursos; sin embargo, este tutorial se centra en la captura de eventos para identidades.

Descripción general del script de shell

El objetivo de este script de shell es recuperar y descodificar los mensajes publicados en un flujo de OCI. Estos mensajes están codificados de una manera que los hace ilegibles en su formato raw. Al ejecutar el script, puede ver los mensajes en un formato claro y legible para el usuario, lo que garantiza que se pueda acceder a la información crítica incluso después de que desaparezca de la consola de OCI.

En concreto, el script crea un cursor para marcar un punto de partida para leer mensajes del flujo de OCI especificado. El cursor se basa en un desplazamiento especificado y una partición cuyos valores se recuperan mediante la producción de un mensaje de flujo de prueba. Mediante el cursor, el script recupera mensajes del flujo de OCI. Finalmente, el script procesa y decodifica cada mensaje recuperado.

Público Objetivo

Administradores de Oracle Access Governance y Oracle Cloud Infrastructure Identity and Access Management (OCI IAM).

Objetivos

Requisitos

Tarea 1: Recuperación de parámetros clave para el flujo de OCI

En esta tarea, nos conectaremos a la consola de OCI para recuperar los parámetros clave para el flujo.

  1. Conéctese a la consola de OCI, vaya a Analytics & AI, Messaging y haga clic en Streaming.

  2. Asegúrese de seleccionar el compartimento en el que se encuentra el flujo y haga clic en el flujo para ver los detalles.

  3. Anote los valores para el OCID de flujo y el punto final de mensajes.

    Parámetros de flujo de captura

  4. Haga clic en Producir mensaje de prueba, introduzca el mensaje de ejemplo como Datos y haga clic en Producir. Debe devolver un mensaje Correcto.

    Generar mensaje de flujo de prueba

  5. Haga clic en Cancelar para cerrar la ventana Probar flujo.

  6. Haga clic en Cargar mensajes para comprobar el mensaje de prueba.

  7. En la sección Mensajes recientes, anote los valores Partición y Desplazamiento.

    Grabar parámetros de mensaje de flujo

Tarea 2: Actualización de atributos de usuario en OCI

En esta tarea, realizaremos cambios en los atributos de usuario en OCI.

  1. Vaya a la consola de OCI, vaya a Identidad y seguridad y haga clic en Dominios.

  2. Seleccione el dominio y haga clic en Usuarios. Haga clic en el usuario que desea actualizar y haga clic en Editar usuario.

  3. Actualice los valores de País, Título, Departamento, Centro de costos, Tipo de usuario, Número de empleado, etc.

  4. Haga clic en Guardar cambios.

Nota: Opcionalmente, puede actualizar algunos usuarios más si lo prefiere.

Tarea 3: Carga de datos en Oracle Access Governance

En esta tarea, realizaremos la carga de datos en Oracle Access Governance para sincronizar los cambios de OCI.

  1. Inicie sesión en Oracle Access Governance, vaya a Administración de servicios y Sistemas orquestados.

  2. Localice el sistema orquestado para OCI, haga clic en el icono de tres puntos () y seleccione Gestionar integración.

  3. Haga clic en Cargar datos ahora y espere a que finalice la carga de datos.

    Realizar carga de datos

Tarea 4: Configuración de OCI Cloud Shell para ejecutar un script para capturar mensajes del flujo

En esta tarea, configuraremos OCI Cloud Shell y utilizaremos el script proporcionado para descodificar los mensajes publicados por Oracle Access Governance.

  1. Vaya a la consola de OCI, haga clic en Cloud Shell desde la esquina superior derecha y espere a que se inicialice la ventana de Cloud Shell.

    Navegar a Cloud Shell

    Inicie Cloud Shell

  2. Inicialice los siguientes parámetros.

    export STREAM_OCID=<STREAM_OCID_VALUE>
    export ENDPOINT=<MESSAGES_ENDPOINT>
    export CURSOR_TYPE="AFTER_OFFSET"
    export PARTITION=<PARTITION>
    export OFFSET=<OFFSET>
    
    • Sustituya los parámetros STREAM_OCID, ENDPOINT, PARTITION y OFFSET para el flujo por los valores capturados en la tarea 1.

    • CURSOR_TYPE se define en AFTER_OFFSET para incluir todos los mensajes generados después del valor de desplazamiento especificado para la lectura. No modifique este valor.

      Nota: Se puede obtener un valor de ejemplo para el desplazamiento del mensaje de prueba, pero debe seleccionar un valor después del cual desea capturar los mensajes. Esto es lo que hace CURSOR_TYPE como AFTER_OFFSET.

  3. Cree un archivo de script de shell y conviértalo en ejecutable.

    touch ag-streaming.sh
    chmod u+x ag-streaming.sh
    
  4. Abra el script con vi editor.

    vi ag-streaming.sh
    
  5. Pulse i para introducir el modo de inserción. Pegue el siguiente contenido y, a continuación, pulse Esc y :wq! para guardar los cambios.

    #!/bin/bash
    
    # Validate required environment variables
    
    required_vars=("STREAM_OCID" "ENDPOINT" "CURSOR_TYPE" "PARTITION" "OFFSET")
    
    for var in "${required_vars[@]}"; do
       if [ -z "${!var}" ]; then
          echo "Error: Environment variable $var is not set."
          exit 1
       fi
    done
    
    # Create a cursor for the OCI Stream
    # echo "Creating a cursor for the OCI Stream..."
    oci streaming stream cursor create-cursor \
       --partition "$PARTITION" \
       --stream-id "$STREAM_OCID" \
       --type "$CURSOR_TYPE" \
       --offset "$OFFSET" \
       --endpoint "$ENDPOINT" > cursor.json
    
    # Extract cursor value
    cursor=$(jq -r '.data.value' cursor.json)
    if [ -z "$cursor" ]; then
       echo "Error: Failed to retrieve cursor value."
       exit 1
    fi
    
    # Read messages from the OCI Stream
    echo "Reading messages from the OCI Stream..."
    messages=$(oci streaming stream message get \
       --stream-id "$STREAM_OCID" \
       --cursor "$cursor" \
       --endpoint "$ENDPOINT")
    
    # Check if messages were retrieved
    if [ -z "$messages" ] || ! echo "$messages" | jq -e '.data[] | select(.key != null)' > /dev/null 2>&1; then
       echo "No valid messages found."
       exit 1
    fi
    
    # Extract and decode the data from messages
    echo "Processing messages..."
    
    # Extract and count the number of messages
    message_count=$(echo "$messages" | jq -r '.data[] | select(.key != null) | .value' | wc -l)
    
    echo "$messages" | jq -r '.data[] | select(.key != null) | .value' | while read -r value; do
       if [ -n "$value" ]; then
          counter=$((counter + 1))
          echo
          echo "Decoding message $counter of $message_count..."
    
          # Base64 decode the message
          decoded_message=$(echo "$value" | base64 --decode 2>/dev/null || echo "Error decoding message")
          final_decoded_message=$(echo "$decoded_message" | base64 --decode 2>/dev/null || echo "Error decoding message further")
    
          # Print the decoded message
          echo "Decoded Message : $final_decoded_message"
       fi
    done
    
  6. Ejecute la secuencia de comandos y redirija los mensajes de salida a un archivo (messages_dump.txt se utiliza como ejemplo). También puede ejecutar el script para mostrar mensajes en la consola.

    ./ag-streaming.sh > messages_dump.txt
    
  7. Descargue el archivo messages_dump.txt de OCI Cloud Shell para comprobar los mensajes descodificados de las actualizaciones de usuario realizadas anteriormente.

En este tutorial, hemos aprendido a leer mensajes de un flujo de OCI que se publican desde el editor de datos de eventos en Oracle Access Governance. Hemos visto cómo podemos aprovechar la interfaz de línea de comandos (CLI) de OCI mediante OCI Cloud Shell para leer los mensajes en función de un desplazamiento especificado. Estos mensajes contienen cambios relacionados con usuarios, grupos, recursos y asociaciones de políticas de OCI y, por lo tanto, son importantes desde la perspectiva de auditoría, cumplimiento y generación de informes.

Pasos Siguientes

Después de completar este tutorial, puede analizar el contenido de los mensajes de eventos de datos publicados desde Oracle Access Governance hasta los flujos de OCI. Opcionalmente, puede configurar más procesos para analizar los mensajes de evento para requisitos de conformidad y auditoría. También puede mover datos de flujos a un almacén de datos autónomo para realizar análisis y una visualización avanzados. Los datos también se pueden mover a OCI Object Storage para almacenamiento a largo plazo o para ejecutar trabajos de Hadoop/Spark.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visita education.oracle.com/learning-explorer para convertirte en un Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.