Les Resource Access Descriptor

Présentation

Le Resource Access Desciptor (RAD) est un mécanisme utilisé par Oracle, pour faire le lien entre une application qui utilise une identification par SSO, et une chaine de connexion à la base de données associée à l’application.
Ce mécanisme est utilisé par l’outil de développement Oracle Forms.
Voici un schéma détaillé des flux. On suppose que l’utilisateur n’est pas encore connecté au SSO :

  • Etape 1 : L’utilisateur entre une URL qui envois au serveur Web Frontal OHS.
  • Etape 2 : Le serveur Web voit qu’il s’agit d’une URL protégée SSO et envoie la requête à Oracle Access Manager
  • Etape 3 : Oracle Access Manager renvoi un écran de demande de login/mot de passe à l’utilisateur
  • Etape 4 : Les informations login/mot de passe sont renvoyées à OAM
  • Etape 5 : Oam interroge l’annuaire LDAP OID pour vérifier la validité login/mot de passe
  • Etape 6 : L’annuaire répond OK, ou mauvais. Si mauvais on revient à l’étape 3. Sinon étape suivante.
  • Etape 7 : OAM envois l’information à OHS que l’identification est OK.
  • Etape 8 : OHS fait suivre l’URL initialement demandée par l’utilisateur au serveur Forms, en envoyant le DN de l’utilisateur.
  • Etape 9 : Le serveur Forms étant en SSO, récupère le DN de l’utilisateur, et va interroger OID pour récupérer les informations de connexions à la base de données.
  • Etape 10 : Le serveur LDAP OID renvoie les informations de connexions à la base si elles existent. Sinon erreur et arrêt de l’application.
  • Etape 11 : L’application récupère les identifiants de connexion et se connecte à la base.
  • Etape 12 : La page demandée par l’utilisateur est affichée.

Dans ce mécanisme, le développeur n’intervient qu’à l’étape 11, toutes les étapes précédentes sont automatiques et hors applicatif.

A l’étape 11, on dispose des informations suivantes :

  • Le DN de l’utilisateur dans la base LDAP
  • Le fait que l’utilisateur est identifié par le SSO. On est sur qu’il est autorisé à se connecter.
  • Son login de connexion à la base de données associée à l’application.
  • Son mot de passe de connexion à la base de données.
  • L’adresse réseau de la base de données, et son nom d’instance.

Ce mécanisme permet de gérer la problématique d’un login LDAP qui est différent du compte de connexion à la base de données.

Structure du RAD dans la base LDAP

Une base LDAP est une structure hiérarchique, qui se trouve sous une racine (root).
La racine est du type dc=entreprise,dc=com
Dans la terminologie Oracle, la racine se nomme « Chemin d’abonné par défaut » ou default subscriber path.
Voici comment retrouver par une interrogation LDAP le subscriber path :

ldapsearch -h localhost -p 389 -b "cn=common,cn=products,cn=oraclecontext"  "cn=Common" orcldefaultsubscriber

Les propriétés Etendues

Sous cette racine, il y a une arborescence avec les utilisateurs, les groupes d’utilisateurs, et une entrée qui va héberger les propriétés étendues des utilisateurs :
cn=Extended Properties, cn=OracleContext

En vert, la racine de l’annuaire ou default subscriber path, en orange, l’entrée qui donne accès aux propriétés étendues des utilisateurs.
Les propriétés étendues sont des entrées qui, pour chaque utilisateur, vont stockées des informations propres à l’utilisateur, dont les RAD.
Chaque utilisateur dispose donc d’une entrée qui lui est propre sous la branche Extended Properties.

Le GUID

Afin d’éviter un problème de doublon potentiel après une suppression/création de compte et un utilisateur qui aurait le même uid ou cn que le précédent, et serait ainsi susceptible de récupérer le profil de son prédécesseur, l’entrée de chaque utilisateur sous les propriétés étendues est identifiée par son GUID, stocké dans l’attribut orclguid de l’utilisateur.

Le GUID, ou Global Unique IDentifier, est un identifieur unique, sur 16 octets. Il est utilisé par Oracle pour obtenir un identifiant unique. C’est le cas pour les utilisateurs dans OID.
Dans une base oracle, par exemple, pour obtenir la génération d’un GUID on utilise la fonction suivante en SQL :

SQL> SELECT sys_guid() FROM dual;

SYS_GUID()
--------------------------------
E2FEBBD1AFB43F27E0430100007F4458

SQL> SELECT sys_guid() FROM dual;

SYS_GUID()
--------------------------------
E2FEBBD1AFB53F27E0430100007F4458

Dans l’exemple ci-dessus, l’appel successif de la fonction a généré deux GUID différents. (Même s’ils se ressemblent…).

Les GUID sont utilisés par de nombreux produits, sous Windows et Linux. On peut se référer à l’article de Wikipedia qui présente le GUID pour plus de renseignements.
Oracle utilise le GUID sous sa forme brute, mais il existe aussi une présentation dite formatée, ou le GUID est décomposé en 5 champs : 4 octets – 3 groupes de 2 octets – 6 octets.
On verra que cela différencie OID d’OpenLDAP plus bas dans la documentation.
Dans OID, le GUID est généré à la création de l’utilisateur.

L’entrée de chaque utilisateur

Lorsqu’un utilisateur dispose donc de propriétés étendues, il a une entrée sous la branche
cn=Extented Properties, cn=OracleContext,dc=…..
Cette entrée est identifiée par son GUID, dans l’attribut orclownerguid.
Voici par exemple les entrées des propriétés étendues :Ici, l’annuaire comporte des propriétés étendues pour 5 utilisateurs (nombre d’entrées orclownerguid). Chaque entrée identifie le propriétaire à partir de son GUID.
Si on on affiche les attributs de l’utilisateur test :

la valeur de son orclguid est E109F751740953ABE040A8C086025FAC, valeur que l’on retrouve ci-dessous :

Cette branche est donc le point d’entrée des propriétés étendues de l’utilisateur test.

Le Resource Access Descriptor

Le Resource Access Descriptor est une des propriétés étendue que peut avoir un utilisateur.
Il est identifiée par une entrée dans la branche LDAP des propriétés étendues de l’utilisateur, et comporte autant de sous-branches que l’utilisateur a d’accès à des applications.
Voici par exemple les Resource Access Descriptor de l’utilisateur test :

Il y a deux branches sous la valeur cn=Resource Access Descripor.
L’utilisateur test à donc accès à deux applications.
Dans chacune de ces entrées se trouve son login de connexion à la base de données, le mot de passe, ainsi que la chaîne de connexion.

RDN du Resource Access Descriptor

Le nom du RAD, son RDN, est composé de deux attributs agrégées:

  • L’attribut orclresourcename, qui est le nom de l’application Forms. (Paramètre config=xxxxxx de l’URL d’appel). Ce peut-être aussi le nom d’une autre application (Reports, ou autre).
  • L’attribut orclresourcetypename, qui est le type de base de données à laquelle L’application se connecte. C’est toujours OrcaleDB pour Forms.

Exemple d’édition du RDN pour une entrée de RAD :

Attributs du Resource Access Descriptor

Pour que Forms puisse fonctionner avec un RAD, il faut obligatoirement les attributs suivants :

  • orclResourceName : Nom de l’application Forms
  • orclResourceTypeName : Type de source de données. OracleDB pour Forms, peut être différent pour Reports.
  • orclOwnerguid : le GUID de l’utilisateur.
  • orcluseridattribute : Login de connexion à la base.
  • orclpasswordattribute : Mot de passe de connexion à la base.
  • orclflexattribute1 : Chaîne de connexion à la base.
  • orclusermodifiable : L’utilisateur a t-il le droit de modifier cette entrée (s’utilise avec Oracle DAS).
  • orclresourceviewers : Attribut utilisable pour sécuriser l’accès au RAD via des ACL. (Voir doc oracle : Forms Services Security Overview / Securing RADs). Cette valeur contient le DN de l’utilisateur applicatif du serveur d’application Forms.

Utilisation avec Forms

Comportement de Forms s’il n’y a pas de RAD

Le comportement du serveur Forms se paramètre via la configuration web du serveur, section sso :

  • Si la variable ssoDynamicResourceCreate est à true, le serveur envoie à l’utilisateur une page, non paramétrable, lui permettant de créer lui-même son RAD. Cette possibilité semble difficilement envisageable en environnement de production.
  • si elle est à false, l’utilisateur est alors renvoyé à l’URL ssoErrorUrl, où l’utilisateur peut-être pris en charge par un applicatif de création ou renvoyé à une page d’erreur. (Dans cet exemple, un script en php).

Récupérer les valeurs du RAD dans Forms

Le premier schéma expliquait que le serveurs Forms va chercher les valeurs du RAD pour les envoyer à l’application Forms.
Comment récupérer ces données dans son code ?
Avec la fonction get_application_property.

  • Le login sso (LDAP) est récupéré par get_application_property(sso_userid);
  • Le DN de l’utilisateur (LDAP) est récupéré par get_application_property(sso_usrdn);
  • Le login de connexion à la base est récupéré par get_application_property(username); C’est l’attribut orcluseridattribute du RAD.
  • Le mot de passe de connexion à la base est récupéré par get_application_property(password); C’est l’attribut orclpasswordattribute du RAD.
  • La chaine de connexion à la base est récupéré par get_application_property(connect_string); C’est l’attribut orclflexattribute1 du RAD

Identification du serveur Forms

Pour créer un RAD, il faut identifier le serveur Forms pour donner une valeur à l’attribut: orclResourceViewers
Cet attribut permet de gérer la sécurité de l’accès au RAD en définissant qui a les autorisation de consulter les données. L’utilisation de cet attribut n’est pas obligatoire, mais permet d’empécher, par exemple, les admin de l’annuaire LDAP d’avoir accès aux login/mdp base de données des utilisateurs.

Oracle, pour constituer cette valeur a agrégé deux champs :

  • Une chaine de caractères fixe, qui vaut ‘formsapp’
  • La clef CSF (Credential Store Framework) de l’application Forms, une chaine de caractères lui permettant de s’identifier. Cette valeur est crée à l’installation de Forms/reports avec OID.

Le nom de l’application Forms se retrouve de plusieurs façons.

  • Dans le fichier FormsOIDConfig.xml du serveur Forms. Ce fichier se trouve dans le répertoire $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/config.

Exemple de contenu

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>lutilisateur ne doit pas modifier le fichier de propriétés Forms OID.</comment>
<entry key="OID_SSL_PORT">false</entry>
<entry key="CSF_KEY">eb3-9e4e-efcaf91e5959</entry>
<entry key="USE_RAD_SERVLET">true</entry>
<entry key="DN">orclApplicationCommonName\=formsappeb3-9e4e-efcaf91e5959,cn\=Forms,cn\=Products, cn\=OracleContext</entry>
<entry key="OID_PORT">6501</entry>
<entry key="CSF_MAP">FormsComponent</entry>
<entry key="OID_HOST">mon_derveur.com</entry>
<entry key="APPNAME">formsappeb3-9e4e-efcaf91e5959</entry>
</properties>

Le nom de l’application est défini dans le champs APPNAME.

Dans l’annuaire LDAP. Le nom de l’application est définit dans la branche cn=Forms,cn=Products,cn=OracleContext sous-branche orclApplicationCommonName :Cette valeur forme le « Forms Distinguished Name (formsDN) ».
Exemple de recherche LDAP pour retrouver le nom du serveur d’application Forms :

ldapsearch -h localhost -p 389 -D "cn=orcladmin" -w "xxxxxx" -b "cn=forms,cn=products,cn=oraclecontext" \
 -s one "objectclass=*" orclapplicationcommonname

Résultat :

orclApplicationCommonName=formsappeb3-9e4e-efcaf91e5959,cn=Forms,cn=Products, cn=OracleContext
orclapplicationcommonname=formsappeb3-9e4e-efcaf91e5959

Si on gère plusieurs serveurs d’application, il y aura plusieurs entrées.
Il faut alors retrouver le nom du serveur d’application par son fichier de configuration.

Les informations d’identification du serveur Forms sont stockées dans le CSF du domaine du serveur.
On peut le visualiser via la console EM :Ces informations sont utilisées par le serveur Forms pour s’identifier auprès d’OID.

Création d’un RAD pour Forms

Pour créer un RAD pour Forms, 8 valeurs sont nécessaires :

  • Le subscriber path, SUBS_PATH, constante ou valeur retrouvée à partir de la base LDAP (Voir début de cette documentation).
  • Le nom de l’application Forms (appsso par exemple). Certainement une constante. OSSO_APP_NAME
  • Le DN de l’utilisateur, par la variable d’environnement OSSO_USER
  • Le GUID de l’utilisateur, par la variable d’environnement OSSO_USER_GUID
  • Le DN de l’application Forms, soit par la méthode ci-dessus, soit par une constante. DN_FORMS_NAME (du type orclApplicationCommonName=formsappeb3-9e4e-efcaf91e5959,cn=Forms,cn=Products, cn=OracleContext)
  • Le login de connexion à la base de données pour l’utilisateur : LOGIN_BASE
  • Le mot de passe de connexion à la base : PWD_BASE
  • La chaîne de connexion à la base : CONNECT_STRING

Ensuite

  • Si l’entrée orclownerguid=OSSO_USER_GUID n’existe pas sous la branche cn=Extended Properties,cn=OracleContext,SUBS_PATH alors la créer, ainsi que la sous-branche Resource Access Descriptor :
dn: orclownerguid=OSSO_USER_GUID, cn=Extended Properties,cn=OracleContext,SUBS_PATH
orclownerguid: OSSO_USER_GUID
seealso: OSSO_USER
objectclass: top
objectclass: orclreferenceobject

dn: cn=Resource Access Descriptor, orclownerguid=OSSO_USER_GUID, cn=Extended Properties,cn=OracleContext,SUBS_PATH
orclownerguid: OSSO_USER_GUID
objectclass: top
objectclass: orclcontainer
objectclass: orclauxiliaryguid
cn: Resource Access Descriptor
  • Créer le RAD pour l’application Forms, avec les valeurs suivantes :
dn: orclresourcename=OSSO_APP_NAME+orclresourcetypename=OracleDB, cn=Resource Access Descriptor, orclownerGUID=OSSO_USER_GUID, cn=Extended Properties, cn=OracleContext,SUBS_PATH
orclusermodifiable: true
orclresourcetypename: OracleDB
orclflexattribute1: CONNECT_STRING
orcluseridattribute: LOGIN_BASE
orclownerguid: OSSO_USER_GUID
orclpasswordattribute: PWD_BASE
orclresourcename: OSSO_APP_NAME
orclresourceviewers: cn=orcladmin,cn=users, SUBS_PATH
orclresourceviewers: DN_FORMS_NAME
objectclass: top
objectclass: orclresourcedescriptor

Exemples d’interrogations

Retrouver le guid d’un utilisateur :

ldapsearch -h localhost -p 6501 -b "dc=exemple,dc=com"  "cn=test" orclguid 

cn=test,cn=Users,dc=dev,dc=exemple,dc=com
orclguid=a131602d-85fd-4d88-b9e1-421f5cac0f57

Connaître la liste des applications auquel un utilisateur a droit (à partir de son guid) :

ldapsearch -h localhost -p 6501 -b "dc=exemple,dc=com"  \
"(&(objectclass=orclresourcedescriptor)(orclownerguid=a131602d-85fd-4d88-b9e1-421f5cac0f57))" orclresourcename

orclResourceName=appsso+orclresourcetypename=OracleDB,cn=Resource Access Descriptor,orclOwnerGUID=a131602d-85fd-4d88-b9e1-421f5cac0f57,cn=Extended Properties,cn=oracleContext,dc=exemple,dc=com
orclresourcename=appsso+orclresourcetypename=OracleDB
orclresourcename=appsso

Afficher la liste des guid des utilisateurs ayant accès à une application particulière (ici appsso) :

ldapsearch -h localhost -p 6501 -b "dc=dev,dc=exemple,dc=com"  \
"(&(objectclass=orclresourcedescriptor)(orclresourcename=appsso))" orclownerguid

orclResourceName=appsso+orclresourcetypename=OracleDB,cn=Resource Access Descriptor,orclOwnerGUID=a131602d-85fd-4d88-b9e1-421f5cac0f57,cn=Extended Properties,cn=oracleContext,dc=exemple,dc=com
orclownerguid=a131602d-85fd-4d88-b9e1-421f5cac0f57

orclresourcename=m52sso+orclresourcetypename=OracleDB,cn=Resource Access Descriptor,oclownerguid=E109F751740953ABE040A8C086025FAC,cn=Extended Properties,cn=oracleContext,dc=exemple,dc=com
orclownerguid=E109F751740953ABE040A8C086025FAC

Afficher la liste des applications gérées en sso :

ldapsearch -h localhost -p 6501 -b "dc=exemple,dc=com"  \
"(&(objectclass=orclresourcedescriptor)(orclownerguid=*))" \
orclresourcename  | grep -v "dc=exemple,dc=com" | sort -bu | cut -d'=' -f2

connexionsso
appsso

Extension de l’utilisation des RAD

Les attributs

Le Resource Access Information

En français, Information d’accès à une ressource, est l’ensemble des attributs stockés dans un RAD (login d’accès à une base, mot de passe, ….). Un RAD a pour classe d’objet orclResourceDescriptor.

Il y a un seul attribut obligatoire : orclResourceName qui est le nom de la ressource auquel l’utilisateur a accès. Pour Forms/reports, il s’agit du nom de l’application.
Les autres attributs sont facultatifs.

Plus haut dans la documentation, les attributs suivants ont été présentés dans le cadre de l’utilisation de Forms/reports :

  • orclResourceTypeName : Type de source de données. OracleDB pour Forms, peut être différent pour Reports.
  • orclOwnerguid : le GUID de l’utilisateur.
  • orcluseridattribute : Login de connexion à la base.
  • orclpasswordattribute : Mot de passe de connexion à la base.
  • orclflexattribute1 : Chaîne de connexion à la base.
  • orclusermodifiable : L’utilisateur a t-il le droit de modifier cette entrée (s’utilise avec Oracle DAS).
  • orclresourceviewers : Attribut utilisable pour sécuriser l’accès au RAD via des ACL.

Il existe cependant d’autres attributs disponibles :

  • description : permet de donner une description à l’entrée
  • displayname : Nom affiché de préférence pour l’entrée par les outils de gestion. Par exemple « Application de gestion »
  • orclflexattribute2 : Attribut disponible selon son besoin.
  • orclflexattribute3 : Attribut disponible selon son besoin.

Le Resource Type Information

Pour l’utilisation de Forms, le type de ressource que j’ai présenté est toujours le même : une base de données Oracle.
Mais il est possible d’utiliser d’autres types de ressources.
L’annuaire OID dispose d’une entrée décrivant les ressources disponibles pour les applications, dans la branche :

cn=Resource Access Type,cn=Common,cn=Products,cn=OracleContext,dc=

Ces entrées permettent de décrire les caractéristiques des types ressources disponibles.
On y retrouve bien sur OracleDB, mais aussi ExpressPDS et JDBCPDS dans cet exemple qui sont des type de ressources utilisables par Reports.
Voici par exemple l’entrée pour OracleDB :

Les Resource Type sont des entrées dans l’annuaire d’objectclass orclResourceType.

  • Un seul attribut obligatoire : orclresourceTypeName : c’est une chaîne qui contient le nom du type de ressource, par exemple OracleDB, ou Mysql si on veut.

Les autres attributs, facultatifs, sont les suivants :

  • description : Un descriptif du type de ressource.
  • javaClassname : nom d’une classe Java associée au type de ressource.
  • orclConnectionFormat : décrit le format utilisé pour construire la connexion à la ressource à l’aide des autres attributs. Pour oracleDB par exemple, la chaîne de connexion se construit à l’aide de trois attributs :
    • Le login de la base : orclUserIDAttribute
    • Le mot de passe : orclPasswordAttribute
    • Le serveur et l’instance de la base : orclFlexAttribute1
    • Pour se connecter à une base Oracle, on utilise la chaîne suivante : orclUserIDAttribute/orclPasswordAttribute@orclFlexAttribute1
  • orclflexattribute1 : Attribut disponible. Pour OracleDB précise qu’il s’agit d’une ressource type base de données.
  • orclflexattribute2 : Attribut disponible.
  • orclflexattribute3 : Attribut disponible.
  • orclpasswordattribute : Chaîne contenant le texte affiché pour demander le mot de passe pour ce type de ressource. Pour OracleDB, c’est Password. En fonction du contexte et du type de ressource ce peut être tout autre chose.
  • orcluseridattribute : Chaîne contenant le texte affiché pour demander l’identité de l’utilisateur de ce type de ressource. Pour OracleDB, c’est Password. En fonction du contexte et du type de ressource ce peut être tout autre chose.

Exemple de création d’un Resource Type pour Mysql

changetype: add
dn: orclResourceTypeName=MySQL,cn=Resource Access Type,cn=Common,cn=Products,cn=OracleContext,dc=exemple,dc=com
objectclass: top
objectclass: orclResourceType
orclResourceTypeName: MySQL
description: Data Source pour MySQL
orcluseridattribute: Username
displayname: Base MySQL
orclflexattribute1: Hote
orclFlexAttribute2: Base
orclpasswordattribute: Password
orclconnectionformat: "orclFlexAttribute1","orclUserIDAttribute","orclPasswordAttribute","orclFlexAttribute2"
  • On crée un type de ressource nommée MySQL.
  • On utilise l’attribut orclflexattribute1 pour stocker le nom du serveur hébergeant la base.
  • On utilise l’attribut orclflexattribute2 pour stocker le nom de la base.
  • La chaîne de connexion est au format PHP : mysqli_connect(« example.com », »peter », »abc123″, »my_db »);

Les RAD qui se basent sur ce type de ressource ressembleront à ceci :
orclresourcename=appli+orclresourcetypename=MySQL,cn=Resource Access Descriptor,orclownerguid=guid,cn=Extended Properties,cn=OracleContext,dc=…

Portage sous OpenLDAP

De base, les RAD sont utilisé dans un annuaire OID.
Cependant, il est possible de les transférer sous OpenLDAP de la façon suivante :

Création du schéma

On ajoute les objectclass spécifiques Oracle en étendant le schéma openLDAP. Les exemples donnés ici sont pour une version 2.4 et + d’OpenLDAP
On créé un fichier oracle_schema.ldif qui contient les définitions suivantes :

dn: cn=oracleschema,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: oracleschema
olcAttributeTypes: {0}( 2.16.840.1.113894.7.1.1 NAME 'orclVersion' DESC 'orclV
 ersion' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-
 VALUE )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.42 NAME 'orclACI' DESC 'Access control instructions'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.1 )
olcAttributeTypes: {0}( 2.16.840.1.113894.7.1.4 NAME 'orclServiceType' DESC 'o
 rclServiceType' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.350 NAME 'orclResourceName' DESC 'Specifies the name of the resource'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.358  NAME 'orclOwnerGUID' DESC 'global unique identifier'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.355 NAME 'orclFlexAttribute1' DESC 'additional attribute'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.356 NAME 'orclFlexAttribute2' DESC 'additional attribute'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.357 NAME 'orclFlexAttribute3' DESC 'additional attribute'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.353 NAME 'orclPasswordAttribute' DESC 'Password value to access the resource'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.351  NAME 'orclResourceTypeName' DESC 'name of the resource'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15  EQUALITY caseIgnoreMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.366  NAME 'orclResourceViewers' DESC 'Users or groups who can view a RAD'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 EQUALITY distinguishedNameMatch )
olcAttributeTypes: {0}( 1.2.3.4.5.6.1.11 NAME 'orclUserModifiable' DESC 'Specifies if the data is modifiable by the user'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcAttributeTypes: {0}( 2.16.840.1.113894.1.1.352  NAME 'orclUserIDAttribute' DESC 'Specifies the user id'
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch )
olcObjectClasses: {0}( 2.16.840.1.113894.7.2.3 NAME 'orclContext' SUP top STRUCTURAL MUST cn MAY ( orclACI $ orclVersion ) )
olcObjectClasses: {1}( 2.16.840.1.113894.7.2.2 NAME 'orclContainer' SUP top STRUCTURAL MUST cn MAY ( orclServiceType $ orclVersion $ orclACI $ orclOwnerGUID ) )
olcObjectClasses: {1}( 2.16.840.1.113894.1.2.65 NAME 'orclResourceDescriptor' SUP top STRUCTURAL MUST orclResourceName MAY ( description $ displayName $
 orclFlexAttribute1 $ orclFlexAttribute2 $ orclFlexAttribute3 $ orclOwnerGUID $ orclPasswordAttribute $ orclPasswordAttribute $ orclResourceViewers $ orclUserModifiable $ orclUserIDAttribute $ orclResourceTypeName ) )
olcObjectClasses: {1}( 2.16.840.1.113894.1.2.64  NAME 'orclReferenceObject' SUP top STRUCTURAL MAY ( orclACI $ orclOwnerGUID $ seeAlso $ description ) )

On intègre ce schéma dans la base openLDAP :

 ldapadd  -Y EXTERNAL -H ldapi:/// -f ./oracle_schema.ldif

Remarques :
1- Je n’ai pas trouvé un autre moyen d’intégrer le schéma qu’en passant par une authentification externe.
2 – Une commande simple pour tester des modifications de schéma, elle arrête slapd, supprime l’ancien schéma, pui redémarre slapd. Il ne reste qu’à tester l’import du nouveau schéma :

service slapd stop ; rm cn\=config/cn\=schema/cn\=\{12\}oracleschema.ldif ; service slapd start
Posts relatifs
  1. Hi there,

    I am sorry, but I can’t speak french. However I learnt from you post that 10g Webgate needs 32bit library (glibc.i686) to run the installer. I installed the library and the installer move forward. But it didn’t continue, it stoped with following error:
    —————–
    Sorry, invalid user `null’ or invalid group `null’.
    Please check and enter again.
    —————–
    I changed the user to root and tried again, but it didn’t worth either.

    I hope you have solution for this.

    thanks.

    • Hi,

      I think that the user used by apache must exist in /etc/passwd, the group used by apache must exist in /etc/group, the directory used to install webgate has to belong to the apache user.
      It seems that the permissions are wrong.
      If you always have problems I can check my installation.
      Good luck
      Fabrice

  2. Hi Fabrice,

    I am also getting the same problem but in my machine i checked that the following libraries are already installed. But still i am not able to install OAM :(

    yum list installed | grep glibc
    glibc.i686 2.12-1.107.el6
    glibc.x86_64 2.12-1.107.el6

    when i did ./linux-sun-150.bin it extracted all the contents without any issues.

    • Hi,

      Do you want to install OAM ? If yes wich release ?
      OAM is complex to install, and I have not yet write something to explain how to install it, because it was difficult to obtain a definitive guide.

      Regards,

  3. Hi, Fabrice its really nice post about RAD regarding 11gr2 OID. If you know about configuration of SSO for forms 11gR2 with Oracle Access Manager and Oracle Internet Directory please share it with screen shots ..Waiting for Quick Response.
    . Thanks in Advance.

Laisser un commentaire


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">