Provisionnement et déprovisionnement des utilisateurs de la base de données Oracle
Qu’est-ce que le provisionnement des utilisateurs de la base de données Oracle ?
Provisionnement des utilisateurs de la base de données Oracle est une solution automatisée pour Gestion des accès aux identités (IAM) et la maintenance des données des utilisateurs sur différentes instances Oracle DB (11g, 12c, 18c+). Base de données Oracle Provisioning, chaque fois qu'un utilisateur est créé (nouvelle embauche), mis à jour (changement de rôle) ou supprimé (résiliation) de la base de données, l'accès à la base de données Oracle correspondant est automatiquement synchronisé avec l'annuaire externe et les applications intégrées accordent des autorisations et des accès en fonction de la dernière modification. La synchronisation des utilisateurs et des données sont les principales fonctionnalités de provisionnement des utilisateurs.
Le déprovisionnement implique la suppression automatique des privilèges d'accès des utilisateurs de toutes les ressources et services tels qu'Active Directory, Google, AWS ou de différentes applications intégrées en aval et systèmes ciblés chaque fois qu'un utilisateur est supprimé de la base de données. Le déprovisionnement des utilisateurs Oracle DB permet d'atténuer les risques de sécurité graves liés à l'accès non autorisé à miniOrange. Il fournit un déprovisionnement automatique des utilisateurs Oracle Database des comptes d'utilisateurs lorsque l'utilisateur quitte l'équipe ou l'organisation.
Ce guide de configuration étape par étape vous aidera à configurer l'approvisionnement des utilisateurs pour Oracle Database afin d'automatiser l'approvisionnement dans toutes les applications intégrées.
Provisionnement des utilisateurs entre miniOrange et différentes bases de données
La configuration de la synchronisation des utilisateurs entre votre base de données Oracle et miniOrange IdP comprend trois parties principales. Elles sont les suivantes :
- A : Ajout d'une de vos bases de données Oracle en tant que répertoire externe dans miniOrange IdP
- B : Configuration des requêtes pour le provisionnement des utilisateurs
- C: Configuration de l'approvisionnement des utilisateurs et du mappage des attributs
Considérez le schéma suivant pour configurer le provisionnement/déprovisionnement des utilisateurs de la base de données Oracle. Nous avons utilisé ce schéma pour illustrer comment configurer les options d'une base de données simple. Vous pouvez utiliser cet exemple pour configurer votre propre base de données Oracle en tant que répertoire externe dans miniOrange.
Exemple de configuration :
| Type de base de données |
Base de données Oracle 12c |
| Nom de la base de données |
Base de données des applications |
| URL JDBC de la base de données (pour Oracle) |
jdbc:oracle:thin:@serverdomain:1521/APPSDB |
| Tableau dans lequel les informations utilisateur sont stockées |
UTILISATEURS |
Description de la table UTILISATEURS :
| Colonne |
Type |
Description |
| USERNAME |
VARCHAR |
Colonne nom d'utilisateur |
| MOT DE PASSE |
VARCHAR |
Stocke le mot de passe de l'utilisateur ; stockera le mot de passe par défaut lors de la création de l'utilisateur |
| PRÉNOM |
VARCHAR |
Prénom de l'utilisateur |
| NOM DE FAMILLE |
VARCHAR |
Nom de l'utilisateur |
| ADRESSE E-MAIL |
VARCHAR |
Adresse e-mail de l'utilisateur |
A. Ajouter une base de données Oracle en tant que répertoire externe dans miniOrange IdP
- Reportez-vous aux étapes 1 à 3 de ce document. pour ajouter votre base de données Oracle.
B. Configurer les requêtes de provisionnement d'utilisateurs pour la base de données Oracle
Il existe deux directions dans lesquelles le provisionnement des utilisateurs peut être configuré : entrant (c'est-à-dire depuis votre base de données Oracle vers miniOrange) et sortant (depuis miniOrange vers votre base de données Oracle).
Le provisionnement entrant traite de l'importation d'utilisateurs, tandis que le provisionnement sortant traite de la création/suppression/mise à jour d'utilisateurs. Dans les deux cas, le mappage d'attributs est nécessaire. Le mappage d'attributs entre les colonnes de la base de données et les attributs miniOrange IdP est effectué via une notation spéciale. Les valeurs des colonnes sont déduites par l'IdP miniOrange à l'aide de cette notation.
- Pour configurer le provisionnement des utilisateurs pour votre base de données Oracle, vous devez d'abord accéder à la section Répertoire externe. Ici, vous verrez la liste des répertoires externes configurés.
- Cliquez sur le menu déroulant à côté de votre base de données Oracle configurée et sélectionnez Modifier.

- Cela ouvrira la page d’édition de votre répertoire externe configuré.

- Vous êtes maintenant prêt à configurer toutes les fonctionnalités de provisionnement requises.
1. Importer des utilisateurs
- Il s'agit d'un exemple de provisionnement entrant. Les utilisateurs sont importés de la base de données dans le répertoire externe par défaut de miniOrange. Les attributs à sélectionner sont spécifiés dans la section Attributs de la base de données en tant que magasin d'utilisateurs. Pour chaque attribut (à l'exception du nom d'utilisateur et du mot de passe) que vous souhaitez importer et mapper à un utilisateur dans le magasin d'utilisateurs par défaut de miniOrange, vous devez spécifier une requête SELECT.
- Vous n'avez pas besoin de spécifier une requête SELECT pour les valeurs des colonnes de nom d'utilisateur et de mot de passe ; elles sont importées automatiquement à l'aide des noms de colonnes utilisés lors de la configuration de votre base de données en tant que magasin d'utilisateurs.
- Dans la page de modification du magasin d'utilisateurs, faites défiler vers le bas jusqu'à ce que vous puissiez voir l'option permettant d'ajouter des attributs de base de données.

- Ajoutez autant de champs de saisie que nécessaire. Pour cet exemple, nous avons 3 colonnes de base de données - FIRSTNAME, LASTNAME et EMAIL_ADDRESS - à l'exclusion des colonnes USERNAME et PASSWORD. Les requêtes pour ces colonnes seront les suivantes :
- Requête pour le prénom →
SELECT ‘##FIRSTNAME##’, FIRSTNAME FROM USERS WHERE USERNAME=?
- Requête pour le nom de famille →
SELECT ‘##LASTNAME##’, LASTNAME FROM USERS WHERE USERNAME=?
- Demande d'adresse e-mail →
SELECT ‘##EMAIL_ADDRESS##’, EMAIL_ADDRESS FROM USERS WHERE USERNAME=?
- La notation [ '##COLUMN_NAME##', COLUMN_NAME ] dans la requête indique à miniOrange que ce champ doit être renseigné avec la valeur de la colonne de la base de données, en fonction de l'identifiant unique du nom d'utilisateur.
- Votre configuration devrait ressembler à ceci une fois que vous avez terminé d'ajouter les requêtes :

2. Vérifiez les utilisateurs
- Cette requête permet de vérifier si un utilisateur particulier existe déjà dans la base de données. Un utilisateur qui existe déjà dans la base de données ne sera pas recréé. La structure de cette requête doit être telle qu'elle vérifie toutes les colonnes de la table qui définissent un utilisateur distinct.

- Pour notre exemple, nous allons comparer la valeur de la colonne USERNAME avec le champ correspondant dans miniOrange :
SELECT * FROM USERS WHERE USERNAME='##USERNAME##'

3. Créer un utilisateur
- Ces requêtes créent un utilisateur dans la base de données à chaque fois qu'un utilisateur est créé dans miniOrange. La requête doit contenir les noms de colonnes appropriés. Ici, le mot de passe est défini sur une chaîne par défaut (qui doit être modifiée ultérieurement).
- Ces requêtes utilisent la même notation pour spécifier les attributs qui doivent être mappés de l'IdP miniOrange à la base de données Oracle. Il s'agit d'un exemple de provisionnement sortant.

- Dans notre exemple, nous allons synchroniser le nom d'utilisateur, le prénom, le nom et l'adresse e-mail de l'utilisateur nouvellement créé à partir de miniOrange avec la base de données. Nous allons transmettre une chaîne de mot de passe par défaut ('defaultPassword123#') à la base de données Oracle :
INSERT INTO USERS (USERNAME, PASSWORD, FIRSTNAME, LASTNAME, EMAIL_ADDRESS) VALUES
('##USERNAME##', 'defaultPassword123#', '##FIRSTNAME##','##LASTNAME##','##EMAIL_ADDRESS##')

- Dans cet exemple, les chaînes [ '##USERNAME##', '##FIRSTNAME##', '##LASTNAME##' ] seront remplacées par les valeurs nom d'utilisateur, prénom et nom de l'utilisateur nouvellement créé dans miniOrange.
4. Mettre à jour l'utilisateur
- Ces requêtes mettent à jour un utilisateur dans la base de données chaque fois que les détails de l'utilisateur concernés sont modifiés dans miniOrange. Il s'agit d'un exemple de provisionnement sortant.

- Dans cet exemple, tous les champs d'un utilisateur particulier sont mis à jour dans la base de données lorsqu'une mise à jour est déclenchée dans miniOrange. La valeur du nom d'utilisateur est immuable dans miniOrange, c'est pourquoi elle a été utilisée dans la clause WHERE :
UPDATE USERS SET FIRSTNAME='##FIRSTNAME##', LASTNAME='##LASTNAME##',EMAIL_ADDRESS='##EMAIL_ADDRESS##' WHERE USERNAME='##USERNAME##'
- Dans cet exemple, seuls les détails des utilisateurs dont le nom d'utilisateur est le même dans miniOrange et dans la base de données sont mis à jour.
5. Supprimer des utilisateurs
- Ces requêtes suppriment un utilisateur de la base de données chaque fois qu'un utilisateur est supprimé dans miniOrange. Il s'agit d'un exemple de provisionnement sortant.

- Dans cet exemple, nous allons supprimer de la base de données les utilisateurs dont la valeur de la colonne nom d'utilisateur correspond à la valeur du champ nom d'utilisateur dans miniOrange :
DELETE FROM USERS WHERE USERNAME='##USERNAME##'

- Dans cet exemple, seuls les utilisateurs dont le nom d'utilisateur, le prénom et le nom correspondent exactement dans les deux cas - la base de données ainsi que dans miniOrange - sont supprimés de la base de données.
Une fois les valeurs requises renseignées, faites défiler vers le bas et cliquez sur Enregistrer pour sauvegarder votre configuration actuelle.
C. Configurer le provisionnement des utilisateurs et le mappage des attributs
Nous avons configuré avec succès notre base de données Oracle en tant que répertoire externe et saisi toutes les requêtes pour le provisionnement entrant et sortant. Nous devons maintenant configurer la section de provisionnement des utilisateurs pour activer le provisionnement des utilisateurs pour notre base de données.
1. Définir la base de données Oracle comme répertoire externe par défaut
- Accédez à la section Répertoire externe. Une liste de tous vos répertoires externes configurés s'affiche. Vérifiez si vous pouvez voir le répertoire externe que vous avez configuré dans la partie A.
- Cliquez sur le menu déroulant correspondant à votre entrée de base de données et sélectionnez Faire défaut.

- Une fois cette opération effectuée, vous devriez voir le message de réussite suivant et votre base de données sera marquée comme répertoire externe par défaut.

2. Accédez à la section de provisionnement des utilisateurs.
- Sélectionner Provisioning dans la navigation de gauche.
- Dans le menu déroulant, sélectionnez Base de données.
- Vous devriez pouvoir voir les attributs de base de données que nous avons configurés dans la partie B. Ces attributs de base de données ne sont pas encore mappés, donc les valeurs de la colonne « Attributs miniOrange » seront vides.
3. Mappez les attributs de la base de données à leurs noms de champs respectifs dans miniOrange
- Les attributs de la base de données Oracle peuvent être mappés à 3 types d'attributs différents :
- Attributs du profil utilisateur par défaut
- Attributs de profil utilisateur personnalisés
- Attributs personnalisés
- Pour cet exemple, tous les champs configurés pour notre base de données sont mappés aux attributs de profil utilisateur par défaut.

- La liste des attributs par défaut s'affiche lorsqu'un attribut de base de données est mappé à un attribut de profil utilisateur par défaut :

- Associez tous les attributs requis à leurs valeurs dans l'IdP miniOrange. Voici à quoi ressemblera le mappage pour notre exemple.

4. Activer les fonctionnalités de provisionnement
- Ici, vous devez choisir les fonctionnalités de provisionnement que vous souhaitez activer pour votre base de données Oracle.
- Vous pouvez choisir certaines ou toutes ces fonctionnalités, selon vos besoins. Pour cet exemple, nous choisirons les fonctionnalités de provisionnement entrantes et sortantes de base :

5. Enregistrez la configuration de la base de données
- Une fois que vous avez mappé les attributs de votre base de données aux attributs IdP miniOrange et activé les fonctionnalités souhaitées, vous pouvez continuer et enregistrer cette configuration. Si tout est correctement configuré, vous devriez voir le message de réussite suivant :

6. Configuration du test
- Vous pouvez tester votre configuration en effectuant l'une des actions pour lesquelles vous avez activé la fonctionnalité de provisionnement. Dans cet exemple, nous allons la tester en important l'un des utilisateurs de votre base de données Oracle dans miniOrange.
- Au départ, voici les utilisateurs présents dans la base de données :

- Et voici les utilisateurs présents dans miniOrange :

- Nous allons maintenant importer les utilisateurs de la base de données Oracle dans miniOrange. Accédez à Provisioning → Import Users et sélectionnez Base de données de la liste déroulante.

- Cliquez sur Global. Si la configuration a été correctement effectuée, vous devriez voir le message suivant : Importer les utilisateurs avec succès
- Vous pouvez vérifier si l'importation a réussi en accédant à Utilisateurs → Liste des utilisateurs
Afficher les rapports de provisionnement
Comment accéder aux rapports de provisionnement ?
- Accédez à Rapports Dans le volet de navigation de gauche, recherchez Provisioning, et sélectionnez Rapport d'approvisionnement.

- Filtrez les rapports en précisant Identifiant de l'utilisateur final et Nom de l'application critères. De plus, choisissez le laps de temps pour les rapports. Une fois terminé, cliquez sur le Rechercher.

- Alternativement, vous pouvez cliquer directement sur Rechercher pour récupérer tous les rapports de provisionnement en fonction du temps sans appliquer de filtres spécifiques.
Ressources supplémentaires