Oracle Unified Directory est toujours aussi simple à mettre en œuvre. L'installation, qui n'a quasiment pas changée, prend toujours 30'. Pour activer le support d'Enterprise User Security, vous devrez simplement créer un listener LDAPS et cocher la case "Enable" for EUS comme dans la copie d'écran ci-contre. L'ensemble du schéma Oracle est alors disponible et l'arborescence initiale créée. Vous êtes prêt à déléguer utilisateurs, mots de passe et rôles à ce nouvel annuaire.
Cet article prend 20 minutes à lire et mettre en oeuvre. Il illustre comment configurer les référentiels des utilisateurs pour EUS et comment faire le lien entre vos utilisateurs et vos bases de données...
Configuration du référentiel, des utilisateurs et des groupes
L'organisation de votre annuaire peut varier beaucoup en fonction de vos choix d'implémentation. Dans l'article précédent, nous avons pris le parti :- d'utiliser un DN de base qui est
dc=arkzoyd,dc=com - de stocker les utilisateurs dans une
organizationalUnitnomméeou=People,dc=arkzoyd,dc=com
organizationalUnit nommée ou=Groups,dc=arkzoyd,dc=com. Votre organisation sera peut-être très différente. Les produits Oracle, comme les logiciels de base de données 10.2 ou 11g, retrouvent leur paramétrage à partir de la racine de l'annuaire dans un arbre qui commence par cn=OracleContext. Le fichiers $MW_HOME/Oracle_OUD1/config/EUS/modifyRealm.ldif permet de changer ce paramétrage. Editez-le ! Modifiez toutes les entrées selon le principe ci-dessous :- Remplacez
ou=people,dc=example,dc=compar l'organizationalUnitqui contient vos utilisateurs, dans mon casou=People,dc=arkzoyd,dc=com - Remplacez
ou=groups,dc=example,dc=compar l'organizationalUnitqui contient vos groupes, dans mon casou=Groups,dc=arkzoyd,dc=com - Remplacez
dc=example,dc=compar leDNde la racine de votre référentiel, dans mon cas"dc=arkzoyd,dc=com"
Configuration d'un administrateur OUD
L'assistant de configuration des bases de données, dbca ne semble pas apprécier d'utiliser un nom d'administrateur avec un espace dans sonDN ! Pour contourner ce problème et séparer l'administrateur de l'annuaire de l'utilisateur qui enregistre les bases de données et vérifie les mots de passe, nous allons donner, dans un premier temps les droits d'administration à notre utilisateur. Pour cela, nous allons lui ajouter les attributs ds-privilege-name qui correspondent à ces privilèges. Voici un fichier LDIF qui passe notre utilisateur Administrateur de l'annuaire OUD:dn: cn=Gregory,ou=People,dc=arkzoyd,dc=com changetype: modify add: ds-privilege-name ds-privilege-name: bypass-acl ds-privilege-name: modify-acl ds-privilege-name: config-read ds-privilege-name: config-write ds-privilege-name: ldif-import ds-privilege-name: ldif-export ds-privilege-name: backend-backup ds-privilege-name: backend-restore ds-privilege-name: server-shutdown ds-privilege-name: server-restart ds-privilege-name: disconnect-client ds-privilege-name: cancel-request ds-privilege-name: password-reset ds-privilege-name: update-schema ds-privilege-name: privilege-change ds-privilege-name: unindexed-search
Note:
Pour plus d'informations, reportez-vous à la section "22.5 Managing Administrators" de Administrator's Guide for Oracle Unified Directory 11g Release 2 (11.1.2).
Configuration de l'accès à l'annuaire
Pour configurer l'accès de la base de données à l'annuaire, créez un fichier ldap.ora dans le répertoire$ORACLE_HOME/ldap/admin ou, si vous préférez (ou êtes en 10.2) dans $ORACLE_HOME/network/admin. Ce fichier doit inclure les références à l'annuaire qui est noté de type Internet Directory (OID). Voici un exemple qui se connecte à l'annuaire qui s'exécute sur le serveur blue :cat $ORACLE_HOME/ldap/admin/ldap.ora DIRECTORY_SERVERS= (blue:1389:1636) DEFAULT_ADMIN_CONTEXT = "dc=arkzoyd,dc=com" DIRECTORY_SERVER_TYPE = OID
Enregistrement d'une base de données
Vous devrez ensuite enregistrez chaque base de données dans l'annuaire, créer un wallet s'il n'existe pas et changer les paramètres de l'instance. L'assistant de création de la base de données vous permet de réaliser l'ensemble de ces opérations à l'aide d'une simple ligne de commande. Voici un exemple avec la base de données WHITE :dbca -silent -configureDatabase -sourceDB WHITE \ -registerWithDirService true \ -dirServiceUserName "cn=Gregory,ou=People,dc=arkzoyd,dc=com" \ -dirServicePassword "manager" -walletPassword "welcome1" Preparing to Configure Database 6% complete 13% complete 66% complete Completing Database Configuration 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/isma/isma.log" for further details.
Création du schéma dans la base de données
Créez ensuite le schéma qui sera utilisé pour se connecter à la base de données cible. Dans cet exemple, nous créerons simplement un schéma à l'aide de SQL*Plus:create user global_ident_schema_user identified globally; grant connect to global_ident_schema_user;
Autoriser l'accès de l'utilisateur depuis l'annuaire
La dernière étape de la configuration consiste à autoriser, dans OUD, l'utilisateur à se connecter au schéma technique associé à la base de données. Vous pouvez utiliser Enterprise Security Manager depuis Enterprise Manager 11g ou 12c ou même une console ; connectez-vous à OUD :Définissez ensuite le mapping vers la base de données et le schéma qui vous intéresse à l'aide des écrans de gestion des utilisateurs d'enterprise comme ci-dessous :
Si vous préférez, vous pouvez aussi simplement et directement modifier le contenu de l'annuaire. Pour définir ce mapping, il suffit de créer une entrée cn=mappingXX dans votre base de données avec un fichier LDIF comme ci-dessous :
dn: cn=mapping0,cn=WHITE,cn=OracleContext,dc=arkzoyd,dc=com objectClass: top objectClass: orclDBEntryLevelMapping cn: mapping0 orclDBDistinguishedName: cn=Gregory,ou=People,dc=arkzoyd,dc=com orclDBNativeUser: GLOBAL_IDENT_SCHEMA_USERVous pouvez donc utiliser Apache Directory Studio ou l'outil de votre choix, aussi simplement que Enterprise Manager pour configurer les accès aux bases de données depuis votre annuaire.
Tester les accès
Voilà, vérifiez que l'authentification via Unified Directory fonctionne à l'aide d'une connexion SQL*Plus, par exemple :sqlplus Gregory/manager
SELECT sys_context('USERENV', 'ENTERPRISE_IDENTITY') "USER"
FROM dual;
USER
--------------------------------------------------------------------------------
cn=Gregory,ou=People,dc=arkzoyd,dc=com
C'est fini en 20' chrono. Mais pour être franc, c'est maintenant que les choses sérieuses commencent vraiment. Comment organiser la gestion des droits et leur affectation ?



Aucun commentaire:
Enregistrer un commentaire