Remarques :

Lecture de messages publiés dans un flux OCI à partir d'Oracle Access Governance Event Data Publisher

Introduction

La publication des données d'événement est un processus permettant d'exporter des données ponctuelles et de publier en continu des événements de données continus vers des systèmes externes, tels qu'un compte cloud Oracle Cloud Infrastructure (OCI). Avec Oracle Access Governance, vous avez la possibilité d'exporter des événements de données exceptionnels et de publier continuellement des événements de données, tels que des identités, des collections d'identités, une stratégie, une ressource, un accès aux ressources, etc., vers votre location cloud. Vous pouvez utiliser ces données pour obtenir des informations, stocker des données à des fins de conformité ou pour analyser les données de gestion des accès et de gouvernance.

Un événement fait référence à tout changement d'état des données qui se produit lors de la création, de la modification ou de la suppression de composants Oracle Access Governance, tels que l'identité, les stratégies, les ressources, etc. Grâce à Event Data Publisher, les administrateurs disposent d'un contrôle total sur les données d'identité et d'accès et peuvent les utiliser pour automatiser la journalisation des événements et rationaliser le reporting de conformité.

Le flux de publication des événements de données utilise les buckets OCI pour un export ponctuel et publie les mises à jour suivantes vers les flux OCI ou les buckets OCI en fonction de la taille du fichier.

Flux de publication d'événements de données

Dans ce tutoriel, nous vous expliquerons comment les mises à jour utilisateur dans OCI sont capturées et publiées dans des flux OCI par Oracle Access Governance, et comment utiliser et décoder ces messages de flux à l'aide d'un script via OCI Cloud Shell.

Remarque : l'éditeur de données d'événement prend en charge l'export d'identités, de collections d'identités, de stratégies et de ressources. Toutefois, ce tutoriel se concentre sur la capture d'événements pour les identités.

Présentation du script shell

Le but de ce script shell est d'extraire et de décoder les messages publiés dans un flux OCI. Ces messages sont codés d'une manière qui les rend illisibles dans leur format brut. En exécutant le script, vous pouvez afficher les messages dans un format clair et lisible par l'utilisateur, ce qui garantit que les informations critiques sont accessibles même après leur disparition de la console OCI.

Plus précisément, le script crée un curseur pour marquer un point de départ pour la lecture de messages à partir du flux OCI spécifié. Le curseur est basé sur un décalage spécifié et sur une partition dont les valeurs sont extraites en produisant un message de flux de test. A l'aide du curseur, le script extrait les messages du flux OCI. Finalement, le script traite et décode chaque message extrait.

Public

Administrateurs Oracle Access Governance et Oracle Cloud Infrastructure Identity and Access Management (OCI IAM).

Objectifs

Prérequis

Tâche 1 : extraction des paramètres clés pour le flux OCI

Dans cette tâche, nous allons nous connecter à la console OCI pour extraire les paramètres clés du flux de données.

  1. Connectez-vous à la console OCI, accédez à Analytics et IA, à Messagerie et cliquez sur Transmission en continu.

  2. Veillez à sélectionner le compartiment dans lequel se trouve le flux, puis cliquez sur ce dernier pour visualiser les détails.

  3. Notez les valeurs de l'OCID et de l'adresse de messages de flux de données.

    Obtention des paramètres de flux

  4. Cliquez sur Générer un message de test, entrez l'exemple de message Données, puis cliquez sur Générer. Il doit renvoyer un message Success.

    Générer un message de flux de test

  5. Cliquez sur Annuler pour fermer la fenêtre Flux de test.

  6. Cliquez sur Charger les messages pour vérifier le message de test.

  7. Dans la section Recent Messages, notez les valeurs Partition et Offset.

    Obtention des paramètres de message de flux

Tâche 2 : mise à jour des attributs utilisateur dans OCI

Dans cette tâche, nous apporterons des modifications aux attributs utilisateur dans OCI.

  1. Accédez à la console OCI, accédez à Identité et sécurité et cliquez sur Domaines.

  2. Sélectionnez votre domaine et cliquez sur Utilisateurs. Cliquez sur l'utilisateur à mettre à jour, puis sur Modifier l'utilisateur.

  3. Mettez à jour les valeurs de Pays, Titre, Service, Centre de coûts, Type d'utilisateur, Matricule de l'employé, etc.

  4. Cliquez sur Enregistrer les modifications.

Remarque : si vous le souhaitez, vous pouvez éventuellement mettre à jour quelques utilisateurs supplémentaires.

Tâche 3 : effectuer un chargement de données dans Oracle Access Governance

Dans cette tâche, nous effectuerons le chargement des données dans Oracle Access Governance pour synchroniser les modifications OCI.

  1. Connectez-vous à Oracle Access Governance, accédez à Administration des services et à Systèmes orchestrés.

  2. Localisez le système orchestré pour OCI, cliquez sur l'icône à trois points ( ) et sélectionnez Gérer l'intégration.

  3. Cliquez sur Charger les données maintenant et attendez la fin du chargement.

    Exécuter le chargement des données

Tâche 4 : configurer OCI Cloud Shell pour exécuter un script afin de capturer des messages à partir du flux de données

Dans cette tâche, nous allons configurer OCI Cloud Shell et utiliser le script fourni pour décoder les messages publiés par Oracle Access Governance.

  1. Accédez à la console OCI, cliquez sur Cloud Shell dans l'angle supérieur droit et attendez l'initialisation de la fenêtre cloud shell.

    Accéder à Cloud Shell

    Démarrez Cloud Shell

  2. Initialisez les paramètres suivants.

    export STREAM_OCID=<STREAM_OCID_VALUE>
    export ENDPOINT=<MESSAGES_ENDPOINT>
    export CURSOR_TYPE="AFTER_OFFSET"
    export PARTITION=<PARTITION>
    export OFFSET=<OFFSET>
    
    • Remplacez les paramètres STREAM_OCID, ENDPOINT, PARTITION et OFFSET pour le flux par les valeurs capturées dans la tâche 1.

    • La valeur CURSOR_TYPE est définie sur AFTER_OFFSET pour inclure tous les messages générés après la valeur de décalage indiquée pour la lecture. Ne modifiez pas cette valeur.

      Remarque : Vous pouvez obtenir un exemple de valeur pour le décalage à partir du message de test, mais vous devez choisir une valeur après laquelle vous souhaitez capturer les messages. Voici ce que fait CURSOR_TYPE en tant que AFTER_OFFSET.

  3. Créez un fichier script shell et rendez-le exécutable.

    touch ag-streaming.sh
    chmod u+x ag-streaming.sh
    
  4. Ouvrez le script avec l'éditeur vi.

    vi ag-streaming.sh
    
  5. Appuyez sur i pour passer en mode d'insertion. Collez le contenu suivant, puis appuyez sur Echap et :wq ! pour enregistrer les modifications.

    #!/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. Exécutez le script et redirigez les messages de sortie vers un fichier (messages_dump.txt est utilisé comme exemple). Vous pouvez également exécuter le script pour afficher les messages sur la console.

    ./ag-streaming.sh > messages_dump.txt
    
  7. Téléchargez le fichier messages_dump.txt à partir d'OCI Cloud Shell afin de vérifier les messages décodés pour les mises à jour utilisateur effectuées précédemment.

Dans ce tutoriel, nous avons appris à lire des messages à partir d'un flux OCI publiés à partir de l'éditeur de données d'événement dans Oracle Access Governance. Nous avons vu comment nous pouvons tirer parti de l'interface de ligne de commande OCI à l'aide d'OCI Cloud Shell pour lire les messages en fonction d'un décalage spécifié. Ces messages contiennent des modifications concernant les utilisateurs, les groupes, les ressources et les associations de stratégies OCI et sont donc importants du point de vue de l'audit, de la conformité et du reporting.

Etapes suivantes

Une fois ce tutoriel terminé, vous pouvez analyser le contenu des messages d'événement de données publiés à partir d'Oracle Access Governance vers les flux OCI. Vous pouvez éventuellement configurer d'autres traitements pour analyser les messages d'événement en fonction des exigences d'audit et de conformité. Vous pouvez également déplacer des données de flux vers un entrepôt de données autonome pour effectuer des analyses et des visualisations avancées. Les données peuvent également être déplacées vers OCI Object Storage pour un stockage à long terme ou pour exécuter des travaux Hadoop/Spark.

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.