Oracle Advanced Security Administrator's Guide
Release 8.1.6

A76932-01

Library

Product

Contents

Index

Prev Next

17
Managing Enterprise User Security

Enterprise user security provides single sign-on functionality in a client-server environment.

This chapter covers topics in the following sections:

Overview of Enterprise User Security

Administrators today must manage complex user information, keeping it current and secure. These tasks become all the more challenging with increased use of technology and a high user turnover in enterprises. For example, in a typical enterprise, each user can have multiple accounts on different databases. This means too many passwords for users to remember, and too many accounts for administrators 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 change the same day in order to guard against misuse of that user's old or unused accounts and privileges. However, in a large enterprise, with user accounts and passwords distributed over multiple databases, an administrator may not be able make all the changes as expeditiously as good security requires.

Enterprise user security management, introduced in Oracle8i Release 8.1.6, addresses these user, administration, and security challenges by centralizing storage and management of user-related information in an LDAP-compliant directory service. Now, when an employee changes jobs, the administrator needs to modify information in only one location, namely, the directory. This centralization lowers the cost of administration and makes the enterprise more secure.

Oracle8i enterprise user security provides single sign-on to Oracle8i using interoperable X.509 v3 certificates over Secure Sockets Layer (SSL) v3. It supports the following LDAP-compliant directory services:

It also provides a tool, Oracle Enterprise Security Manager, to create user entries in the directory.

This chapter discusses important concepts related to enterprise user security management in the following sections:

About Directories

A directory is a way of organizing information so that you can find it easily. It lists objects--for example, people, books in a library, merchandise in a department store--and gives details about each one. A telephone book is a familiar enter of directory, a card catalog in a library is another, and a department store catalog still another.

In a computerized environment, a directory is a specialized database that stores collections of information about objects. The information in such a directory might represent any resources that require management--for example, employee names, titles, and security credentials, information about e-commerce partners, or about shared network resources such as conference rooms and printers.

Some of the key concepts for understanding directories are discussed in the following sections:

Entries

In a directory, each collection of information about an object is called an entry. Just as a typical telephone directory includes entries for people, an online directory might include entries for employees, conference rooms, e-commerce partners, or shared network resources such as printers.

Distinguished Names and Directory Information Trees

Each entry in a directory is uniquely identified by a distinguished name (DN). The distinguished name tells you exactly where the entry resides in the directory's hierarchy, called a Directory Information Tree (DIT).

To understand the relation between a distinguished name and a Directory Information Tree look at Figure 17-1.

Figure 17-1 A Directory Information Tree


The DIT in Figure 17-1 is structured along geographical and organizational lines. The branch on the right represents the entry for Anne Smith who works in the organization (o) Acme, in an organizational unit (ou) named Server Development, in the country (c) of Great Britain (uk).

The DN for this "Anne Smith" entry is:

cn=Anne Smith,ou=Server Development,c=uk,o=acme.

Note that the conventional format of a distinguished name places the lowest DIT component at the left, then follows it with the next highest component, thus moving progressively up to the root.

Naming Contexts

A directory divides its information into units called directory naming contexts. A directory naming context is a subtree that resides entirely on one server. It must be contiguous, that is, it must begin at an entry that serves as the top of the subtree, and extend downward to either leaf entries or references to subordinate naming contexts. It can range in size from a single entry to the entire DIT.

With Oracle8i Release 8.1.6, as we will see later in this chapter, you choose one or more naming contexts to contain Oracle enterprise information. We call these administrative contexts, and in each one, a container may be created to hold Oracle enterprise information. This container is called an Oracle Context.

Authorization and Access Control

Authorization is the process of ensuring that a user reads or updates only the information for which that user has privileges. When directory operations are attempted within a directory session, the directory server ensures that the user has the required permissions to perform those operations. Otherwise, the operation is disallowed. Through this mechanism, the directory server protects directory data from unauthorized operations by directory users. This mechanism is called access control.

Access control policies are captured in Access Control Lists (ACLs). Typically, a given ACL is associated with each directory object and governs the access policies for that object.

ACLs specify the following:

Elements of Enterprise User Security Management

There are a few main types of directory entries that relate to enterprise user security management, and these are discussed in the following sections:

Enterprise Users

An enterprise user one that is defined and managed in a directory. Each enterprise user has a unique identity across an enterprise.

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. A global role is managed in a directory, but its privileges are contained within a single database. An enterprise role is thus a container of global roles. For example, the enterprise role CLERK could contain the global role HRCLERK with its unique privileges on the Human Resources database, and the ANALYST role with its unique privileges on the Payroll database.

An enterprise role can be granted to or revoked from one or more enterprise users. For example, you could grant the enterprise role CLERK to a number of enterprise users who hold the same job. This information is protected in the directory, and only you, as the administrator, can manage users and grant and revoke their roles.

A user can be granted local roles and privileges in a database in addition to enterprise roles.


Note:

The database obtains a user's global roles when the user logs in. If you change a user's global roles, 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, allocates enterprise roles to users and manages enterprise security.

Oracle Context

An Oracle Context (cn=OracleContext) is a special entry in the directory that contains various Oracle entries to support directory naming and enterprise user security. An Oracle Context contains three administrative groups, a products subtree, and, possibly, server and Net8 objects.

Administrative Context

The administrative context is the location for an Oracle Context. It can be any directory entry. During directory access configuration, which is completed with the Net8 Configuration Assistant during or after installation, you select an administrative context.

An administrative context, an Oracle Context, and its subtrees are shown in Figure 17-2.

Figure 17-2 An Oracle Context




WARNING:

Do not modify the ACLs for the objects contained in an Oracle Context. Doing so breaks the security configuration for these objects. 


See Also:

Chapter 20 for a full discussion of Oracle Enterprise Security Manager. 

Each of the three administrative groups is created with its associated ACL. The user who creates the Oracle Context with the Net8 Configuration Assistant automatically becomes the first member of these groups. The three administrative groups in an Oracle Context are:

Administrative Group  Description 

OracleNetAdmins 

Members of the OracleNetAdmins group (cn=OracleNetAdmins,cn=OracleContext) have create, modify, and read access to Net8 objects and attributes. The Net8 Configuration Assistant establishes these access rights for this group 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 or the OracleNetAdmins group. 

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.

The Net8 Configuration Assistant 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 Oracle Context. 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

The Net8 Configuration Assistant 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. 

See Also:

Net8 Administrator's Guide for instructions on adding members to the OracleNetAdmins group 

In addition to the three administrative groups, an Oracle Context may also include other types of objects, for example:

Object  Description 

Database server object 

A database server object (represented as cn=server1 in Figure 17-2) contains information about a database server. It is created by the Oracle Database Configuration Assistant during the database installation and can be added later by members of the OracleDBCreators group by using Oracle Enterprise Security Manager. A database server object is the parent of database level mapping objects that contain mapping information between full or partial DNs and Oracle shared schema names. Database level mapping objects are created by the database administrator by using Oracle Enterprise Security Manager. 

Net service name object 

Net service name objects can be created during the database installation by using the Net8 Assistant. The can be created later by members of the OracleNetAdmins group. 

The Oracle Context also contains the database security subtree under the cn=products and cn=OracleDBSecurity container objects. This subtree contains enterprise domains, which are the groups of database servers and enterprise roles.

During database installation, a default enterprise domain (cn=OracleDefaultDomain) is established. The domain administrator can later add additional enterprise domains (represented in Figure 17-3 as cn=Domain1) by using Oracle Enterprise Security Manager.


WARNING:

Do not remove the default enterprise domain (cn=OracleDefaultDomain). It is required when registering a database by using the Oracle Database Configuration Assistant. 


See Also:

"Creating an Enterprise Domain"

Figure 17-3 An Enterprise Domain


An enterprise domain subtree includes the following objects:

Enterprise role object 

Contains information about global roles for each server and enterprise roles for the domain. These are created and managed by the domain administrator by using Oracle Enterprise Security Manager.

See Also: Creating an Enterprise Role within an Enterprise Domain

Mapping objects 

Each mapping object contains mapping information between a full or partial DN and an Oracle database user name. Mapping objects are created by the domain administrator for a particular domain. Mapping objects, as we saw earlier, also reside under server objects and are created by the database administrator for a particular database.

See Also: "Mapping an Enterprise User to a Shared Schema"

Architecture of Enterprise User Security Management

Refer to Figure 17-4 to see the relationships among the various components of this product.

Figure 17-4 Overview of Enterprise User Security


How Enterprise User Security Management Works

This section summarizes the interactions between the various components in enterprise user security management. In this summary, we are assuming that the user already has a wallet and that the user's authentication to the database takes place by using SSL.

The enterprise user security management process looks like this:

  1. The directory or other administrator, using Net8 Configuration Assistant, selects the administrative context in the directory and creates an Oracle Context.

  2. A member of the OracleDBCreators group, using the Oracle Database Configuration Assistant, registers the database with the directory.

  3. An administrator, using Oracle Enterprise Security Manager, sets up enterprise users and enterprise roles in the directory and domains.

  4. An end user seeks to log in to the database.

  5. The database retrieves from the directory the user's enterprise roles, and authorizes any global roles that they contain that apply to that database.

User/Schema Separation

In most cases, users do not need their own accounts or schemas in a database. Rather, they typically need to access only application schemas. For example, suppose that users John, Firuzeh, and Jane need to access the Payroll schema on the Finance database. They do not need to create objects in the database, and therefore do not need their own schemas. They merely need access to the Payroll application.

Oracle8i Release 8.1.6 supports mapping many enterprise users stored in a directory to shared schema on an individual database. This separation of users from schemas reduces the cost of user administration by reducing the number of user accounts. It means that you do not need to create an account for a user--that is, a user schema--in multiple databases, in addition to creating the user in the directory. Instead, you can create a user in one location, namely, the directory, and "point" the user to a shared schema that other enterprise users can also access. For example, if John, Firuzeh and Jane 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 need to create only a single schema on each database--let's call them SALES_APPLICATION and FINANCE_APPLICATION respectively--that all three users can access.

Setting Up User/Schema Separation

To configure User/Schema Separation, the local administrator or privileged user of a database needs to create at least one database schema in the database. Enterprise users can then be mapped to this schema.

Consider the process in the following example in which an enterprise security administrator creates a shared schema, then maps users to it.

  1. The enterprise security administrator creates a shared schema called EMPLOYEE and the global role HRMANAGER on the HR database.

  2. The administrator then uses Oracle Enterprise Security Manager to create and manage enterprise users and enterprise roles in the directory. For example, the administrator creates an enterprise user Jane and an enterprise role named MANAGER. The administrator then assigns the global role HRMANAGER to the enterprise role MANAGER.

  3. The administrator then assigns enterprise roles to enterprise users in the directory. For example, the administrator assigns the enterprise role MANAGER to Jane.

  4. The administrator then uses Oracle Enterprise Security Manager to map the user Jane in the directory to the shared schema EMPLOYEE on the HR database.

Now, when Jane 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 Jane and Scott automatically use the EMPLOYEE schema when connecting to the HR database, but each may get a different role.

User/Schema Separation Functionality and SSL

User/Schema Separation functionality relies on SSL for authentication to the database. SSL authentication occurs as follows:

  1. Prior to connecting to a database, an enterprise user opens his or her wallet by providing a password.

  2. When connecting, Oracle Advanced Security performs an SSL handshake with the database, during which it passes the user's certificate to the server. This handshake authenticates the user to the server.

  3. The database extracts the user's DN from the user's certificate. It then looks up the DN in the database.

    If the database does not find the DN locally, it looks up the appropriate DN mapping in the directory. This DN mapping object in the directory associates a user to a database schema. The database may find:

    • Full DN (entry-level) mapping

      This method associates the DN of a single directory user with a particular schema on a database. It results in one mapping entry per user.

      When using full DN mapping, each enterprise user can be mapped either to a unique schema, or to a shared schema.

    • Partial DN (subtree-level) mapping

      This method allows multiple enterprise users sharing part of their DN to access the same shared schema. This method is useful if multiple enterprise users are already grouped under some common root in the directory tree. The subtree that these users share can be mapped to a shared schema on a database. For example, you can map all enterprise users in the subtree for the engineering division to one shared schema, BUG_APPLICATION, on the bug database.

    • No mapping at all

  4. If the database does not find either the DN locally or an appropriate DN mapping object in the directory, it refuses the user's connection to the database.

    If the database does find either the DN locally or the appropriate DN mapping object in the directory, the database allows the user to log on.

  5. The database then maps the user to the associated schema.

    For example, suppose that Jane is trying to connect to the HR database. Suppose, further, that the HR database does not find Jane's DN. The HR database then looks up the Jane's DN in the directory. The directory has a mapping of Jane to the shared schema EMPLOYEE and returns this schema. The database now logs Jane in and points her to the EMPLOYEE schema.

  6. The database retrieves from the directory the global roles for this database for this user.

    The database also retrieves from its own tables any local roles and privileges associated with the database schema to which the user was mapped.

    The database uses both the global and the local roles to determine the information that the user can access.


    Note:

    You can configure the database so that it uses local roles only and does not look up global roles in the directory. You do this by not registering the database in the directory by using the Oracle Database Configuration Assistant. If this configuration is set, then the database uses only local roles to determine what the user can access. This allows customers to use SSL for client authentication, without having to manage user privileges centrally. This configuration does not work with mapped users and shared schemas. 


    See Also:

    • Chapter 10 for information on SSL

    • Chapter 18 for information on wallets and Oracle tools for managing them

     

Continuing our example, suppose that the enterprise role MANAGER contains the global roles CLERK on the Payroll database and ANALYST on the HR database. When Jane, who has the enterprise role MANAGER, connects to the HR database, she uses the schema EMPLOYEE on that database. Her privileges on that database are determined by:

When she connects to the Payroll database, her privileges are determined by:

Creating a Shared Schema

The syntax for creating a shared schema is:

CREATE USER application_user 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

To load entries one at a time, you can use Oracle Enterprise Security Manager. To load large numbers of entries, use other LDAP processes such as the Oracle Internet Directory bulkload tool.

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, contained in a user's X.509 certificate, to a database schema that the user will access. You create a mapping object by using Oracle Enterprise Security Manager. This mapping can be either:

When determining the schema to which it should connect the user, the database uses the following precedence rules:

  1. It first looks for that schema locally.

  2. If it does not find it, then it looks in the directory. Within the directory, it first looks under the server object, first for a full DN mapping, then for a partial DN mapping.

  3. If it does not find a mapping object under the server object, then it looks under the domain object, first for a full DN mapping, then for a partial DN mapping.

  4. If it does not find a mapping object in the domain object, then the database refuses the connection.

If there are some privileges that need to be granted to a certain group of users, you can do this by granting roles and privileges to a database schema. Everyone sharing such schema gets these local roles and local privileges in addition to their personal enterprise roles. However, you must exercise caution when doing this, because everyone who points to this shared schema can exercise the privileges assigned to this schema.

Summary

Current User Database Links

Current user database links are an Oracle Advanced Security feature.

Oracle8i supports a particular type of database link, called a current user database link. This link allows you to connect to a second database as another user, with that user's privileges. At the same time, it does not require that user's credentials be stored in the database link definition.

For example, a current user database link allows Jane, a user of the Accounts Payable database, to access the Human Resources database by connecting as Scott, and using Scott's credentials.

For Jane 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. Jane, however, can be a user identified in one of three ways:

To create Scott as a global user in both the Accounts Payable and Human Resources databases, you would use the following command in each database:

CREATE USER Scott IDENTIFIED GLOBALLY AS 'CN=Scott,OU=Sales,C=US,O=Acme'

Note that the syntax for creating this kind of schema is slightly different from the syntax for creating a shared schema presented 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 is not shared with other users.

Current user database links operate only between databases within a single enterprise domain, and only if that domain is trusted. You specify a domain as trusted by using Oracle Enterprise Security Manager. If you want to specify as untrusted a database that is part of a trusted enterprise domain, you use the PL/SQL package DBMS_DISTRIBUTED_TRUST_ADMIN. To obtain a list of trusted servers, you use the TRUSTED_SERVERS view.

See Also:

 

Oracle Enterprise User Security Components

Oracle enterprise user security incorporates administration tools discussed in the following sections:

Oracle Wallet Manager

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

Oracle Enterprise Login Assistant

Use Oracle Enterprise Login Assistant to open and close a user wallet in order to enable or disable secure SSL based communications for an application. This tool provides a subset of the functionality provided by Oracle Wallet Manager.

See Also:

Chapter 19, for detailed instructions on how to use this application. 

Oracle Enterprise Security Manager

Use Oracle Enterprise Security Manager to:

Oracle Internet Directory

Oracle Internet Directory is a Lightweight Directory Access Protocol (LDAP) v3 directory service implemented as an application on the Oracle8i database. It enables the retrieval of information about dispersed users and network resources.

See Also:

Oracle Internet Directory Administrator's Guide for detailed instructions on how to use this application. 

Installing and Configuring Enterprise User Security

This section gives you an overview of how to set up enterprise user security. The required steps are as follows:

Task 1: Install or Identify a Certificate Service

Oracle Wallet Manager requires you to have a certificate authority in your environment. The CA must be able to process PKCS#10 certificate requests in Base 64 format, and return X509v3 certificates, also in Base 64 format.

See Also:

Chapter 18 for a fuller description of certificate authorities and Oracle Wallet Manager 

Task 2: Install and Configure a Directory Service

  1. Install an LDAP v3-compliant directory service. Oracle8i Release 8.1.6 supports the following:

    • Oracle Internet Directory Release 2.0.5 or later

    • Microsoft's Active Directory

  2. Set up the directory for two-way SSL authentication. This involves creating an Oracle wallet for the directory.

    If you are using Oracle Internet Directory, use Oracle Wallet Manager and Oracle Directory Manager to create a wallet for the directory and to configure SSL. If you are using Microsoft Active Directory or Novell Directory Service, see the product-specific documentation for instructions for enabling two-way SSL authentication.

  3. Start the directory.

  4. Create directory naming contexts as desired, and, beneath them in the DIT, create desired administrative contexts.

    For example, if your naming context is dc=my_company,dc=com, you may choose as an administrative context dc=us,dc=my_company,dc=com.

  5. If you are using Oracle Internet Directory, use the Net8 Configuration Assistant to create Oracle Contexts as desired. The Oracle schema is already installed. You can also create Oracle Contexts later during a database installation.

    If you are not using Oracle Internet Directory, you can use the Net8 Configuration Assistant later to install the Oracle schema and desired Oracle Contexts.

    See Also:

     

Task 3: Install and Configure One or More Databases

This involves performing the tasks described in the following subsections:

Install Oracle8i Release 8.1.6 Database Software

Use the Oracle Universal Installer to install Oracle8i Release 8.1.6 databases.

Before installation, obtain from the directory administrator:

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

See Also:

Oracle8i Release 8.1.6 installation documentation for your platform for detailed instructions on how to install and create a database. 

Set Up Directory Access for ORACLE_HOME

You may complete this during or after the installation of Oracle8i Release 8.1.6. If so then you do not need to do it again.

To configure directory service access configuration by using the Net8 Configuration Assistant:

  1. Run the Net8 Configuration Assistant.

  2. Choose the Directory Service Access configuration option.

  3. Perform directory access configuration for a server option, and continue.

    If your directory does not yet have the required Oracle schema, you are prompted to install it in the directory. If there is no Oracle Context set up under an administrative context, you are prompted to create the Oracle Context.


    Note:

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


    See Also:

    The chapter on configuring naming methods in Net8 Administrator's Guide for instructions on setting up directory access for the database. 

Use Oracle Database Configuration Assistant to Register the Database in the Directory

Oracle Database Configuration Assistant asks if you want to register the database in the directory. Choose Yes. This creates a database service object underneath your chosen Oracle Context in the directory.

Configure Net8 for Listener and Database SSL Support

Net8 needs to be configured for SSL on both the Listener and the Database. The Listener must have a listening endpoint which is configured for the TCP/IP with SSL protocol, and the location of the Database's wallet must be specified. You do this using the Net8 Configuration Assistant as described in "Enabling SSL". The suggested wallet locations for a database are:

Create and Open a Database Wallet

This involves performing the tasks described in the following subsections:

Create a Wallet

To do this:

  1. Create a directory for the wallet according to the location you specified in "Configure Net8 for Listener and Database SSL Support" when using the Net8 Assistant.

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

    owm
  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 DN of the database exactly. The DN of the database is:
    cn=database_name,cn=OracleContext,cn=administrative_context and is found in the initialization parameter file in the parameter RDBMS_SERVER_DN.

    Be sure to match the case of the characters exactly. For example, if the global database name chosen during installation is sales.us.acme.com, and the administrative context selected within Net8 Configuration Assistant is ou=division1,c=us,o=acme, then the DIT for this DN would look like this:


    The full DN of the database that you would type into Oracle Wallet Manager would be:

    cn=sales,cn=OracleContext,ou=division1,c=us,o=acme
    


    Note:

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


  4. Send the certificate request to your certificate authority.

  5. Get the certificate text for the CA trusted certificate. The CA trusted certificate is sometimes known as a root key certificate.

    The certificate text includes the lines BEGIN CERTIFICATE and END CERTIFICATE and the text within these two lines.

  6. Paste this certificate into the database wallet using the Oracle Wallet Manager Import Trusted Certificate function.

  7. Get the certificate text for the database certificate. The certificate text includes the lines BEGIN CERTIFICATE and END CERTIFICATE and the text within these two lines.

  8. Paste the certificate text into the certificate using the Oracle Wallet Manager Import User Certificate function.

Open the Wallet

In order for users to access the database using two-way SSL authentication, the database wallet must be open, and the listener must be running. To open the wallet and run the listener:

  1. Shut down the listener. The listener needs to read the database's open wallet, so the database must log on before the listener can be started. Enter:

    lsnrctl stop
    
    
  2. In the 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.

  3. Save the wallet to the directory you set up when you performed the task described in "Create a Wallet".

  4. Start the Listener. Enter:

    lsnrctl start
    

    See Also:

    Chapter 18 for detailed instructions on how to create a wallet. 

  5. The database wallet will now remain open, and the database will be able to participate in authenticated communications using SSL.

Perform Database Logout for Extra Security


Important:

If the database will be shut down for an extended period of time, perform a database logout and close the wallet for extra security. 


To log out of the database:

  1. Stop the listener. Enter:

    lsnrctl stop
  2. Start Oracle Wallet Manager. Enter:

    owm
  3. Clear the Autologin check box.

  4. Save your changes.

  5. Restart the listener. Enter:

    lsnrctl start
    

Verify Database Installation

Follow the steps listed below to verify that the database was successfully installed.

  1. Verify that there is a cwallet.sso file located in the database wallet directory. If there is no cwallet.sso file in the directory, 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 the LSNRCTL START command is successful and that the listener process is listening on the SSL port designated in the listener.ora file. Enter:

    lsnrctl status
  3. Verify that there is an ldap.ora file located in
    $ORACLE_HOME/network/admin.

    If there is no ldap.ora file, then the Net8 Configuration Assistant failed. Verify that the ORACLE_HOME is set and TNS_ADMIN is not set. Rerun Net8 Configuration Assistant.

  4. Use the directory administration tool to verify that a database entry exists under the Oracle Context you specified when you ran the Net8 Configuration Assistant. 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 try to register the database again. Enter:

    dbassist
  5. Modify the database.

Task 4: Configure Database Clients

Once you have installed Oracle8i clients, configure Net8 on the client. Do this by using the Net8 Configuration Assistant.You may complete this during or after installation of the Oracle8i Release 8.1.6.

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

Enable clients to connect and authenticate to a database by using SSL. Use the Net8 Assistant to configure SSL. Do not enter a wallet location.

See Also:

 


Note:

Wallets for specific users are set up when you create enterprise users. See Chapter 20 for instructions on creating enterprise users. 


Task 5: Install and Configure Oracle Enterprise Security Manager

See:

Installing and Configuring Oracle Enterprise Security Manager

Once you have installed and configured Oracle Enterprise Security Manager, set up an enterprise domain. The following table lists the tasks you perform when you set up an enterprise domain, and points you to the corresponding instructions:

Task  Instructions 

Create an enterprise domain. 

"Creating an Enterprise Domain" 

Make the enterprise domain trusted/untrusted. Only a trusted domain allows current user database links between member databases. 

"Creating an Enterprise Domain" 

Create enterprise roles in the domain. 

"Creating an Enterprise Role within an Enterprise Domain" 

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

"Adding a Database to an Enterprise Domain"

"Removing a Database from an Enterprise Domain" 

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

CREATE ROLE rolename IDENTIFIED GLOBALLY 

Oracle8i SQL Reference 

Assign a global role to each enterprise role. 

"Creating an Enterprise Role within an Enterprise Domain" 

Task 6: Create and Configure Enterprise Users

The following procedures assume that you have successfully installed all of the enterprise user security components. You should also have started the directory and the Oracle Enterprise Security Manager.

Create a new enterprise user by performing tasks described in the following subsections:

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:

You may want to populate the directory with users before using Oracle Enterprise Security Manager.

See Also:

 

Create a User Wallet

See:

Chapter 18 for instructions on creating a wallet by using Oracle Wallet Manager. 

Create the User on the Databases

Use Oracle Enterprise Manager or SQL*Plus to add a user to the desired database. For example:

CREATE USER fred IDENTIFIED GLOBALLY AS 
'cn=frederick,ou=division1,c=us,o=oracle'

The user name must match the DN that is found in the user's wallet and in the directory.

Alternatively, to create a shared schema to which multiple enterprise users may be mapped, you could enter:

CREATE USER guest IDENTIFIED GLOBALLY AS '';
Authorize the User

You can do either or both of the following:

Task 7: Log In as the Enterprise User

This involves two tasks:

Open the User Wallet

In "Task 6: Create and Configure Enterprise Users", you created a wallet for the enterprise user. The enterprise user must now open this wallet in order to log in to the database. Use Oracle Enterprise Login Assistant to open or close the wallet.

Opening a user wallet generates a single sign-on file and allows authentication to the SSL adapter.

To open a user wallet:

  1. Launch Oracle Enterprise Login Assistant by typing the command:

    elogin
  2. Enter the wallet password when you are prompted by the system.

  3. Enable Autologin, then save your changes.

    Your wallet will now remain open, and you will have authenticated communications using the SSL adapter.

  4. Set ORACLE_HOME.

  5. If the ORACLE_HOME is set to a server ORACLE_HOME, then you must set the TNS_ADMIN environment variable to point to the directory where you placed the sqlnet.ora file that you created in "Task 4: Configure Database Clients".

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

To close a user wallet:

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

See Also:

Chapter 19 for instructions on using Oracle Enterprise Login Assistant. 

Connect to the Database

You have the option of doing this by using SQL*Plus. To do this, launch SQL*Plus and enter:

CONNECT /@connect_identifier

where connect_identifier is the net service name you set up in "Task 4: Configure Database Clients". If you are using Net8 directory naming, the connect identifier is the simple database name.

Troubleshooting Enterprise User Login

This section contains a list of potential problem areas and ways to alleviate them.

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, 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, then 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.

TNS Lost Connection

This error may indicate that you attempted to configure a domestic cipher suite. Run the Net8 Assistant again, and be sure that you select the "Show domestic cipher suites" radio 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 in the wallet that is used to connect does not match the DN in the CREATE USER statement for any schema in the database, nor does it match the DN in any relevant mapping.

Check the case, spaces, and spelling of the distinguished name of the user that was created in the database. Enter:

SELECT external_name FROM user_users;

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.


Prev Next
Oracle
Copyright © 1999 Oracle Corporation.

All Rights Reserved.

Library

Product

Contents

Index