Intégration à un fichier plat

Etablissez une connexion entre le fichier plat et Oracle Access Governance en tant que source faisant autorité et en tant que système géré. Pour ce faire, utilisez la fonctionnalité Systèmes orchestrés disponible dans la console Oracle Access Governance.

Prérequis

Avant d'installer et de configurer un système orchestré de type fichier plat, vous devez tenir compte des tâches et prérequis suivants.

Composants certifiés

Le système doit être le suivant :

  • Fichier plat CSV créé dans Oracle Cloud Infrastructure (OCI) Object Storage dans la location

Modes pris en charge

Le système orchestré de type fichier plat prend en charge les modes suivants :
  • Source faisant autorité
  • Système géré

Opérations prises en charge

Le système orchestré de type fichier plat prend en charge les opérations suivantes :
  • Créer compte
  • Supprimer un compte
  • Ajouter une habilitation
  • Enlever l'habilitation

Création d'un bucket dans le service OCI Object Storage pour les opérations système orchestrées par fichier plat

Pour charger un fichier plat dans Oracle Access Governance, vous devez placer les fichiers de données dans un bucket créé à l'aide du service OCI Object Storage. Ce bucket peut être créé dans n'importe quel compartiment de la location OCI. Pour plus de détails sur OCI Object Storage, reportez-vous à Gestion des buckets.

Pour intégrer Oracle Access Governance au fichier plat, suivez les instructions indiquées dans Paramètres d'intégration et copiez les stratégies exactes dans le compartiment racine de la location tel qu'affiché sur la console. Pour plus de détails sur l'application des stratégies, reportez-vous à Création d'une stratégie.

Configurer

Configurez une connexion avec un fichier plat en saisissant les détails de la connexion.

Accéder à la page Systèmes orchestrés

Accédez à la page Systèmes orchestrés de la console Oracle Access Governance en procédant comme suit :
  1. Dans l'icône Menu de navigation du menu de navigation d'Oracle Access Governance, sélectionnez Administration des services → Systèmes orchestrés.
  2. Cliquez sur le bouton Ajouter un système orchestré pour démarrer le workflow.

Sélectionner un système

A l'étape Sélectionner un système du workflow, vous pouvez indiquer le type de système que vous souhaitez intégrer.

  1. Sélectionnez Fichier à plat.
  2. Sélectionnez Suivant.

Saisir les détails

A l'étape Ajouter des détails du workflow, entrez les détails du système orchestré :
  1. Entrez le nom du système auquel vous souhaitez vous connecter dans le champ Nom.
  2. Entrez une description du système dans le champ Description.
  3. Décidez si ce système orchestré est une source faisant autorité et si Oracle Access Governance peut gérer les droits d'accès en cochant les cases suivantes.
    • Il s'agit de la source faisant autorité pour mes identités

      Sélectionnez l'une des options suivantes :

      • Source d'identités et de leurs attributs : le système agit comme une source d'identités et des attributs associés. De nouvelles identités sont créées via cette option .
      • Source des attributs d'identité uniquement : le système ingère des détails d'attributs d'identité supplémentaires et les applique aux identités existantes. Cette option n'ingère ni ne crée d'enregistrements d'identité.
    • Je veux gérer les droits d'accès pour ce système
    Dans chaque cas, la valeur par défaut est Non sélectionné.
  4. Sélectionnez Suivant.

Ajouter des propriétaires

Vous pouvez associer la propriété des ressources en ajoutant des propriétaires principaux et supplémentaires. Cela entraîne le libre-service car ces propriétaires peuvent ensuite gérer (lire, mettre à jour ou supprimer) les ressources qu'ils possèdent. Par défaut, le créateur de la ressource est désigné comme propriétaire de la ressource. Vous pouvez affecter un propriétaire principal et jusqu'à 20 propriétaires supplémentaires pour les ressources.
Remarque

Lorsque vous configurez le premier système orchestré pour votre instance de service, vous ne pouvez affecter des propriétaires qu'après avoir activé les identités à partir de la section Gérer les identités.
Pour ajouter des propriétaires :
  1. Sélectionnez un utilisateur actif Oracle Access Governance en tant que propriétaire principal dans le champ Qui est le propriétaire principal ?.
  2. Sélectionnez un ou plusieurs propriétaires supplémentaires dans la liste Qui d'autre en est propriétaire ?. Vous pouvez ajouter jusqu'à 20 propriétaires supplémentaires pour la ressource.
Vous pouvez afficher le propriétaire principal dans la liste. Tous les propriétaires peuvent afficher et gérer les ressources qu'ils possèdent.

Paramètres de compte

A l'étape Paramètres de compte du workflow, indiquez comment Oracle Access Governance doit gérer les comptes lorsque le système est configuré en tant que système géré :
  1. Lorsqu'une autorisation est demandée et que le compte n'existe pas encore, sélectionnez cette option pour créer de nouveaux comptes. Cette option est sélectionnée par défaut. Lorsque cette option est sélectionnée, Oracle Access Governance crée un compte s'il n'en existe pas lorsqu'une autorisation est demandée. Si vous désélectionnez cette option, les droits d'accès ne sont provisionnés que pour les comptes existants dans le système orchestré. Si aucun compte n'existe, l'opération de provisionnement échoue.
  2. Sélectionnez les destinataires des courriels de notification lorsqu'un compte est créé. Le destinataire par défaut est Utilisateur. Si aucun destinataire n'est sélectionné, aucune notification n'est envoyée lors de la création des comptes.
    • Utilisateur
    • Gestionnaire d'utilisateurs
  3. Configurer des comptes existants
    Remarque

    Vous ne pouvez définir ces configurations que si l'administrateur système l'autorise. Lorsque les paramètres globaux de résiliation de compte sont activés, les administrateurs de l'application ne peuvent pas gérer les paramètres de résiliation de compte au niveau du système orchestré.
    1. Sélectionner ce qu'il faut faire avec les comptes lorsqu'une résiliation anticipée commence : choisissez l'action à effectuer lorsqu'une résiliation anticipée commence. Cela se produit lorsque vous devez révoquer les accès à l'identité avant la date de fin officielle.
      • Supprimer : supprime tous les comptes et droits d'accès gérés par Oracle Access Governance.
        Remarque

        Si un système orchestré spécifique ne prend pas en charge l'action, aucune action n'est entreprise.
      • Désactiver : désactive tous les comptes et tous les droits d'accès gérés par Oracle Access Governance.
        • Supprimer les droits d'accès pour les comptes désactivés : pour garantir un accès résiduel nul, sélectionnez cette option pour supprimer les droits d'accès affectés directement et les droits d'accès accordés par une stratégie lors de la désactivation du compte.
      • Aucune action : aucune action n'est entreprise lorsqu'une identité est marquée pour une résiliation anticipée par Oracle Access Governance.
    2. Sélectionner ce qu'il faut faire avec les comptes à la date de fin de contrat : sélectionnez l'action à effectuer lors de la fin de contrat officielle. Cela se produit lorsque vous devez révoquer les accès d'identité à la date de fin de contrat officielle.
      • Supprimer : supprime tous les comptes et droits d'accès gérés par Oracle Access Governance.
        Remarque

        Si un système orchestré spécifique ne prend pas en charge l'action Supprimer, aucune action n'est effectuée.
      • Désactiver : désactive tous les comptes et tous les droits d'accès gérés par Oracle Access Governance.
        • Supprimer les droits d'accès pour les comptes désactivés : pour garantir un accès résiduel nul, sélectionnez cette option pour supprimer les droits d'accès affectés directement et les droits d'accès accordés par une stratégie lors de la désactivation du compte.
        Remarque

        Si un système orchestré spécifique ne prend pas en charge l'action Désactiver, le compte est supprimé.
      • Aucune action : aucune action n'est effectuée sur les comptes et les droits d'accès par Oracle Access Governance.
  4. Lorsqu'une identité quitte votre entreprise, vous devez supprimer l'accès à ses comptes.
    Remarque

    Vous ne pouvez définir ces configurations que si l'administrateur système l'autorise. Lorsque les paramètres globaux de résiliation de compte sont activés, les administrateurs de l'application ne peuvent pas gérer les paramètres de résiliation de compte au niveau du système orchestré.

    Sélectionnez l'une des actions suivantes pour le compte :

    • Supprimer : supprimez tous les comptes et droits d'accès gérés par Oracle Access Governance.
    • Désactiver : désactivez tous les comptes et marquez les autorisations comme inactives.
      • Supprimer les droits d'accès pour les comptes désactivés : supprimer les droits d'accès directement affectés et accordés par une stratégie lors de la désactivation du compte afin de garantir un accès résiduel nul.
    • Aucune action : n'effectuez aucune action lorsqu'une identité quitte l'organisation.
    Remarque

    Ces actions ne sont disponibles que si elles sont prises en charge par le type de système orchestré. Par exemple, si l'option Supprimer n'est pas prise en charge, vous verrez uniquement les options Désactiver et Aucune action.
  5. Lorsque tous les droits d'accès d'un compte sont supprimés, par exemple lorsqu'une identité se déplace d'un service à l'autre, vous devrez peut-être décider quoi faire avec le compte. Sélectionnez l'une des actions suivantes, si elle est prise en charge par le type de système orchestré :
    • Supprimer
    • Désactiver
    • Aucune intervention
  6. Gérer les comptes qui ne sont pas créés par Access Governance : sélectionnez cette option pour gérer les comptes qui sont créés directement dans le système orchestré. Vous pouvez ainsi rapprocher les comptes existants et les gérer à partir d'Oracle Access Governance.
Remarque

Si vous ne configurez pas le système en tant que système géré, cette étape du workflow s'affiche mais n'est pas activée. Dans ce cas, vous passez directement à l'étape Paramètres d'intégration du workflow.
Remarque

Si votre système orchestré nécessite un repérage de schéma dynamique, comme pour les intégrations Generic REST et Database Application Tables, seule la destination de courriel de notification peut être définie (Utilisateur, Usermanager) lors de la création du système orchestré. Vous ne pouvez pas définir les règles de désactivation/suppression pour les déménageurs et les sortants. Pour ce faire, vous devez créer le système orchestré, puis mettre à jour les paramètres de compte comme décrit dans Configurer les paramètres de compte système orchestré.

Paramètres d'intégration

A l'étape Paramètres d'intégration du workflow, entrez les détails de configuration requis pour la connexion au fichier plat.

Champ Description
Quelle est la location OCI du bucket Object Storage ? Ajoutez l'OCID de location du bucket Object Storage contenant les fichiers plats à intégrer.
Quel est le code de région d'origine de la location OCI ? Entrez le code de région d'origine de la location. . Par exemple, us-ashburn-1. Vous trouverez des détails sur les codes de région dans la documentation OCI Régions et domaines de disponibilité.
Quel est l'espace de noms du bucket ? Entrer l'espace de noms de compartiment de la location
Entrer le nom du bucket où le fichier plat est stocké dans OCI Object Storage Entrer le nom du bucket où le fichier plat est stocké dans OCI Object Storage
Encodage Informations de codage. La valeur par défaut est UTF-8
Délimiteur de champ Entrez le caractère délimiteur de champ utilisé dans le fichier plat. La valeur par défaut est ,.
Délimiteur de sous-champ Entrez le caractère de délimiteur du sous-champ. La valeur par défaut est #.
Délimiteur à valeurs multiples Entrez le caractère délimiteur de valeur multiples utilisé dans le fichier plat. La valeur par défaut est ;.
Qualificatif de texte Entrez le caractère utilisé comme qualificatif de texte dans le fichier plat. La valeur par défaut est ".
Format de date Entrez le format de données Java auquel les champs de type Date sont inclus dans le fichier à plat, par exemple dd/MM/yyyy. Si aucun format de date n'est spécifié, le champ de date est supposé être de type de données Long.
  1. Copiez les stratégies exactes dans le compartiment root tel qu'affiché sur la console. Pour plus de détails sur l'application des stratégies, reportez-vous à Création d'une stratégie.
    Remarque

    Les stratégies requises varient en fonction de l'emplacement d'hébergement d'Object Storage et de l'instance Oracle Access Governance (par exemple, dans la même location par rapport à différentes locations).
  2. Une fois les stratégies appliquées, sélectionnez Tester l'intégration pour vérifier la connexion. Si vous avez des erreurs ou des messages, vérifiez la configuration.
  3. Sélectionnez Ajouter pour créer le système orchestré.

Terminer

Enfin, si vous avez activé les systèmes virtuels, vous devez d'abord définir et charger le fichier CSV des sous-systèmes, puis activer le système orchestré. Sélectionnez J'ai terminé.

Si les systèmes virtuels sont désactivés, vous pouvez soit activer le système orchestré, soit l'enregistrer comme brouillon uniquement.

Charger le fichier CSV

Si vous avez activé les systèmes virtuels, téléchargez un fichier CSV avec l'ID et le nom des systèmes. Vous pouvez ajouter jusqu'à 100 systèmes virtuels.

Par exemple :

ID Nom
virtual_ad_123 Alpha
virtual_ad_456 Bêta
virtual_ad_789 Gamma
  • Le nom du système virtuel ne doit pas contenir les caractères spéciaux suivants : `~!@#$%^&*><".
  • Les caractères spéciaux ne sont pas autorisés pour l'ID ou le nom.
  • Le nom des systèmes virtuels doit être unique sur tous les systèmes orchestrés.
  • Les ID doivent être uniques pour ce système orchestré.

Cliquez sur le bouton Mettre à jour pour ajouter une dernière version des systèmes virtuels.

Les systèmes virtuels existants ne peuvent pas être supprimés mais peuvent être mis à jour. Pour gérer les systèmes virtuels après leur création, reportez-vous à Gestion des systèmes virtuels.

Migrer l'accès de clé d'API vers l'accès de principal de ressource

Si vous disposez d'un système orchestré existant qui utilise la méthode d'accès de clé d'API pour la connexion, vous devez migrer au plus tôt vers la méthode d'accès de principal de ressource.

Pour migrer l'accès de clé d'API vers l'accès de principal de ressource, procédez comme suit :

  1. Accédez à la page Paramètres d'intégration en suivant les instructions indiquées dans Paramètres d'intégration.
  2. Sur la page Paramètres d'intégration, un avertissement d'abandon apparaît. Cliquez sur le bouton En savoir plus sur la migration.
  3. Copiez les stratégies exactes dans le compartiment racine tel qu'affiché sur la console. Pour plus de détails sur l'application des stratégies, reportez-vous à Création d'une stratégie.
    Remarque

    Les stratégies requises varient en fonction de l'emplacement d'hébergement d'Object Storage et de l'instance Oracle Access Governance (par exemple, dans la même location par rapport à des locations différentes).

  4. Une fois les stratégies appliquées, sélectionnez Tester l'intégration pour vérifier la connexion. Si vous avez des erreurs ou des messages, vérifiez la configuration. Vous ne pouvez pas terminer la migration tant que le test n'a pas abouti.
  5. Si la connexion est confirmée, cliquez sur le bouton Migrer pour démarrer la migration.
  6. Une fois la migration terminée, un message de confirmation s'affiche.

Post-configuration

Vérifier la structure du dossier de bucket

Une fois le système orchestré créé, la structure de dossiers suivante doit être créée dans le bucket défini.

<ServiceInstanceName>/<OrchestratedSystemName>
    failed //Same sub-folders to be created as inbox
    inbox/
	IDENTITY/
		virtual-sys-1
		virtual-sys-2
		virtual-sys-3
	PERMISSION/
		virtual-sys-1
		virtual-sys-2
		virtual-sys-3
	TARGETACCOUNT/
		virtual-sys-1
		virtual-sys-2
		virtual-sys-3
    outbox/
	Same sub-folders to be created as inbox
    sample/
    schema/
Remarque

Les sous-dossiers tels que virtual-sys-1, virtual-sys-2, etc. sont créés uniquement lorsque les systèmes virtuels sont activés.
Ces dossiers remplissent les fonctions suivantes :
  • failed : les fichiers présentant n'importe quel type de problème de données seront déplacés vers ce dossier sous le dossier d'entité correspondant, en cas d'échec d'une opération de chargement de données.
  • inbox : contient les dossiers IDENTITY, PERMISSION et TARGETACCOUNT, chacun contenant des dossiers de systèmes virtuels référencés par ID. Placez les fichiers CSV dans le dossier des systèmes virtuels à inclure dans l'opération de chargement des données. Si vous n'avez pas sélectionné de systèmes virtuels au cours de la configuration, placez directement vos fichiers de données dans les dossiers IDENTITY, PERMISSION et TARGETACCOUNT.
  • outbox : événements de provisionnement pour chaque entité du système orchestré.
  • sample : Contient des exemples de fichier CSV avec l'en-tête attendu. Ils peuvent être utilisés comme référence pour générer des données et les placer dans la boîte de réception pour le chargement des données. Ces fichiers ne doivent pas être modifiés.
  • schema : contient la représentation JSON du schéma de chaque entité. Vous pouvez y faire référence pour comprendre des détails tels que :
    • dataType
    • Attributs obligatoires
    • Indique si un attribut est multivaleur
    • Si l'attribut est complexe et comporte des attributs imbriqués (dataType sera CUSTOM).
    • dataTypes pris en charge :
      • TEXT
      • NUMBER
      • DECIMAL_NUMBER
      • DATE
      • Indicateur
      • PERSONNALISÉ

Définir des attributs personnalisés

Les attributs personnalisés sont pris en charge pour l'entité IDENTITY. Si vous voulez inclure des attributs personnalisés dans votre chargement de données, vous devez les ajouter dans le fichier <ServiceInstanceName>/<OrchestratedSystemName>/schema/IDENTITY.json.

Les noms d'attribut personnalisés doivent répondre aux exigences suivantes :
  • commencer par un caractère : A-Z ou a-z
  • contiennent uniquement des caractères ou des chiffres : A-Z ou a-z ou 0-9
  • Pour l'attribut de type DATE, seule la valeur longue est prise en charge
  • Les attributs personnalisés peuvent uniquement être ajoutés, ils ne peuvent pas être supprimés
  • Impossible d'ajouter un attribut personnalisé de type CUSTOM

Après avoir ajouté des attributs personnalisés dans le fichier IDENTITY.json, vous devez les inclure dans Oracle Access Governance, comme décrit dans Extraction des derniers attributs personnalisés. Une fois cette opération terminée, l'exemple de fichier CSV est mis à jour avec les nouveaux attributs personnalisés. Mettez à jour les fichiers de données dans inbox pour inclure les attributs personnalisés dans le prochain chargement de données.

Exécuter le chargement de données

Le chargement des données est à la demande. Exécutez toujours le chargement de données après avoir défini des attributs personnalisés ou ajouté les fichiers de données CSV pertinents dans le dossier inbox. Chaque fois que vous exécutez un chargement de données, il s'agit d'un chargement complet, il n'y a pas de chargement incrémentiel. Le codage UTF-8-BOM n'est pas pris en charge.

En cas d'échec (échec d'un seul enregistrement ou d'un fichier complet), l'opération de chargement des données est marquée comme ayant échoué. Les fichiers qui ont été traités avec succès resteront dans inbox tandis que les fichiers en échec seront déplacés vers le dossier failed. Corrigez le problème de données et placez de nouveau les fichiers dans le dossier inbox.

Des problèmes d'intégrité des données, tels qu'une autorisation affectée à un compte manquant dans le fichier CSV, peuvent également entraîner l'échec de l'opération de chargement des données. Toutefois, dans ce cas, les fichiers CSV ne sont pas déplacés vers le dossier failed. Les fichiers sont déplacés vers le dossier failed uniquement lorsqu'il y a des problèmes de lecture des données elles-mêmes, tels que des données obligatoires manquantes.

Extension de schéma - Ajout d'attributs de compte personnalisés

Vous pouvez configurer des attributs de compte pour votre système orchestré de type fichier plat en plus des attributs de compte par défaut pris en charge prêts à l'emploi. Vous trouverez des détails sur les attributs de compte et leur mode de gestion dans Attributs de compte et Configurer les attributs de compte.

Extension de schéma - Exemple d'attribut simple

Pour montrer comment ajouter un attribut de compte simple, examinons l'exemple d'ajout d'un attribut de numéro de téléphone à votre schéma de fichier plat.

Supposons que vous disposez d'une configuration de jour 0 de votre système orchestré de type fichier plat avec les attributs suivants par défaut :
  • nom commun
  • displayName
  • e-mail
  • firstName
  • lastName
  • middleName
  • __NOM__
  • autorisations
  • __ACTIVER__
  • titre
  • __UID__
Exemple de fichier TARGETACCOUNT.csv :
__NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions
Exemple de fichier TARGETACCOUNT.json :
[
    {
        "name": "displayName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "permissions",
        "dataType": "CUSTOM",
        "required": false,
        "multiValued": true,
        "subAttributes": [
            {
                "name": "__NAME__",
                "dataType": "TEXT",
                "required": true,
                "idAttribute": true
            }
        ]
    },
    {
        "name": "middleName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "lastName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "commonName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "firstName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__NAME__",
        "dataType": "TEXT",
        "required": true,
        "multiValued": false
    },
    {
        "name": "title",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "email",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__ENABLE__",
        "dataType": "FLAG",
        "required": false,
        "multiValued": false
    }
]
Pour ajouter un attribut de compte personnalisé, phoneNumber, procédez comme suit dans Configurer les attributs de compte, par exemple :
  1. Créez un attribut fourni par le système, phoneNumber, sélectionnez les options incluses dans les données entrantes et sortantes et prenez en charge plusieurs valeurs.
  2. Ajoutez le nouvel attribut à TARGETACCOUNT.csv et TARGETACCOUNT.json.
    __NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions,phoneNumber
                                    
    [
        {
            "name": "displayName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "permissions",
            "dataType": "CUSTOM",
            "required": false,
            "multiValued": true,
            "subAttributes": [
                {
                    "name": "__NAME__",
                    "dataType": "TEXT",
                    "required": true,
                    "idAttribute": true
                }
            ]
        },
        {
            "name": "phoneNumber",
            "dataType": "TEXT",
            "required": false,
            "multiValued": true
        },
        {
            "name": "firstName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "email",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__ENABLE__",
            "dataType": "FLAG",
            "required": false,
            "multiValued": false
        },
        {
            "name": "middleName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "lastName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "commonName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__NAME__",
            "dataType": "TEXT",
            "required": true,
            "multiValued": false
        },
        {
            "name": "title",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        }
    ]
  3. Déclenchez un chargement complet des données à partir de la console Oracle Access Governance. Le nouvel attribut personnalisé doit être chargé et visible dans le navigateur Enterprise Wide.

Extension de schéma - Exemple d'attribut complexe

Pour montrer comment ajouter un attribut de compte complexe, examinons l'exemple d'ajout d'un autre attribut de détails de contact à votre schéma de fichier plat.

Supposons que vous disposez d'une configuration de jour 0 de votre système orchestré de type fichier plat avec les attributs suivants par défaut :
  • nom commun
  • displayName
  • e-mail
  • firstName
  • lastName
  • middleName
  • __NOM__
  • autorisations
  • __ACTIVER__
  • titre
  • __UID__
Exemple de fichier TARGETACCOUNT.csv :
__NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions
Exemple de fichier TARGETACCOUNT.json :
[
    {
        "name": "displayName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "permissions",
        "dataType": "CUSTOM",
        "required": false,
        "multiValued": true,
        "subAttributes": [
            {
                "name": "__NAME__",
                "dataType": "TEXT",
                "required": true,
                "idAttribute": true
            }
        ]
    },
    {
        "name": "middleName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "lastName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "commonName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "firstName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__NAME__",
        "dataType": "TEXT",
        "required": true,
        "multiValued": false
    },
    {
        "name": "title",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "email",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__ENABLE__",
        "dataType": "FLAG",
        "required": false,
        "multiValued": false
    }
]
Pour ajouter un attribut de compte personnalisé, otherContactDetails avec , procédez comme suit dans Configurer les attributs de compte, par exemple :
  1. Créez un attribut fourni par le système, otherContactDetails, avec les attributs enfant suivants :
    • contactDetailsId
    • faxNumber
    • website
    et sélectionnez les options incluses dans les données entrantes et sortantes et prennent en charge plusieurs valeurs.
  2. Ajoutez le nouvel attribut à TARGETACCOUNT.csv et TARGETACCOUNT.json.
    __NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions,phoneNumber,otherContactDetails.contactDetailsId,otherContactDetails.faxNumber,otherContactDetails.website
                                    
    [
        {
            "name": "displayName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "permissions",
            "dataType": "CUSTOM",
            "required": false,
            "multiValued": true,
            "subAttributes": [
                {
                    "name": "__NAME__",
                    "dataType": "TEXT",
                    "required": true,
                    "idAttribute": true
                }
            ]
        },
        {
            "name": "firstName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "email",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__ENABLE__",
            "dataType": "FLAG",
            "required": false,
            "multiValued": false
        },
        {
            "name": "middleName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "lastName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "commonName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "title",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__NAME__",
            "dataType": "TEXT",
            "required": true,
            "multiValued": false
        },
        {
            "name": "otherContactDetails",
            "dataType": "CUSTOM",
            "required": false,
            "multiValued": true,
            "subAttributes": [
                {
                    "name": "faxNumber",
                    "dataType": "NUMBER",
                    "required": false
                },
                {
                    "name": "contactDetailsId",
                    "dataType": "TEXT",
                    "required": true,
                    "idAttribute": true
                },
                {
                    "name": "website",
                    "dataType": "TEXT",
                    "required": false
                }
            ]
        }
    ]
  3. Déclenchez un chargement complet des données à partir de la console Oracle Access Governance. Le nouvel attribut personnalisé doit être chargé et visible dans le navigateur Enterprise Wide.

Prise en charge des affiliations avec l'extension de schéma d'identité - Ajout d'attributs d'identité complexes personnalisés

Vous pouvez configurer des attributs d'identité pour votre système orchestré de type fichier plat en plus des attributs d'identité par défaut. Pour en savoir plus sur les affiliations, reportez-vous à Gestion des identités avec affiliations.

Au jour 0, pour IDENTITY.csv, toutes les entités configurées à partir du stockage d'objets incluent les attributs simples. Pour le jour N, vous pouvez étendre le schéma existant et ajouter un attribut simple supplémentaire.

Extension de schéma - Exemple d'attribut complexe

Incluez un attribut personnalisé, qui est un attribut de type d'objet contenant des sous-attributs, vous devez apporter des modifications supplémentaires au schéma Identity. Pour montrer comment ajouter un attribut d'identité complexe, examinons l'exemple d'ajout d'un attribut d'adresse à votre schéma de fichier plat.

Supposons que vous disposez d'une configuration Day 0 du système orchestré de type fichier plat avec les attributs suivants par défaut :

Exemple de fichier IDENTITY.csv :
__UID__, __NAME__,firstName,lastName,middleName,displayName,title,__ENABLE__,email,empNo,employeeType.... other columns
Dans le dossier Schema, l'exemple IDENTITY.json contient les éléments suivants :
[
  {
    "name": "displayName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "postalCode",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "location",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "employeeType",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "managerUid",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "territory",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "state",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "firstName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "department",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "UID",
    "dataType": "TEXT",
    "required": true,
    "multiValued": false
  },
  {
    "name": "email",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "ENABLE",
    "dataType": "FLAG",
    "required": false,
    "multiValued": false
  },
  {
    "name": "employeeNumber",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "middleName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "country",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "lastName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "jobCode",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "organizationName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "title",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "NAME",
    "dataType": "TEXT",
    "required": true,
    "multiValued": false
  }
]

Pour ajouter un attribut complexe personnalisé :

  1. Etendez le schéma dans le fichier IDENTITY.json.
    {
            "name": "userAddresses", // Name of the custom-complex attribute
            "dataType": "CUSTOM", // CUSTOM data type represents that it has sub attributes
            "required": false, // Denotes whether it is a mandatory attribute or not 
            "multiValued": true, // Custom-complex attribute has to be multivalued
            "subAttributes": [ // The list of sub attributes
                {
                    "name": "postalCode", // Name of child attribute
                    "dataType": "TEXT", // The data type of attribute, the supported data types are TEXT, NUMBER, DECIMAL_NUMBER, DATE and FLAG
                    "required": true //  Denotes whether it is a mandatory sub attribute or not  
                },
                {
                    "name": "addressTwo",
                    "dataType": "TEXT",
                    "required": false
                },
                {
                    "name": "landmark",
                    "dataType": "TEXT",
                    "required": false
                },
                {
                    "name": "city",
                    "dataType": "TEXT",
                    "required": true
                },
                {
                    "name": "houseNo",
                    "dataType": "TEXT",
                    "required": true
                },
                {
                    "name": "addressId", // Name of Identifier attribute.
                    "dataType": "TEXT", // Identifier attribute should be of TEXT data type.
                    "required": true, // Identifier attribute should always be mandatory.
                    "idAttribute": true // Denotes if the sub-attribute acts as the identifier. There should always be exact one such sub-attribute in a custom complex attribute.
                },
                {
                    "name": "addressOne",
                    "dataType": "TEXT",
                    "required": true
                }
            ]
        }
  2. Après avoir apporté les modifications ci-dessus dans IDENTITY.json,
  3. Confirmez les en-têtes CSV IDENTITY.csv
    __UID__,__NAME__,firstName,lastName,.... other columns
                    .....,userAddresses.addressId,userAddresses.postalCode,userAddresses.addressTwo,userAddresses.landmark,userAddresses.city,userAddresses.houseNo,userAddresses.addressOne

    Les attributs simples apparaissent sous la forme de colonnes séparées par des virgules dans l'en-tête CSV. Les attributs complexes personnalisés utilisent une structure plate : chaque sous-attribut est inclus dans l'en-tête avec son attribut parent, séparé par la notation par points (.).

Entrée à valeur unique pour l'attribut personnalisé complexe

L'entrée de données pour les attributs complexes doit être effectuée de la manière suivante dans un fichier CSV.

                                userAddresses.addressId,userAddresses.postalCode,userAddresses.addressTwo,userAddresses.landmark,userAddresses.city,userAddresses.houseNo,userAddresses.addressOne
101,200200,,Near St. Thomas Church,Boston,23/78,The Galaxy Garden
  • Veillez à inclure les en-têtes de colonne corrects.
  • Pour les champs vides (tels que addressTwo), incluez une valeur vide entre les virgules.
Données utilisateur résultantes
[
    {
        "addressId": "101",
        "postalCode": "200200",
        "addressTwo": null,
        "landmark": "Near St. Thomas Church",
        "city": "Boston",
        "houseNo": "23/78",
        "addressOne": "The Galaxy Garden"
    }
]

Entrée à valeurs multiples pour l'attribut personnalisé complexe

Lorsque vous utilisez des entrées à valeurs multiples, utilisez un point-virgule ( ;) pour séparer plusieurs valeurs pour chaque sous-attribut. Le fichier CSV suivant affiche la représentation correcte pour l'adresse à valeurs multiples. Chaque ligne du fichier CSV représente un utilisateur avec potentiellement plusieurs entrées d'adresse

                            userAddresses.addressId,userAddresses.postalCode,userAddresses.addressTwo,userAddresses.landmark,userAddresses.city,userAddresses.houseNo,userAddresses.addressOne
101;102,200200;300400,;3rd Street,Near St. Thomas Church;,Boston;Denver,23/78;B-003,The Galaxy Garden;The Technology Park
  • Pour les données manquantes, laissez la valeur entre les délimiteurs vide, pour la première adresse, addressTwo est vide)
  • Les valeurs de chaque attribut correspondent par position : la première valeur de chaque attribut forme la première adresse, la deuxième valeur forme la deuxième adresse, etc.
Données utilisateur résultantes
[
    {
        "addressId": "101",
        "postalCode": "200200",
        "addressTwo": null,
        "landmark": "Near St. Thomas Church",
        "city": "Boston",
        "houseNo": "23/78",
        "addressOne": "The Galaxy Garden"
    },
    {
        "addressId": "102",
        "postalCode": "300400",
        "addressTwo": "3rd Street",
        "landmark": null,
        "city": "Denver",
        "houseNo": "B-003",
        "addressOne": "The Technology Park"
    }
]