Oracle Advanced Security Administrator's Guide
Release 9.0.1

Part Number A90150-01
Go To Documentation Library
Home
Go To Product List
Book List
Go To Table Of Contents
Contents
Go To Index
Index

Master Index

Feedback

Go to previous page Go to next page

15
Managing Enterprise User Security

Enterprise User Security lets you create and administer large numbers of users in a secure, LDAP-compliant directory service. This chapter describes the configuration and setup of Enterprise User Security.

This chapter contains the following topics:

Part I: Overview / Concepts:

Part II: Initial Configuration for SSL and Password Authentication

Part III: Final Configuration for SSL Authentication

Part IV: Final Configuration for Password Authentication

Part V: TroubleShooting Enterprise User Login

See Also:

Chapter 18, Using Oracle Enterprise Security Manager 

Part I: Overview / Concepts

This part introduces Oracle Enterprise User Security, and describes its fundamental concepts.

Part I contains the following sections:

Overview of Enterprise User Security

This section describes fundamental concepts related to Enterprise User Security:

Introduction to Enterprise User Security

Administrators must manage complex user information for the entire enterprise, keeping it both current and secure. This task becomes increasingly difficult as the use of technology expands and the user turnover rate increases throughout an enterprise. In a typical enterprise, every user can have multiple accounts on different databases, requiring users to remember passwords for each of these accounts. This can produce too many passwords for users to remember, and too many accounts for administrators to effectively manage.

With perhaps thousands of users accessing thousands of database accounts, administrators must devote substantial resources to user administration. Common information used by multiple applications--such as usernames, user office locations and telephone numbers, and system roles and privileges--is typically fragmented across the enterprise, contributing to data that is redundant, inconsistent, and difficult to manage.

There are security problems as well. For example, any time a user leaves a company or changes jobs, that user's privileges should be changed the same day in order to guard against their misuse. However, in a large enterprise, with user accounts and passwords distributed over multiple databases, an administrator may be unable to make such timely changes. In addition, users may elect to write down their passwords (making them easy for others to copy), or make them easy to remember (making them easy for others to guess), or simply choose the same password for multiple applications--all of which compromise the security of the enterprise.

Enterprise User Security addresses these user, administrative, and security challenges by centralizing storage and management of user-related information in an LDAP-compliant directory service. When an employee changes jobs in such an environment, the administrator need only modify information in one location--the directory--to make effective changes in multiple databases and systems. This centralization can substantially lower administrative costs while materially improving enterprise security.

Enterprise users benefit from Enterprise User Security as well, through single sign-on or single password authentication, depending on the configuration chosen by the administrator.

Single sign-on lets users authenticate once, with subsequent authentications taking place transparently. It address the multiple password problem, and provides stronger, PKI-based authentication, combined with an improved user experience.

Single password authentication lets enterprise users authenticate to multiple databases with a single, global password--although each database requires a separate authentication. The password is securely stored in the centrally located, LDAP-compliant directory, and protected with security mechanisms including encryption and an Access Control List (ACL). This approach reduces the number of passwords to remember, and eliminates the overhead of setting up SSL--both of which improve usability.

Enterprise User Security supports the following LDAP-compliant directory services:

Oracle Advanced Security also provides a tool, Oracle Enterprise Security Manager, to create user entries in the directory and manage authorizations for those users.

See Also:

Chapter 18, Using Oracle Enterprise Security Manager 

Enterprise Users and Authentication Methods

Enterprise User Security lets administrators manage two types of users in a single LDAP-compliant directory:

Password-authenticated enterprise users use single password authentication.

SSL-authenticated users enjoy single sign-on and strong authentication, using industry-standard, interoperable X.509 v3 certificates--over Secure Sockets Layer (SSL) v3.

Each authentication method has its own set of selection criteria, as summarized by Table 15-1:

Table 15-1 Enterprise User Authentication: Selection Criteria
Selection Criteria, Applicable to: 
Password Authentication  SSL-Authentication 

Supports password-based logins. 

Provides stronger, systemwide security. 

Does not support PKI, or PKI certificate-based client authentication. 

Supports PKI, certificate-based authentication. 

Does not employ SSL, wallets, or X.509 certificates. 

Supports PKI, SSL, and industry-standard X.509 certificates. 

Supports single, global user passwords, with separate authentications required for each database and application (single password authentication). 

Supports single sign-on using SSL. 

Provides faster processing, because there is no SSL processing required between clients and servers (supports Oracle Advanced Security native encryption). Note: if your organization requires SSL, you cannot use password authentication across the enterprise. 

Somewhat slower connection processing, but with higher network security. Note: if your organization requires SSL across the enterprise, you must use SSL-authentication. 

From the user/client point of view, password authentication may be viewed as easier-to-use, particularly for notebooks and home workstations. 

SSL is more difficult to configure initially, but it provides stronger security. 

Password authentication is compatible with either a two-tier or three-tier environment. 

SSL-authentication is compatible with either a two-tier or three-tier environment. 

Password authentication supports Oracle Release 7.3 or 8.0 clients, with an Oracle9i database. 

SSL-authentication supports Oracle8i or Oracle9i clients with an Oracle9i database. 


Note:

  • This release extends Enterprise User Security support into three-tier environments. Oracle9i proxy authentication features enable (i) proxy of user names and passwords through multiple tiers, and (ii) credential proxy of X.509 certificates and distinguished names through multiple tiers. This combination applies to both SSL-authenticated and password-authenticated enterprise users.

  • See Also: Oracle9i Application Developer's Guide - Fundamentals

 

Enterprise Users and Password Authentication

Prior releases of Oracle Advanced Security use SSL processing to establish secure channels between (i) the client and the server, and (ii) the database server and the LDAP-compliant directory. The client authentication mechanism uses SSL and X.509 v3 certificates, requiring installed Oracle wallets on both the client and the server.

This release complements certificate-based authentication with password-based authentication for enterprise users, including the following principal features:

Elements of Enterprise User Security

The following directory entries relate to Enterprise User Security:

Enterprise Users

An enterprise user is one that is defined and managed in a directory. Each enterprise user has a unique identity across an enterprise. Enterprise user entries can reside at any location within the directory.

The entries described below can only reside within an Oracle Context.

Enterprise Roles

Enterprise users can be assigned enterprise roles, which determine their access privileges on databases. These enterprise roles are also stored and managed in a directory.

An enterprise role consists of one or more global roles, each one of which is defined in a specific database. A global role includes privileges contained in a database, but the global role is managed in a directory. An enterprise role is thus a container of global roles. For example, the enterprise role USER could contain the global role HRCLERK with its privileges on the Human Resources database, and the ANALYST role with its privileges on the Payroll database.

An enterprise role can be assigned to one or more enterprise users. For example, you could assign the enterprise role USER to a number of enterprise users who hold the same job. This information is protected in the directory, and only the administrator can manage users and assign their roles. A user can be granted local roles and privileges in a database in addition to enterprise roles.

An enterprise domain subtree includes enterprise role entries, each of which contains information about associated global roles on each server and authorized enterprise users. These are created and managed by the Domain Administrator by using Oracle Enterprise Security Manager.

See Also:

Administering Enterprise Roles 


Note:

The database obtains a user's global roles when the user logs in. If you change a user's global roles in the directory, those changes do not take effect until the next time the user logs in. 


Enterprise Domains

An enterprise domain is a group of databases and enterprise roles. An example of a domain could be the engineering division in an enterprise or a small enterprise itself. It is here, at the enterprise domain level, that the Domain Administrator, using Oracle Enterprise Security Manager, assigns enterprise roles to users and manages enterprise security. An enterprise domain subtree in a directory is composed of three types of entries: enterprise role entries (discussed by Enterprise Roles), User-Schema Mappings, and the Domain Administrator's group for that domain.

User-Schema Mappings

A user-schema mapping entry contains mapping information between a full or partial DN and an Oracle database user name. The users referenced in the mapping are connected to the specified schema when they connect to the database. User schema mapping entries can appear under database server entries, where they apply only to that database. They can also appear under domain entries, where they apply to all databases in that domain.

Mapping entries are created by the Domain Administrator for a particular domain, and are created by the Database Administrator for a particular database.

See Also:

Mapping an Enterprise User to a Shared Schema 

Database Server Entries

A database server entry (represented as cn=sales in Figure 15-1) contains information about a database server. It is created by the Oracle Database Configuration Assistant during the database registration. A database server entry is the parent of database level mapping entries that contain mapping information between full or partial DNs and Oracle shared schema names. Database-level mapping entries are created by the Database Administrator by using Oracle Enterprise Security Manager. A Database Administrator's group, containing administrators for that database, is located under the server entry.

Figure 15-1 Related Entries in an Oracle Context


Text description of entries2.gif follows.
Text description of the illustration entries2.gif

Administrative Groups

The Oracle Context contains Enterprise User Security-related administrative groups, each with its associated Access Control List (ACL). The user who creates the Oracle Context with NetCA automatically becomes the first member of each of these groups. The relevant administrative groups in an Oracle Context are described in Table 15-2:

Table 15-2 Administrative Groups in an Oracle Context
Administrative Group  Description 

OracleDBCreators 

Members of the OracleDBCreators group (cn=OracleDBCreators,cn=OracleContext...) are in charge of creating new databases, and this includes registering each database in the directory by using the Oracle Database Configuration Assistant. They have create and modify access to database service objects and attributes. They can also modify the Default Domain.

NetCA establishes these access rights during Oracle Context creation.

In addition to the Oracle Context creator, other users can be added to this group by members of the OracleDBSecurityAdmins group by using Oracle Enterprise Security Manager. 

OracleDBSecurityAdmins 

Members of OracleDBSecurityAdmins (cn=OracleDBSecurityAdmins,cn=OracleContext...) have root privileges for the OracleDBSecurity subtree. They have create, modify, and read access for Enterprise User Security. They have permissions on all of the domains in the enterprise and are responsible for:

  • Administering the OracleDBSecurityAdmins and OracleDBCreators groups

  • Creating new enterprise domains

  • Moving databases from one domain to another within the enterprise

NetCA sets up these access rights during Oracle Context creation.

In addition to the Oracle Context creator, members of this group can add other users to this group by using Oracle Enterprise Security Manager. 

OracleUserSecurity-
Admins 

Members of OracleUserSecAdmins (cn=OracleUserSecurityAdmins,cn=Groups,cn=OracleContext...) are responsible for Oracle user security. For example, by default they can read wallet password hints and modify user passwords. The relevant ACL is set at the root of the directory by default. 

Password Accessible Domains 

Members of <cn=password accessible domains> are enterprise domains that contain databases enabled for password-authorized enterprise users. 

You can also have a Domain Administrator responsible for managing a single domain. This administrator has lesser privileges than the Database Security Administrator. Similarly, you can have a Database Administrator responsible for a single database directory entry. These admin groups reside directly under the relevant database or domain entry.


Note:

Do not modify the ACLs for the objects contained in an Oracle Context; doing so breaks the security configuration for these objects--and may break enterprise user functionality as well. 


Security of User Database Login Information

Overview

In all secure password-based authentication methods, a server authenticates a client with a password verifier, typically a hashed version of the password--that must be rigorously protected. Password-based authentication to an Oracle database is no different; there is an Oracle proprietary password verifier, and it must be protected as well. This is true if the verifier is stored locally in the database or centrally in the directory.

In the current release an enterprise user's centrally-stored database password can be stored in a central directory service for access by multiple databases, and is viewable and shared by all trusted databases to which the user has access. Although the password verifier stored in the directory is not the cleartext password, it is still necessary to protect it from casual or unauthorized access. It is therefore extremely important to define password-related ACLs in the directory that are as restrictive as possible, while still enabling necessary access and usability.

Oracle tools help set up ACLs in the directory to protect these password verifiers. The Oracle recommended approach is intended to balance both security and usability considerations. If you require maximum security and can set up wallets for all users, you should require SSL connections (only) from users to databases. This SSL-only approach circumvents the entire directory password protection issue.

Setting Up ACLs

In the current release, there is a new Password-accessible Domains group in each Oracle Context. This group is created automatically when the context is created, and can be managed using Oracle Enterprise Security Manager. Enterprise domains with member databases that must view users' database password verifiers in the directory are placed into this group. Enterprise Security Manager can be used to place an appropriate ACL on user subtrees, so that databases in this group can read the password verifier for users in that subtree.

There are two steps involved in this (Oracle-supported) approach:

  1. For a selected (Oracle9i) Oracle Context, determine which databases can accept password-authenticated connections. Use Oracle Enterprise Security Manager to place the domains containing those databases into the Password-accessible Domains group.

  2. For a selected (Oracle9i) Oracle Context, Use Oracle Enterprise Security Manager to select the user search bases that contain users that require connection to databases in this context using password authentication. For user entries under these search bases, restrict access (to the password verifier) to authorized domains only--by checking the Restrict Logon checkbox.

    This step places a restrictive ACL on the selected user search base entry in the directory. That ACL specifies permitted access to the attribute that holds the Oracle database password verifier as follows:

    • Members of the Password-Accessible Domains group in the selected Oracle Context have read access to the attribute. All databases in the member domains can thus read the password verifier in order to authenticate enterprise users. Note that databases in domains excluded from membership in the Password-Accessible Domains group cannot accept password-authenticated connections.

    • Members of the User Security Admins group in the selected Oracle Context have read and write access to the attribute. User Security Administrators can thus create an initial database password for a newly created user, or reset a forgotten password. Note that a password verifier cannot be used to derive its original password.

    • If the user search base is referenced by two different Oracle Contexts, and domains in both contexts require access from password-authenticated users, the password-assessable domains and usersecurityadmins groups from both contexts appear in the ACL.

    • Users themselves require read and write access to the attribute. Accordingly, users can use Oracle Enterprise Login Assistant to change their respective database passwords.

    • All other users are denied access to this attribute.

    These ACLs restrict access to the Oracle database password verifier value only (the orcldbpassword attribute). No other attributes in the user entries are affected.

    See Also:

    Oracle Directory Service Integration and Deployment Guide for more information about the LDAP schema for Enterprise User Security 

Enterprise User Security Elements

Figure 15-2 displays the Enterprise User Security elements--with SSL-authentication employed:

Figure 15-2 Enterprise User Security Elements (SSL-Authentication)


Text description of ano81019.gif follows.
Text description of the illustration ano81019.gif

Figure 15-3 displays the Enterprise User Security elements--with password-authentication employed:

Figure 15-3 Enterprise User Security Elements (Password Authentication)


Text description of ano81031.gif follows.
Text description of the illustration ano81031.gif

The Enterprise User Security Process with SSL

Figure 15-4 shows the operation of the Enterprise User Security process. For an SSL processing environment, the following assumptions apply:

  1. An administrator uses NetCA to (i) select the Oracle Context in the directory, or to (ii) create an Oracle Context as necessary.

  2. A member of the OracleDBCreators group uses the Oracle Database Configuration Assistant to register the database with the directory.

  3. An administrator uses Oracle Enterprise Security Manager to set up both enterprise users and enterprise roles in the directory and relevant domains.

  4. A user initiates an SSL connection to the database (logs on), and the database uses SSL to authenticate the user; the database searches for the appropriate schema by accessing local tables.

  5. If no appropriate user schema mapping is found locally, the database searches for one in the directory (2). If it finds one, the database retrieves the user's enterprise roles from the directory (5), and authorizes any associated global roles applicable to that database.


    Note:

    In a three-tier environment, enterprise users can authenticate to the database through any middle tier using proxy authentication


The Enterprise User Security Process with Passwords

This section describes the operation of the Enterprise User Security process, with password-based authentication (See: Figure 15-4):

  1. An administrator uses NetCA to (i) select the Oracle Context in the directory, or to (ii) create an Oracle Context as necessary.

  2. A member of the OracleDBCreators group uses the Oracle Database Configuration Assistant to register the database with the directory.

  3. An administrator uses Oracle Enterprise Security Manager to set up both enterprise users and enterprise roles in the directory and relevant domains, and to configure attributes in the context.

  4. A user authenticates to the database (logs on) with a password.

  5. As part of the authentication process, the database performs the following steps:

Shared Schemas

The following sections describe shared schemas, and how to set them up:

Overview

Users do not necessarily require individual accounts or schemas set up in each database. Alternatively, they can be granted access to common, shared schemas associated with target applications. For example, suppose that users Tom, Dick, and Harriet require access to the Payroll application on the Finance database. They do not need to create unique objects in the database, and therefore do not need their own schemas--they do need access to the Payroll schema.

Oracle9i Release 9.0.1 supports mapping multiple users stored in an enterprise directory to shared schema on an individual database. This separation of users from schemas reduces administration costs by reducing the number of user accounts on databases. It means that you do not need to create an account for each user--a user schema--in multiple databases, in addition to creating the user in the directory. Instead, you can create a user in one location, the enterprise directory, and map the user to a shared schema that other enterprise users can also be mapped to. For example, if Tom, Dick and Harriet all access both the Sales and the Finance databases, you do not need to create an account for each user on each of these databases. Instead, you can create a single shared schema on each database, such as SALES_APPLICATION and FINANCE_APPLICATION, respectively, that all three users can access. A typical environment might have some 5,000 enterprise users mapped to just one of three or four shared schemas. Alternatively, you can map multiple users to a single shared schema (a guest schema), and assign enterprise roles to each user.

Summary:

Configuring Shared Schemas

To configure shared schemas, the local Database Administrator must create at least one database schema in a database. Enterprise users can be mapped to this schema.

In the following example, the administrator creates a shared schema and maps users to it:

When Harriet connects to the database, she is automatically connected to the EMPLOYEE schema and is given the global role HRMANAGER. Multiple enterprise users can be mapped to the same shared schema. For example, the enterprise security administrator can create another enterprise user Scott and map Scott to the EMPLOYEE schema. From that point on, both Harriet and Scott automatically use the EMPLOYEE schema when connecting to the HR database, but each can have different roles--and can be individually audited.

Shared Schema Functionality and SSL

Shared schema functionality relies on SSL or user passwords for authentication to the database. For a discussion of password-based authentication, See: Enterprise Users and Password Authentication.

A discussion of the SSL authentication process follows:

Continuing this example, assume that the enterprise role MANAGER contains the global roles ANALYST on the HR database, and USER on the Payroll database. When Harriet, who has the enterprise role MANAGER, connects to the HR database, she uses the schema EMPLOYEE on that database.

Creating a Shared Schema

The syntax for creating a shared schema is:

CREATE USER [shared schema name] IDENTIFIED GLOBALLY AS ''

For example, the administrator for the HR database creates a shared schema for the user SALES_APPLICATION as follows:

CREATE USER sales_application IDENTIFIED GLOBALLY AS ''


Note:

There is no space between the single quotation marks in the syntax for creating a shared schema. 


Creating an Enterprise User in the Directory

You can use Oracle Enterprise Security Manager to create enterprise user entries one at a time. To load large numbers of entries, use other LDAP processes such as the Oracle Internet Directory bulk load tool.

See Also:

Your LDAP directory documentation (such as for Oracle Internet Directory or Microsoft Active Directory) 

Mapping an Enterprise User to a Shared Schema

The mapping between enterprise users and a schema can be done in either the database or the directory.

The mapping is done in the directory by means of one or more mapping objects. A mapping object is used to map the distinguished name (DN) of a user to a database schema that the user will access. You create a mapping object by using Oracle Enterprise Security Manager. This mapping can be one of the following:

You can grant privileges to a specified group of users by granting roles and privileges to a database schema. Every user sharing such a schema gets these local roles and privileges in addition to personal enterprise roles. However, you should exercise caution when doing this, because every user who is mapped to this shared schema can exercise the privileges assigned to it. Accordingly, Oracle does not recommend assigning roles and privileges to a shared schema.

Current User Database Links

Oracle9i supports current user database links for both SSL-authenticated and password-authenticated enterprise users, which let you make a procedural connection to a second database as another user and with that user's privileges--though it does not require that the second user's credentials be stored in the database link definition. Such access is limited to the scope of the database link procedure.

For example, a current user database link lets Harriet, a user of the Finance database, procedurally access the Accounts Payable database by connecting as Scott, and using Scott's credentials.

For Harriet to access a current user database link to connect to the schema Scott, Scott must be a schema created as IDENTIFIED GLOBALLY in both databases. Harriet, however, can be a user identified in one of three ways:

To create Scott as a global user in both the Accounts Payable and Finance databases, you must enter the following command in each database:

CREATE USER Scott IDENTIFIED GLOBALLY as 'CN=Scott,O=nmt'

Note that the syntax for creating this kind of schema is slightly different from the syntax for creating a shared schema described in Creating a Shared Schema. In this case, the schema is Scott's alone. In order for the current user database link to work, the schema created for Scott cannot be shared with other users.

Current user database links operate only between trusted databases within a single enterprise domain--databases within the domain trust each other to authenticate users. You specify a domain as trusted by using Oracle Enterprise Security Manager. By default, if current user database links are enabled for a domain by using Enterprise Security Manager, they will work for all databases within that domain. To specify a database as untrusted that is part of a trusted enterprise domain, use the PL/SQL package DBMS_DISTRIBUTED_TRUST_ADMIN. To obtain a list of trusted servers, use the TRUSTED_SERVERS view.

See Also:

 

Enterprise User Security Components

Enterprise User Security functionality uses the following administration tools:

Oracle Enterprise Security Manager

Oracle Enterprise Security Manager is an administration tool that provides a graphical user interface to help you manage enterprise users, enterprise domains, databases, and enterprise roles that are stored in a directory service. Use Oracle Enterprise Security Manager to:

Oracle Enterprise Login Assistant

Use Oracle Enterprise Login Assistant to enable and disable Autologin, to upload wallets to, or download wallets from a directory, and to change a user wallet password. This tool lets enterprise users use SSL to connect to multiple services with a single sign-on. Oracle Enterprise Login Assistant masks the complexity of SSL, wallets, enterprise users, and the process of authenticating to multiple databases.

Oracle Enterprise Login Assistant also supports password authentication, letting users securely access multiple databases and applications using a single password, entered once for each session.

You can use ELA to change any of the following passwords:

The directory password is the password used to bind to Oracle Internet Directory. The database password, on the other hand, is the single, global password that enterprise users enter into an application (such as SQL*Plus), in order to authenticate to multiple databases.

The user wallet password is used to access user wallets, stored locally (on the client) or in the directory. User wallets are required for SSL-based authentication, but they are not required for password-based authentication.

See Also:

Chapter 17, Using Oracle Enterprise Login Assistant 

Oracle Wallet Manager

Oracle Wallet Manager is a standalone Java application that wallet owners and security administrators use to manage and edit the security credentials in their Oracle wallets. Wallet Manager tasks include:

Deployment Considerations

Consider the following before deploying Oracle Enterprise Security Manager:

Security Aspects of Centralizing Security Credentials

Beyond the general benefits that flow from the centralization of enterprise users and their associated credentials, there are a number of security-related benefits and risks that should be reviewed.

One security benefit is that centralizing management makes it easier and faster to administer users, credentials, and roles, and to quickly revoke a user's privileges on all applications and databases across the enterprise. With centralized management, the administrator can delete a user in one place to revoke all global privileges, minimizing the risk of retaining unintended privileges.

Another security benefit is that it can be more secure to centrally control security information, because you can centralize the organization's security expertise. Specialized, security-aware administrators can manage all aspects of enterprise user security, including directory security, user roles and privileges, and database access. This is a substantial improvement over the traditional model, where Database Administrators are typically responsible for everything on the databases they manage, including security.

The downside is that, while Oracle Internet Directory is a secure repository, there is a security challenge--and inherent risk--in centralizing credentials in any publicly accessible repository. Although centralized credentials can be protected at least as securely as distributed credentials, the very nature of centralization increases the consequences of inadvertent credential exposure to unauthorized parties. It is therefore imperative to limit the privileges of administrators, to set restrictive Access Control Lists (ACLs) in the directory, and to implement good security practices in the protection of security credentials when they are temporarily outside of the directory.

Database Membership in Enterprise Domains

Consider the following criteria when defining the database membership of a domain:

Part II: Initial Configuration for SSL and Password Authentication

This part describes the initial Enterprise User Security configuration tasks--for both SSL and password authentication.

This part contains the following tasks:

Task 1: Install or Identify a Certificate Service

Oracle Wallet Manager requires you to have a certificate authority (CA) in your environment. You can use a CA vendor's certificates, or you can use your own CA that can process PKCS#10 certificate requests in Base 64 format and return X509v3 certificates--also in Base 64 format.

See Also:

Chapter 16, Using Oracle Wallet Manager, for a description of certificate authorities and Oracle Wallet Manager 

Task 2: Install and Configure a Directory Service

Conceptually, there are four major prerequisites for an Oracle RDBMS to communicate with the directory:

NetCA performs the first three steps (called directory service access configuration), and the Oracle Database Configuration Assistant (DBCA) performs the fourth. Note that you must create the Oracle Context at least once for each directory, but you must create an ldap.ora file for each ORACLE_HOME used to access the directory. If there is no context, NetCA prompts you to create one; if one already exists, it prompts you to choose one to use. If there is no Oracle schema installed in the directory (which is done automatically for Oracle Internet Directory), or it is not current, NetCA prompts you to install or update it.

If you run the recommended custom database install, NetCA and DBCA automatically complete the directory-related configuration.

If you install the Oracle9i database using a typical install, NetCA and DBCA do not complete the directory-related configuration. In this case, you must run both NetCA and DBCA in standalone mode.

To install and configure a directory service:

Step 1: Install and Start an SSL-Enabled LDAP v3-Compliant Directory Service

Oracle9i Release 9.0.1 supports the following internet directories:

Setting up the directory for two-way SSL authentication requires the creation of an Oracle wallet for the directory. If you are using Oracle Internet Directory, use Oracle Wallet Manager and Oracle Internet Directory to create a wallet for the directory and to configure SSL. If you are using Microsoft Active Directory, see that product's documentation for instructions about enabling two-way SSL authentication.

Step 2: Prepare the Directory for Enterprise User Support

Ensure that the directory has an Oracle9i schema and an appropriate Oracle Context installed.

Step 3: Create Administrative Users

If they do not already exist, create enterprise users in the directory who are authorized to perform the following functions:

Task 3: Install and Configure the Database

To install and configure one or more databases:

Step 1: Install Oracle9i Release 9.0.1 Database Software

Use the Oracle Universal Installer to install Oracle9i databases. Before installation, obtain the following from the directory administrator:

During installation, select Oracle9i Enterprise Edition and the Custom installation type with Oracle Advanced Security.

See Also:

Oracle9i Release 9.0.1 installation documentation for your platform, for detailed instructions about how to install and create a database 

NetCA runs automatically at the end of the Oracle9i installation process; see Step 2 for related instructions (if you did not choose the custom install, NetCA must be started manually).

Step 2: Set Up Directory Access for ORACLE_HOME

To configure directory service access configuration, use NetCA:

  1. Run NetCA:

    • Windows NT: Select Start->Programs->Oracle-<ORACLE_HOME_NAME>->Network Administration->Oracle Net Configuration Assistant

    • UNIX: Type NetCA at the command line.

  2. Select Directory Usage Configuration; choose Next.

  3. Choose Select an already configured directory server to use; choose Next.

  4. In the Directory Type window, select your Directory Type (Oracle Internet Directory, for example).

  5. In the Directory Location window:

    • Enter the name of your directory host system in the Hostname field.

    • Enter the non-SSL port number in the Port field; the default is 389.

    • Enter the SSL port number in the SSL Port field; the default is 636.

    • Choose Next.

  6. Select the appropriate Oracle Context.

  7. Choose Finish to exit NetCA.

  8. Verify that an ldap.ora file is located in the following directory path:

    UNIX and Windows NT: <ORACLE_HOME>/network/admin

    Figure 15-5 Example: The ldap.ora File


    Text description of ldapora.gif follows.
    Text description of the illustration ldapora.gif

    See Also:

    Oracle9i Net Services Administrator's Guide, for instructions about setting up directory access for the database (Configuring Naming Methods

Step 3: Authorize Users for Administrative Functions

To register your database in the directory (using DBCA), you must provide directory credentials for (i) a user in the Database Installation Administrator's group, or (ii) a user in the Context Administrator's group, or (iii) the directory superuser. If you choose the first or second approach, you may need to add appropriate users to that group before running DBCA. Use Oracle Enterprise Security Manager to put the appropriate directory users into the Database Installation Admin group--so they can register the database in the directory.


Note:

This group is called the Database Installation Admin group by Oracle Enterprise Security Manager, but the actual group name in the directory is OracleDBCreators. 


See Also:

Chapter 18, Using Oracle Enterprise Security Manager 

To authorize users for administrative functions:

  1. Start Oracle Enterprise Security Manager and log in:

  2. Using Oracle Enterprise Security Manager, select the appropriate context and choose the Admins tab; add appropriate users to the following groups:

    • Database Installation Administrators

    • Context Administrators

Step 4: Use Oracle Database Configuration Assistant to Register the Database in the Directory

  1. If you performed a typical database installation, start DBCA in standalone mode as follows:

    • Windows NT: Select Start->Programs->Oracle-<ORACLE_HOME_NAME>->Database Administration->Database Configuration Assistant

    • UNIX: Enter dbca at the command line.

  2. If you performed a custom database installation, Oracle Database Configuration Assistant prompts you to register the database in the directory. Choose Yes.

  3. If you are running DBCA in a standalone mode, select Configure database options in a database and choose Next.

Task 4: Configure the Database for SSL

To configure the database for SSL:

Step 1: Configure Oracle Net for Listener and Database SSL Support

Oracle Net must be configured for SSL on both the listener and the database. The listener must have a listening endpoint that is configured for the TCP/IP with SSL protocol, and the location of the database wallet must be specified. Use Oracle Net Manager to do this (See: Enabling SSL):

  1. With ORACLE_HOME set to the databases' home directory, run Oracle Net Manager:

    • Windows NT: Select Start->Programs->Oracle-<ORACLE_HOME_NAME>->Network Administration->Oracle Net Manager.

    • UNIX: Enter netmgr at the command line.

  2. Configure Profile:

Step 2: Configure SSL Service Name

To configure the SSL service name:

  1. In the Oracle Net Manager Service Naming window, select the Service Naming icon and choose the Create icon; this is necessary for SSL-authenticated enterprise users only.

  2. In the Oracle Net Service Name Wizard window (Welcome), enter your chosen Net Service Name; this is the name you use to access your database as an enterprise user. Choose Next.

  3. In the Oracle Net Service Name Wizard window (page 2 of 5: Protocol), select TCP/IP with SSL; choose Next.

  4. In the Oracle Net Service Name Wizard window (page 3 of 5: Protocol Settings), enter your database Host Name and Port Number--that you will use for the SSL connection.

  5. In the Oracle Net Service Name Wizard window (page 4 of 5: Service), enter the Oracle9i Service Name; choose Next.

  6. Do not test this connection when asked. It will fail because (i) you have not set up the listener to listen for SSL connections, and (ii) you have not set up the database wallet; choose Finish.

  7. In the Oracle Net Manager window, select File-->Save the network configuration; your TNSNAMES.ORA file is updated, and can be reviewed later.

Step 3: Configure the Listener

To configure the listener:

  1. In the Oracle Net Manager window, expand Listeners and select the appropriate Listener (in the expandable tree menu on the left side of the window).

  2. Select Listening Locations from the drop-down menu at the top right side of the window.

  3. Choose the Add Address button at the bottom right side of the window.

  4. Using the Protocol drop-down list, select SSL; enter your host name and your chosen SSL port number.

  5. Select File-->Save Network Configuration; your listener.ora file is updated. Exit Oracle Net Manager.


    Notes:

    • Do not attempt to start the listener--until you have set up a wallet for SSL connections.

    • Do not modify the value of SSL_CLIENT_AUTHENTICATION in listener.ora, which should be FALSE (the listener is not doing the authentication--the database uses SSL to authenticate the client).

     
  6. For Windows NT only: you must manually edit tnsnames.ora for the client; edit $ORACLE_HOME/network/admin/tnsnames.ora by adding the following to your SSL service name:

    SECURITY = (AUTHENTICATION_SERVICE = TCPS)
    
    

Step 4: Review the .ORA Files

To facilitate review of your .ora files, some Windows NT examples follow:

Example: The SQLNET.ORA File

NAMES.DEFAULT_DOMAIN = WORLD
WALLET_LOCATION = 

(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:\WINNT\Profiles\DATABASES\oe)
)
)

SQLNET_AUTHENTICATION_SERVICES = (TCPS,NTS) SSL_CLIENT_AUTHENTICATION = TRUE SSL_VERSION = 0 SQLNET.CRYPTO_SEED = 4fhfquweotcadsfdsafjkdsfqp5f201p45mxskdlfdasf


Note:

The wallet location matches the one you entered in Oracle Net Manager for the database. 


Example: The TNSNAMES.ORA File:

OESSL.WORLD =

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCPS) (HOST = host1) (PORT = 5000)
)
(CONNECT_DATA =
(SERVICE_NAME = finance)
)
(SECURITY = (AUTHENTICATION_SERVICE = TCPS)
(SSL_SERVER_CERT_DN="cn=finance,cn=OracleContext,o=Oracle,c=us")
)
)

OE.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP) (HOST = host1) (PORT = 1521)
)
(CONNECT_DATA =
(SERVICE_NAME = oe.world)
)
)
Example: The LISTENER.ORA File:

WALLET_LOCATION =

(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:\WINNT\Profiles\DATABASES\oe)
)
)

LISTENER =

(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP) (host = HOST1) (port = 1521)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS) (HOST = host1) (PORT = 5000))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = oe.world)
(ORACLE_HOME = D:\Oracle\Ora81)
(SID_NAME = oe)
)
)

SSL_CLIENT_AUTHENTICATION = FALSE

Task 5: Create the Wallet and Start the Listener

To create and configure the database wallet:

Step 1: Create a Database Wallet

To create a database wallet:

  1. Create a directory for the wallet for the location you specified in Step 1.

  2. Run Oracle Wallet Manager to create a new wallet for the database:

    • Windows NT: Select Start-->Programs-->Oracle-OracleHome81-->Network Administration-->Wallet Manager

    • UNIX: Enter owm at the command line.

  3. Select New from the wallet menu. Do not create a new default directory when asked--this is for user wallets. During certificate request creation, type the distinguished name (DN) of the database exactly:

     cn=database_name,cn=OracleContext,<location of Oraclecontext>
    

It is found in the initialization parameter file, in the parameter

RDBMS_SERVER_DN.


Note:

The Distinguished Name is case-sensitive. 



Note:

cn=OracleContext must be included in the DN immediately after the simple database name. 


  1. Send the certificate request to your certificate authority (CA).

  2. Add the CA trusted certificate to the database wallet. The CA trusted certificate is sometimes called a root key certificate.

  3. Add database certificate to the database wallet.

Step 2: Enable Autologin

For users to access the database using SSL two-way mutual authentication with an LDAP compliant directory server, Autologin must be enabled for the database wallet, and the listener must be running. To enable database Autologin and run the listener:

  1. Using Oracle Wallet Manager, select the Autologin check box under the Wallet menu to enable Autologin and to be able to start the listener on the database.

  2. Save the wallet to the directory you set up when you completed Step 1 . For verification, check that there is a cwallet.sso file in the wallet directory.

  3. Stop the listener. The listener must read the database's open wallet, so the database must log on before the listener can be started.

    To stop the listener, enter the following at the command line:

  4. Change Oracle Services Login (Windows NT only). Because the database and the listener services are running as system (with few privileges in NT), and the wallets are opened under your user name, the database and the listener are not able to read the wallet. In order for them to read their wallet, they must be changed to log on as the user who enabled Autologin for the database wallet.

    To change the Oracle Services login:

    • Shut down the database by opening the Services control panel and selecting OracleService <database name>; choose the Stop button; choose Yes to confirm.

    • Choose the Startup button.

    • In the Log On As region of the Service Window (Figure 15-7):

      Figure 15-7 The Oracle Service Window


      Text description of les17_79.gif follows.
      Text description of the illustration les17_79.gif

    Choose This Account and enter <domain>\< NT user login> for the user who enabled Autologin for the database wallet; alternatively, you can choose the browse button (...) to select from a list; enter your password in the Password and Confirm Password fields; choose OK.

    • Choose Start to start up the Oracle database.

    • Repeat these steps (starting with Choose the Startup Button) for Oracle-<ORACLE_HOME_NAME>->TNSListener; do not start the listener service.

    • Close the Services window.

Step 3: Start the Listener

To start the listener, enter the following at the command line:

Step 4: Perform Database Logout for Security (optional)


Important:

If the database is to be shut down for an extended period of time, disable use of the database wallet for security purposes. 


To logout from the database:

  1. Stop the listener.

  2. Using Oracle Wallet Manager, disable Autologin by clearing the Autologin check box.

  3. Restart the listener.

Task 6: Verify Database Installation

To verify that the database has been successfully configured:

  1. Verify that there is a cwallet.sso file located in the database wallet directory. If not, Autologin was not successfully enabled. If this happens, go back to the Oracle Wallet Manager, open the wallet, select the Autologin check box, and save the wallet.

  2. Verify that there is an ldap.ora file located in

    $ORACLE_HOME/network/admin

    If there is no ldap.ora file, NetCA failed to configure directory access. Verify that the ORACLE_HOME is set and rerun NetCA.

  3. Use the directory administration tool to verify that a database entry and subtree exist under the Oracle Context you specified when you ran NetCA. If you do not find the database entry, verify that the directory is running, the Oracle Context is set up, and the ldap.ora file exists and is correct. Then register the database again, using DBCA.

Task 7: Create Global Schemas and Roles

Although this task can be completed using Oracle Enterprise Manager, the following examples use SQL*Plus directly.

To create global schemas and roles:

Step 1: Create a Global Schema

Using SQL*Plus, create a shared schema (called Guest, for example) for enterprise users by entering:

CREATE USER guest IDENTIFIED GLOBALLY AS ''

Note the two single quotation marks with no space between them at the end of the line. If you enter a specific distinguished name (DN) between the quotation marks, only that user is able to connect to that schema, and it is not shared.

Step 2: Grant a Create Session Privilege

Users connecting to this schema require a CREATE SESSION privilege. You can grant the CREATE SESSION privilege either to the global schema, or to a global role which you grant to specific users though an enterprise role.

Step 3: Create Global Roles

Create global roles for the database to hold relevant privileges. These roles are associated with enterprise roles to be created later. Enterprise roles are allocated to users.

For example:

CREATE ROLE emprole IDENTIFIED GLOBALLY;
CREATE ROLE custrole IDENTIFIED GLOBALLY;

Step 4: Associate Privileges

Associate privileges with the new global roles.

For example:

GRANT select ON products TO custrole, emprole;


Note:

Oracle Advanced Security can be configured to authenticate enterprise users using either SSL or password authentication.

 

Part III: Final Configuration for SSL Authentication

This section describes the final steps to complete the installation and configuration of Enterprise User Security for SSL authentication. The required tasks (numbered in sequence from Part II) follow:


Note:

The configuration tasks for Enterprise User Security are numbered consecutively, and continue in sequence from Part II. This part includes Task 8 through Task 11.

 

Task 8: Configure Database Clients

Once you have installed Oracle9i clients, configure Oracle Net on the clients by using Oracle Net Manager. You may complete this step during or after installation of Oracle9i Release 9.0.1.

Because you will be using an LDAP directory service for enterprise security, you may also want to use Oracle Net directory naming. Oracle Net directory naming lets the client connect to the database using the database entry registered with the directory by Oracle Database Configuration Assistant. Alternatively, you can use one of the other Oracle Net naming methods, such as local naming (tnsnames.ora file), to configure a net service name for the database.

To configure database clients:

  1. Use Oracle Net Manager to configure SSL on UNIX; configure an SSL net service name, as described by Step 2.

  2. Configure the client profile. Do not enter a wallet location when configuring a client profile. The lack of a specific wallet location indicates that SSL should find the default wallet for the current operating system user. In this way, the sqlnet.ora file can be shared by enterprise users, providing easier administration and deployment. Each user whose wallet is in a non-default wallet location must have a separate sqlnet.ora file that contains that user's wallet location.


    Note:

    If you do not install clients, and ORACLE_HOME is set to a database server ORACLE_HOME, and that ORACLE_HOME has a sqlnet.ora file with a wallet location, you must create at least one new TNS_ADMIN directory with a sqlnet.ora file--with no wallet location. This ensures that SSL uses the default location of the wallet for the operating system user. 


Default Wallet Directories for the User Wallets:

Task 9: Configure an Enterprise Domain

Oracle Enterprise Security Manager is installed automatically as part of the Oracle9i installation, and is used to configure an enterprise domain. Note that the Oracle default domain is created by default when the Oracle Context is created in the directory, and databases are automatically added as members of that domain when they are registered by DBCA. Table 15-3 lists the steps required to set up an enterprise domain, and cross-references related instructions. If you are using the Oracle default domain, you can skip steps 1 and 6.

Table 15-3 Setting up an Enterprise Domain
Step  Related Instructions 

1. Create an enterprise domain

Administering Enterprise Domains

2. (Optional) Add domain administrators for the domain. 

Chapter 18, Using Oracle Enterprise Security Manager

3. Enable or disable enterprise user current user database links between member databases. 

Administering Enterprise Domains

4. Select authentication type for the domain. Must be (i) SSL only, or (ii) both password and SSL. 

 

5. Configure user-schema mappings for the domain; alternatively, you can configure database-specific user-schema mappings. 

Chapter 18, Using Oracle Enterprise Security Manager. 

6. Create enterprise roles in the domain. 

Administering Enterprise Roles

7. Enroll the database as a member of the desired enterprise domain. 

Defining Database Membership of an Enterprise Domain

 

8. Create global roles on the databases. The SQL*Plus command is:

CREATE ROLE rolename IDENTIFIED GLOBALLY 

 

9. Assign global roles to each enterprise role. 

Administering Enterprise Roles 

Task 10: Configure Enterprise Users

To create a new enterprise user:

Step 1: Add a New Enterprise User to the Directory

Any directory user can be an enterprise user. You can add users to the directory by using one of the following tools:

If you elect to populate the directory with users before using Oracle Enterprise Security Manager, note that user entries in the directory must have the orcluser objectclass.

If Oracle Enterprise Security Manager is used to prepare existing user entries for Oracle use (provision), the orcluser objectclass is added to the existing entry.

See Also:

  • Creating New Enterprise Users for instructions about adding new enterprise users to the directory by using Oracle Enterprise Security Manager

  • Documentation for your directory service for information about using the directory administration tools

 

Step 2: Create a User Wallet

To create a user wallet, See: Chapter 16, Using Oracle Wallet Manager.


Note:

Store the user wallet in the default user wallet location, or in the directory (if it is stored only in the directory, it must be downloaded to the client before use):

  • Windows NT: x:\winnt\profiles\<os user>\ORACLE\WALLETS

  • UNIX: /etc/ORACLE/WALLETS/<os user>

 

Step 3: Authorize the User

You can do either or both of the following:

Step 4: Map the User to a Schema

If you are using a shared schema, use Oracle Enterprise Security Manager to map the user to a schema. You can choose either of the following mapping options:

For example:

If you are creating a domain mapping from three users to a shared schema called guest, and you have more than one database in the domain, each database must have a shared schema (called guest) that all three users can access. These three users cannot connect to any database in the domain that does not have a shared schema called guest.

Alternatively, you can create a mapping under a particular database. If you do it this way, the mapping applies only to that database, and not to all databases in the domain. If you have mappings in both places, the database mapping takes precedence.

See Also:

 

Task 11: Log In as an Enterprise User

To log in as an Enterprise User:

Step 1: Download the User Wallet

To download a user wallet:

  1. Log in to the operating system as the appropriate user.

  2. Start Oracle Enterprise Login Assistant.

  3. Download the wallet.

Step 2: Enable Autologin

The enterprise user must enable Autologin for the user wallet (created in Task 10) in order to log in to the database. Enabling Autologin generates a single sign-on file and enables authentication to the SSL adapter.

To enable Autologin, use Oracle Enterprise Login Assistant to select the Autologin box.

See Also:

Chapter 17, Using Oracle Enterprise Login Assistant, for the following:

  • To download a user wallet.

  • To enable Autologin.

 

Step 3: Connect to the Database

  1. Set ORACLE_HOME.

    If the ORACLE_HOME is set to a server ORACLE_HOME, you must set the TNS_ADMIN environment variable to address the directory where you placed the sqlnet.ora file--that you created in Task 8: Configure Database Clients.

    If you have a separate client ORACLE_HOME, you do not need to set the TNS_ADMIN environment variable.

  2. Launch SQL*Plus and enter:

    sqlplus/@connect_identifier
    
    
    

where connect_identifier is the net service name you set up in Task 8: Configure Database Clients.

If you are successful, the system responds Connected to:...; this is the principal confirmation of a successful connection and setup. If an error message is displayed, see: Part IV: Final Configuration for Password Authentication.

If you do connect successfully, check that the appropriate global roles were retrieved from the directory by entering:

select * from session_roles

In the Oracle Enterprise Login Assistant, select Autologin > Logout to disable authentication with the SSL adapter.

See Also:

Chapter 17, Using Oracle Enterprise Login Assistant, for instructions about using Oracle Enterprise Login Assistant 


Note:

You have competed the configuration of Enterprise User Security for SSL authentication; do not proceed to Section IV, which describes the configuration of password authentication only. 


Part IV: Final Configuration for Password Authentication

This section describes how to set up password authentication for enterprise users. The required tasks (numbered in sequence from Part III) follow:


Note:

The configuration tasks for Enterprise User Security are numbered consecutively, and continue in sequence from Part III. This part includes Task 12 through Task 16.

 

Task 12: Complete Initial Setup Steps

In this task you complete the initial Enterprise User Security setup steps, including the following:

Task 13: Configure the Enterprise Domain

Configure the enterprise domain for password authentication.

Oracle Enterprise Security Manager launches from the Oracle Enterprise Manager console. Oracle Advanced Security uses it for managing enterprise domains, users, roles, and databases. It can be used to configure an enterprise domain. Note that the Oracle default domain is created by default when the Oracle Context is created in the directory, and databases are automatically added as members of that domain when they are registered by DBCA (Figure 15-8).

Figure 15-8 Enterprise Security Manager: Oracle Domain Properties Window


Text description of esm_pagu2.gif follows.
Text description of the illustration esm_pagu2.gif

Table 15-4 lists the steps required to set up an enterprise domain, and cross-references related instructions. If you are using the Oracle default domain, you can skip step 1 and step 4.

Table 15-4 Setting up an Enterprise Domain
Step  Related Instructions 

1. Create an enterprise domain. 

Administering Enterprise Domains

2. (Optional) Add domain administrators for the domain. 

Chapter 18, Using Oracle Enterprise Security Manager

3. Enable or disable current user database links between member databases. 

Administering Enterprise Domains

4. Configure user schema mappings for the domain or database. 

User-Schema Mappings

5. Create enterprise roles in the domain. 

Administering Enterprise Roles

6. Use Oracle Enterprise Security Manager to make the database a member of the desired enterprise domain. 

Defining Database Membership of an Enterprise Domain

7. Create global roles on the databases. The SQL*Plus command is:

CREATE ROLE rolename IDENTIFIED GLOBALLY 

 

8. Assign global role(s) to each enterprise role. 

Administering Enterprise Roles

9. Choose the Enterprise Domain Administration tab; select Oracle Wallet (SSL) And Password, or Password Only from the Enterprise User Authentication drop-down menu. 

See: Figure 15-8

Task 14: Configure Oracle Context

Step 1: Configure User Search Bases

Choose the General tab of the Oracle Context Properties Window (Figure 15-9). In the Common User Search Bases region, enter the user search bases under which the databases are to search for user entries. A user search base is the root of a subtree under which you have stored your enterprise user entries in the directory.

Step 2: Configure UserID Attribute

Choose the General tab (Figure 15-9). In the Context Attribute Settings region, enter the name of the user entry attribute that holds the UserID--that uniquely identifies each enterprise user. The default UserID attribute is the common name (cn)attribute defined in the LDAP directory, but can be changed by the Security Administrator.


Example:

  • Assume that all enterprise users in your organization can be uniquely identified by their employeeid.

  • If employeeid values are stored in an attribute called eid, you enter eid in the UserID field.

 

Step 3: Configure Administrators

Choose the Administrators tab (Figure 15-9). Set up all necessary administrators for this Oracle Context, if you haven't already done so.

Step 4: Configure Password-Accessible Domains

In order to accept password-authenticated connections, a database must belong to a domain in the Password Accessible Domains group--and the database access permissions on the user search base must be enabled. This enables the database to read the user's login credentials in the directory.

In a selected Oracle9i Oracle Context, add the domain to the Password-Accessible Domains group. Choose Add and select one of the current enterprise domains from the resulting dialog. To remove an enterprise domain from the group, select it in the Accessible Domains window and choose Remove.

See Also:

 

Task 15: Configure Enterprise Users

Step 1: Create Enterprise Users

Any directory user can be an enterprise user. You can add users to the directory by using one of the following tools:

If you elect to populate the directory with users before using Oracle Enterprise Security Manager, note that user entries must have the orcluser objectclass.

See Also:

  • Administering Enterprise Users for instructions about adding new enterprise users to the directory by using Oracle Enterprise Security Manager

  • Documentation for your directory service for information about using the directory administration tools

 

Step 2: Authorize Users

You can do any of the following:

If you are using a shared schema, use Oracle Enterprise Security Manager to map the user to a schema. You can choose either of the following mapping options:

If you are creating a domain mapping from three users to a shared schema called guest, and you have more than one database in the domain, each database must have a shared schema (called guest) that all three users can access. These three users cannot connect to any database in the domain that does not have a shared schema called guest.

Alternatively, you can create a mapping under a particular database. If you do it this way, the mapping applies only to that database, and not to all databases in the domain. If you have mappings in both places, the database mapping takes precedence.

See Also:

 

Step 3: Create Enterprise User Ids

For each user, define a UserID that is unique across the enterprise (Figure 15-10). The default UserID is the value in the common name (cn) attribute defined in the LDAP directory.

Choose a UserID that conforms to the following:

For example, in Figure 15-10 the UserID is hscortea.

See Also:

 

Step 4: Create Enterprise User Passwords

Choose the Password tab of the Create User Window (Figure 15-10) to create a password for each enterprise user. Oracle Enterprise Security Manager automatically creates the associated password verifiers and stores them in the orclPassword attribute of the user entry (Figure 15-11).


Note:

You can change use Oracle Enterprise Login Assistant to change passwords at any time. 


See Also:

Defining a New Enterprise User Password 

Figure 15-11 Enterprise Security Manager: User Attributes Window


Text description of esu0009.gif follows.
Text description of the illustration esu0009.gif

Step 5: Enable Database Access

The user entry must reside in a directory subtree of users that has been enabled for Oracle database access. You can set Oracle Database Access permissions for a selected subtree--to let databases within a domain in the Password-Accessible Domains group read the user's login credentials.

To enable database access:

On a selected subtree of directory users, set Oracle Database Access permissions to permit databases in the Password-Accessible Domains group to access the user's database login credentials:

Task 16: Connect as Password Authenticated Enterprise User

For an enterprise user whose UserID is hscortea (Figure 15-11) and whose password is welcome, enter the following to connect using sqlplus:

SQL>connect hscortea/welcome@<TNS Service Name>

The database authenticates the enterprise user (hscortea) by verifying the username/password combination against the directory entry associated with this user. If successful, the connection to the database is established.


Note:

You have completed the configuration of Enterprise User Security for password authentication. 


Part V: TroubleShooting Enterprise User Login

This section describes potential problems and associated corrective actions.

No Global Roles

The following tips help you verify that the user has been allocated the correct global roles upon database login and, if necessary, help determine the cause of failure:

  1. Check for the existence of global roles. Enter the following, including the semi-colon (;):

    SELECT * FROM session_roles;
    
    
  2. If there are no roles, one of the following applies:

    • The roles were not allocated to an enterprise role in Oracle Enterprise Security Manager.

    • The enterprise role was not assigned to the user in Oracle Enterprise Security Manager.

    • The database and Oracle Enterprise Security Manager have different values for the database domain; shut down and restart the database to update the database internal value.

    • Your database does not have proper permissions in the directory to see the roles. These permissions are created automatically, so it is possible that the distinguished name (DN) in the database certificate does not match the distinguished name registered for the database. In this case, the directory does not recognize the database as the proper entity, and denies access.

      Do an LDAP search to display the appropriate roles by entering the following:

      ldapsearch -h <directory hostname> P <SSL directory port number> -U 3 
      -W "file:<walletpath>" -P <database wallet password>
      -b "cn=oracleDBSecurity, cn=Products, cn=OracleContext, <admin context>"
      "objectclass=orclDBenterpriseRole" 
      
      

      If you do not see the roles, the database is not in the correct domain--or there is an incorrect distinguished name (DN) in the database wallet certificate. If the database appears to be receiving information from the wrong domain, try restarting the database to update its internal domain membership information.

TNS Lost Connection

This error may indicate that you attempted to configure a domestic cipher suite. Run Oracle Net Manager again, and be sure that you choose the Show Domestic Cipher Suites button.

ORA-1004: Default username feature not supported

This error indicates that the connection was not over SSL. Look at the tnsnames.ora file to verify the protocol value of the net service name that you are using. The value must be TCPS and not TCP.

ORA-1017: Invalid username/password

The distinguished name that the wallet uses to connect does not match the DN in the CREATE USER statement for any schema in the database, and it does not match the DN in any relevant mapping.

  1. Check the DN of the user in the mapping created using Oracle Enterprise Security Manager.

  2. Also check that your directory is actually listening properly for incoming SSL connections. From a command prompt, enter:

    ldapbind -h <directory hostname> -p <directory SSL port number> -U 3 -W 
    "file:[database wallet path]" -P [database wallet password]
    
    

    Bind successful should be displayed. If the bind fails, try restarting the SSL instance of your directory.

    Then try the bind again.

    If it still doesn't work, carefully check the wallet location in the configuration set via Oracle Directory Manager. Make sure that it is set to the proper path name.


    Important:

    You must get this ldapbind to work. If it does not work, do not continue. 


  3. If the prior steps do not work, circumvent the user-schema mapping step by altering the user guest (for example) to be a non-shared schema.

    In sqlplus as system/manager@database_name, enter:

    alter user guest identified globally as <user DN>;
    
    

    and then try the connect /@connect_identifier again. If this succeeds, the problem is associated with the mapping of the user to the schema; use Oracle Enterprise Security Manager to check that mapping in the directory.

    If this still fails, the user wallet DN does not match the DN you specified in the alter user statement. Check the user wallet.

    Alter this user back to a shared schema by entering:

    alter user guest identified globally as '';
    

ORA-12560: Protocol adapter error

This error usually means that something is wrong with the wallet. Look in the sqlnet.log file in the current operating system directory for more information. Also, on Windows NT, this can mean that the Oracle service has stopped; check the Services control panel.

Decryption of Encrypted Private Key Fails

Applies to Window NT only.

This error occurs when you attempt to open a wallet that you are not permitted to open.

For Example:

ORA-28030

This is a catch-all Oracle9i error that indicates something unanticipated went wrong with the RDBMS to directory LDAP query. It is possible that SSL has failed on the directory--the database and directory wallets may not share a trusted certificate. Try to bind to the directory over SSL using the database wallet.

See Also:

Error ORA-1017: Invalid username/password 

Tracing

You can use tracing to help debug. This is appropriate if the ldapbind (See: ORA-1017: Invalid username/password) fails, indicating that the directory's SSL instance is not working properly.

Oracle Internet Directory

If you are using Oracle Internet Directory as your ldap directory, use the following tracing procedure:

  1. Turn on debugging flags in Oracle Internet Directory.


    Note:

    See Also: Oracle Internet Directory Administrator's Guide 


  2. Start up the SSL Oracle Internet Directory instance in full debug mode. Log files will be written to $ORACLE_HOME\ldap\log. Look at the file with your SSL directory instance number and an s in its filename. The log files without the s are for the monitor process (oidmon) and the dispatcher. Look at the end of the log file immediately after you have tried your connect /@connect_identifier. One thing to look for is the string Distinguished Name to ensure that it matches the DN of your user.

  3. Turn off Oracle Internet Directory tracing.


Go to previous page Go to next page
Oracle
Copyright © 1996-2001, Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Book List
Go To Table Of Contents
Contents
Go To Index
Index

Master Index

Feedback