Search Results get_user_props_and_auth
Overview
SYS.DBMS_LDAP_UTL is the Oracle-supplied PL/SQL extension package that provides high-level utility functions for interacting with an LDAP directory server, such as Oracle Internet Directory or Microsoft Active Directory. In the Oracle E-Business Suite 12.1.1 and 12.2.2 environments, the package serves as the application-facing layer above the lower-level DBMS_LDAP API. While DBMS_LDAP exposes raw LDAP protocol operations (bind, search, compare, modify), DBMS_LDAP_UTL wraps those primitives into semantic operations that are meaningful within an Oracle identity-management context: authenticating a user, retrieving a user or group distinguished name (DN), reading and writing properties on directory entries, and resolving group membership.
The package is owned by SYS and is classified in the ETRM repository under the generic API category "OTHER." It is documented as returning error codes rather than raising exceptions, and it depends on a valid LDAP session obtained from DBMS_LDAP.init(). Its functions resolve the Oracle Context schema in the LDAP server to locate information about users, groups, and subscribers.
Key Procedures and Functions
The ETRM documentation registers 39 procedures and functions for this package. The most significant are summarized below; parameter lists are not reproduced here.
- Session and version utilities:
CHECK_INTERFACE_VERSIONvalidates that the caller is using a compatible interface version. - Subscriber operations:
CREATE_SUBSCRIBER_HANDLE,GET_SUBSCRIBER_PROPERTIES,GET_SUBSCRIBER_EXT_PROPERTIES, andGET_SUBSCRIBER_DNcreate a handle to a subscriber entry and retrieve its attributes or DN. - User operations:
CREATE_USER_HANDLE,SET_USER_HANDLE_PROPERTIES,GET_USER_PROPERTIES, andGET_USER_DNcreate, modify, and read user directory entries. - Group operations:
CREATE_GROUP_HANDLE,SET_GROUP_HANDLE_PROPERTIES,GET_GROUP_PROPERTIES, andGET_GROUP_DNperform analogous operations on group entries. - Authentication:
AUTHENTICATE_USER,AUTHENTICATE_USER_EXT, andGET_USER_PROPS_AND_AUTHverify user credentials against the directory, with the_EXTvariant supporting extended options and the combined routine returning authenticated user properties. - Membership:
GET_GROUP_MEMBERSHIPandCHECK_GROUP_MEMBERSHIPenumerate groups a user belongs to or test membership in a specific group. - Resource management:
FREE_HANDLEandFREE_PROPERTYSET_COLLECTIONrelease handles and property-set collections allocated by other calls.
The subtype HANDLE and related PROPERTY_SET / MOD_PROPERTY_SET types are defined as RAW(32) structures holding external C pointers.
Tables Accessed
The ETRM metadata for this package lists no tables referenced through APPS synonyms. This is consistent with its design: DBMS_LDAP_UTL does not operate on relational tables in the E-Business Suite schema. Instead, it communicates directly with an external LDAP directory server over the network using the session established by DBMS_LDAP.init() and the Oracle Context schema. Persistent state therefore resides in the directory, not in database tables.
Usage Notes
Typical invocation patterns in EBS include:
- Oracle Application Server / OID integration: Directory-integrated authentication flows, where EBS validates user credentials against the directory rather than the FND_USER table.
- Custom authentication code: PL/SQL routines that call
AUTHENTICATE_USERorGET_USER_PROPS_AND_AUTHto bind and verify a user during login. - Provisioning and synchronization: Concurrent programs or batch jobs that read, create, or update user and group entries via the handle-based interfaces.
- Group-based authorization: Code that uses
CHECK_GROUP_MEMBERSHIPorGET_GROUP_MEMBERSHIPto drive role or responsibility assignment.
Because the package returns error codes rather than raising exceptions, calling code must check return values after each call. Handles returned by the create functions should always be released with FREE_HANDLE, and property-set collections should be freed with FREE_PROPERTYSET_COLLECTION to avoid resource leaks in long-running sessions. The ETRM repository notes that this package is referenced by one other package within the EBS codebase, indicating that it participates in the broader identity-management call stack rather than being invoked in isolation.