| Oracle® Database Advanced Security Administrator's Guide 10g Release 1 (10.1) Part Number B10772-01 |
|
|
View PDF |
Oracle DCE Integration enables Oracle applications and tools to access Oracle Database servers in a distributed computi ng environment. This chapter briefly describes the Distributed Computing Environment (DCE), the Oracle DCE Integration product, and how to configure it. It contains the following topics:
The Distributed Computing Environment (DCE) from the Open Group is a set of integrated network services that works across multiple systems to provide a distributed environment. The network services include remote procedure calls (RPCs), directory service, security service, threads, distributed file service, diskless support, and distributed time service.
DCE is the middleware between distributed applications and the operating system/network services and is based on a client/s erver model of computing. By using the services and tools that DCE provides, users can create, use, and maintain distributed applicat ions that run across a heterogeneous environment.
Oracle DCE Integration enables Oracle appl ications and tools to access Oracle database servers in a DCE environment.
Oracle DCE Integration requires Oracle Net Services and Oracle Database. It is based on the Open Software Foundation (OSF) DCE protocol (V1.1 and later).
Note that OSF has merged with X/OPEN, another standard s group, to form The Open Group. This group is committed to continuing DCE support.
Oracle servers running DCE Integration 2.3.2 and later are backward compatible with c lients running SQL*Net/DCE 2.1.6 or 2.2.3; however, Release 2.1.6 clients cannot take advantage of external roles.
A client running DCE Integration 2.3.2 or later cannot connect to a SQL*Net/DCE 2.1.6 or 2.2.3 server. A DCE Integration Release 2.3.2 or later client requires a Release 2.3.2 or later server in order to connect to a database.
Oracle DCE Integration has t wo components: DCE Communication/Security and DCE CDS Native Naming.
This component has three principal features:
Oracle DCE Integration provides authenticated Remote Procedure Call (RPC) as the transport mechanism that enables multi-vend or interoperability. RPC also uses some of the other DCE services, including directory and security services, to provide location tra nsparency and secure distributed computing.
Oracle DCE Integration works with the DCE Security service to provide security within DCE cells. It enables a user logged onto D CE to securely access any Oracle database without having to specify a user name or password. This is sometimes called external authentication to the database, or single sign-on (SSO). Clients and servers that are not running DCE authentication services can interoperate with systems that have DCE security by specifying an Oracle password.
Oracle DCE Integration uses the multiple levels of security that DCE provides to ensure data authenticity, privacy, and integrity. Users have a range of choices, from no protection to full encryption for each connection, with a guarantee that no data i s modified in transit.
|
Note: For parts of the network that do not use DCE, you can use the other security and authenticatio n services that are part of Oracle Advanced Security. These services work with SQL*Net release 2.1 and later or with Oracle Net Servi ces. They provide message integrity and data encryption services in non-DCE environments, letting administrators ensure that all netw ork traffic is protected against unauthorized viewing or modification, regardless of the start or end point. |
See Also:
|
Oracle Advanced Security provides flexibility in your use of DCE services. You have the following options:
The following are limitations in 10g Rele ase 1 (10.1) of Oracle Advanced Security:
The following tasks, performed by the DCE cell administrator, assume that a DCE cell has been configured and the systems be ing used are part of that cell:
Use the following procedure model to add server principals:
< a name="1006370">% dce_login cell_admin password % rgy_edit Current site is: registry server at /.../cell1/subsys/dce/sec/master rgy_edit=>do p Domain changed to: principal rgy_edit=> add oracle rgy_edit=> do a Domain changed to: account rg y_edit=> add oracle -g none -o none -pw oracle_password -mp cell_admin_ password rgy_edit=& gt; quit bye
In this example, a DCE principal na
med oracle is created. The principal has a corresponding account with a password set to oracle_password. Th
e account does not belong to any DCE group or DCE profile.
|
Perform this task on the server only once after DCE Integr ation has been installed. Do not perform this task on client systems. |
Install the key of the server into a keytab file, dc epa.key. This file contains the password of the principal under which the Oracle Net listener starts. The Oracle Net listener reads t his file to authenticate itself to DCE. To generate the keytab file, enter the following:
% dce_login cell_admin password % rgy_edit Current site is: registry ser ver at /.../cell1/subsys/dce/sec/master rgy_edit=> ktadd -p oracle -pw Oracle_password -f < a name="1006395">$ORACLE_HOME/dcepa/admin/dcepa.key rgy_edit=>quit bye
% dce_login cell_admin Enter Password:(password not displayed) $ cdscp cdscp> create dir /.:/subsys/oracle cdscp> create dir /.:/subsys/oracle/nam es cdscp> create dir /.:/subsys/oracle/service_registry cdsc p> exit
oracle to the CDS-server group:
$ dce_login cell_admin Enter Password: (password not d isplayed) $ rgy_edit rgy_edit=> domain group Domain changed to: group rgy_edit=> member subsys/dce/cds-server -a oracle < a name="1006439">rgy_edit=> exit
This section describes how to configure an Oracle databa se server and Oracle Net Services to use Oracle DCE Integration after it has been successfully installed. It contains the following t opics:
DCE addresses in
the listener.ora and tnsnames.ora configuration files are defined by DCE parameters, illustrated in the fo
llowing:
ADDRESS=(PROTOCOL=DCE)(SERVER_PRINCIPAL=server_name)(CELL _NAME=cell_name) (SERVICE=dce_service_name))
These parameters are described by Table 10-1:
You can sp ecify a service as follows:
SERVICE=/.../cell_name/subsys/oracle/service_registry/dce_serv ice_name
Alternatively, you can specify:
SERVICE=dce_service_name
if CELL_
NAME=cell_name is also specified.
In this case, the cell name defaults to the local c ell. However, this way of specifying service names only works if you are operating within a single cell.
< div align="center">To configure a server for DCE Integration, do the following:
< ol class="LN1" type="1">sqlnet.ora and protocol.ora
files with DCE address information.
|
Note: In this release, the configuration files |
|
Note: The privileges shown in this section are the minimum< /em> access privileges necessary. The actual set of privileges needed depends upon the instance or applicatio n. |
REMOTE_OS_AUTHENT=FALSE OS_AUTHENT_PR EFIX=""
mts_dispatchers="(PROTOCOL=dce)(DISPATCHERS=3)"
|
Note:
The |
Local Cell :
If users are connecting within a local cell, use the following format:
SQL> CREATE USER server_principal IDENTIFIED EXTERNALLY; SQL> GRANT CR EATE SESSION TO server_principal;
For exampl e:
SQL> CREATE USER oracle IDENTIFIED EXTERNALLY; SQL&g t; GRANT CREATE SESSION TO oracle;
The entire CELL_NAME/SERVER_PR INCIPAL string must be 30 characters or less (this is an Oracle Database restriction--not a restriction of the DCE adapter).
For example:
SQL> CREATE USE R "CELL1/ORACLE" IDENTIFIED EXTERNALLY; SQL> GRANT CREATE SESSION TO "CELL1/ORACLE";
Multiple Cells:
If connecting to the database across multiple cells, specify both the cell_name and the se rver_principal, as illustrated in the following:
SQL> CREATE USER "CELL_NAME/SERV ER_PRINCIPAL" IDENTIFIED EXTERNALLY; SQL> GRANT CREATE SESSION TO "CELL_NAME/SERVER_PRINCIPAL";
You must enclose the externally-identified account name in double quotation m arks, because the slash is a reserved character. Also, if the account (user) name is double-quoted, it must be capitalized.
For example:
SQL> CREAT E USER "CELL1/ORACLE" IDENTIFIED EXTERNALLY; SQL> GRANT CREATE SESSION TO "CELL1/ORACLE";
When using this format, set the following parameter in the protocol.ora configuration file to FALSE:
dce.local_cell_usernames=falseReferences to an Oracle account created in this manner must include the schema/account in th e correct format. Consider requests for access to tables from another account. When a user references the tables in another account c reated within a local cell, the command might appear as follows:
SQL> SELECT * FROM or acle.empIf a user wants to access tables in another account crea ted for connections across cells, the command might appear as follows:
SQL> SELECT * F ROM "CELL1/ORACLE" .emp
| See Also:
Oracle Database Heterogeneous Connectivity Administrator's Guide, for more information about external authentication |
To set up external roles for DCE Integration, and enable connection to an Oracle database as SYSOPER or SY SDBA with DCE credentials, do the following:
OS_ROLES=TRUE
ORA_global_name_role[_[a][d]]
Table 10-2 describes the syntax components:
|
See Also : Oracle Database Administrator's Guide for more information about external roles |
dce_login klist
Sample Outp ut:
% dce_login oracle
Enter Password:
% klist dce identity information: Warning: Identity information is not certified Global Principal: /.../ilab1/oracle Cell: 001c3f90-01f5-1f72-ba65-02608c2c84f3 /.../ilab1 Principal: 00000068-0568-2f72-bd00-02608c2 c84f3 oracle Group: 0000000c-01f5-2f72-ba01-02608c2c84f3 none Local Groups: 0000000c-01f5-2f72-ba01-02608c2c84f3 none 0000006a-0204-2f72-b901-02608c2c84f3 subsys/dce/cds-serv er 00000078-daf4-2fe1-a201-02608c2c84f3 ora_dce222_dba 00000084-89c8-2fe8-a201-02608c2c84 f3 ora_dce222_connect_d 00000087-8a13-2fe8-a201-02608c2c84f3 ora_dce222_resource_d 000000 80-f681-2fe1-a201-02608c2c84f3 ora_dce222_role1_ad . . .
The following sample output lists external roles (DBA, CONNECT, RESOURCE, and ROLE1) tha t have been mapped to DCE groups:
SQL> SELECT * FROM session_roles; ROLE ------------ ------------------ CONNECT RESOURCE ROLE1 SQL> SET ROLE all; Role set. SQL> SELECT * FROM session_roles; ROLE ------------- ----------------- DBA EXP_FULL_DATABASE IMP_FULL_DATABASE CONNECT RESOURCE ROLE1 6 rows selected. SQL> EXIT
To conf
igure DCE so that you can connect to an Oracle database as SYSOPER or SYSDBA with DCE credentials, do the f
ollowing:
oracle as a memb
er of the group(s).
$ dce_login cell_admin cell_admin_password $ rgy_e dit rgy_edit=> domain group Domain changed to: group rgy_edit => add ora_dce222_dba_ad rgy_edit=> add ora_dce222_operator_ad rgy_edit=> memb er ora_dce222_dba_ad -a oracle rgy_edit=> member ora_dce222_operator_ad -a oracle
tnsnames.ora.
ORADCE= (ADDRESS= (PROTOCOL=DCE) (SERVER_PRINCIPAL=oracle) (CELL_NAME=cell1) (SERVICE=dce_svc)) (CONNECT_DATA= (SID=ORASID) (GLOBAL_NAME=dce222)))
oracle as described by Task 2: C
reate and Name Externally Authenticated Accounts.$ dce_login orac le oracle_password $klist DCE Identity Information: Warning: Identity information is not certified Global Principal: /.../dce.dlsun685 .us.oracle.com/oracle Cell: 00af8052-7e94-11d2-b261-9019b88baa77 /.../dce. dlsun685.us.ora cle.com Principal: 0000006d-88b9-21d2-9300-9019b88baa77 oracle Group: 0000000c-7e94-21d2-b201-9019b88baa77 none Local Groups: 0000000c-7e94-21d2-b201-9019b88baa77 none 0000006a-7e94-21d 2-ad01-9019b88baa77 subsys/dce/cds-server 00000076-8b53-21d2-9301-9019b88baa77 ora_dce222_dba_ ad 00000077-8b53-21d2-9301-9019b88baa77 ora_dce222_operator_ad Identity Info Expires: 1999-12-04-10:28:22 Account Expires: never Passwd Expires: never Kerberos Ticket Information: Tick et cache: /opt/dcelocal/var/security/creds/dcecred_43ae2600 Default principal: oracle@dce.dlsun685.us.oracle.c om Server: krbtgt/dce.dlsun685.us.oracle.com@dce.dlsun685.us.oracle.com valid 1 999-12-04-00:28:22 to 1999-12-04-10:28:22 Server: dce-rgy@dce.dlsun685.us.oracle.com valid 1999-12-04-00:28:22 to 1999-12-04-10:28:22 Server: dce-ptgt@dce.dlsun685.us.oracle.com valid 1999-12-04-00:28:26 to 1999-12-04-02:28:26 Client: dce-ptgt@dce.dlsun685.us.oracle.c om Server: krbtgt/dce.dlsun685.us.o racle.com@dce.dlsun685.us.oracle.com valid 1999-12-04-00:28:26 to 1999-12-04-02:28:26 Client: dce-ptgt@dce.dlsun685.us.oracle. com Server: dce-rgy@dce.dlsun685.us. oracle.com vali d 1999-12-04-00:28:27 to 1999-12-04-02:28:26
To configure a client for DCE Integration, you must configure the following Oracle Net files with DCE address and parameter information:
Typically, CDS is used for name resolution. Thus, a
local naming configuration file (tnsnames.ora) is not used, except when loading names and addresses into CDS.
There are four DCE parameters located in the protocol.
ora file. Each parameter begins with the prefix DCE. to distinguish it from paramet
ers relevant to other protocols. If default values are used for these four parameters, DCE Integration does not require a proto
col.ora file. The parameters and their current defaults follow:
Configurati on parameters are not case-sensitive; you can enter them in either uppercase or lowercase.
The DCE.AUTHENTICATION parameter is optional. It indicates the authentication value to be used for ea
ch DCE RPC. The client DCE_AUTHENTICATION value must be the same as the server DCE_AUTHENTICATION value. If
this entry is not specified, cell-wide default authentication is used. The options follow:
| Option | Description |
|---|---|
|
NONE |
No authentication |
|
DCE_SECRET |
DCE shared-secret key authentication (Kerberos) |
|
DCE_SECRET |
Default authentication level and recomm ended value |
|
DEFAULT |
Cell default |
DCE.PROTECTION is an optional field that specifies the data integrity protec
tion levels for data transmission. The client DCE_PROTECTION level must be equal to or greater than the server DCE
_PROTECTION level. If this entry is not specified, cell-wide default protection is used. The options follow:
| Option | < /a> Description |
|---|---|
|
NONE |
Perform no protection for the current connection |
|
DEFAULT |
Use the default cell-wide protection level |
|
CONNECT |
Perform protection only when the client establishes a relationship with the server |
|
CALL < /td> |
Perform protection only at the beginning of each remote procedure call when the server receives the request |
|
PKT |
Ensure tha t all data received is from the expected client |
|
PKT_INTEG |
Ensure and verify that none of the data transferred between the client and server has been modified |
|
PRIVACY td> |
Perform protection as specified by all of the previous levels and also encrypt each RPC argument value and all user data in each call |
DCE.TNS_ADDRESS_OID is an optional parameter that enables you to specify an alternative to the def
ault value as follows:
DCE.TNS_ADDRESS_OID=1.3.22.1.x.x
DCE.LOCAL_CELL_USERNAMES is an optional parameter that defines the format used to specify the principal name (username), with or without the cell name. The choice you make for this parameter should be determined by whether or not users are making
connections across cells--with unique names. The default for DCE.LOCAL_CELL_USERNAMES is now TRUE (it was s
et to FALSE in the DCE Integration 2.1.6 release).
The associated options follo w:
Clients typically use Cell Directory Services (CDS) to resolve Oracle service names to addresses. Perform the following steps to configure CDS:
To use CDS for name resolution, the DCE Integration CDS N aming Adapter must be installed on all clients and servers that use CDS. Also, the CDS namespace must have been configured for use by DCE Integration.
| See Also:<
/font>
DCE Integration installation instructions, and "Task 3: Co nfigure DCE CDS for Use by Oracle DCE Integration" . |
For example, a service name such as ORADCE and its network address can be stored in DC
E CDS.
Users can typically connect to Oracle services using the familiar Oracle servi ce name if there are no domains or the database is in the user's default domain, as in the following example:
sqlplus /@ORADCE
This example assumes that DCE externally-authenticated accounts are in use.
As an alternative name resolution service, us
e a local naming configuration file, tnsnames.ora, when CDS is inaccessible. To do so, locate names and addresses of all
Oracle servers in the local tnsnames.ora file.
On all DCE machines where CDS naming is used, add the object ID for the CDS attribute TNS_A ddress to the CDS attributes file. (The object ID must be the same across all machines.)
/opt/dcelocal/etc/cds_attributes fi
le:
1.3.22.1.5.1 TNS_Address char
The first four digits of this TNS_Address attribute value, 1.3.22.1.x.y, are fixed, under DCE naming conv
entions. If the default TNS_Address object ID value 1.3.22.1.5.1 already exists in the cds_attributes file, you must spe
cify a value for the object ID that is not already in use.
If you are unable to use the def
ault value for the object ID, then you must specify the object ID in the protocol.ora file on the client.
If you had to specify a value other than the default value 1.3.22.1.5.1, then you must add t
he following parameter to the protocol.ora file:
DCE.TNS_ADDRESS_OID=1.3.22. 1.x.y
Make sure that the object ID value in the cds_attributes fi
le matches the value specified in the DCE.TNS_ADDRESS_OID parameter in the protocol.ora file.
The com mand to restart CDS varies between different operating systems. On the Solaris platform, for example, you can use the following comma nd to restart CDS:
/opt/dcelocal/etc/rc.dce restart
To load the Oracle service names and addresses into CDS, create or modify a local naming configuration file, tnsnames.ora. This file is used to map ser vice names to addresses for use by Oracle Net.
This section describes the parameters that mu
st be included in the tnsnames.ora file. The file contains a list of Oracle service names mapped to connect descriptors
of destinations or endpoints in the network. The sample DCE address in the following section shows a network address for an Oracle se
rver with the Oracle service name ORADCE. It is used to connect to the service registered as DCE_SVC in the
CDS directory
/.../cell_name/subsys/oracle/names. ORADCE=(DESCRIPT ION=(ADDRESS=(PROTOCOL=DCE)(SERVER_PRINCIPAL=oracle)(CELL_ NAME=cell1)(SERVICE=DCE_SVC))(CONNECT_DATA=(SID=ORASID)))
|
Note: In this example, the Oracle service name and the DCE service name are different, although they are frequently the same. < /td> |
| See Al
so:
Oracle Net Services Administrator's Guide, for information about |
tnsnames.ora, tnnfg adds the new service name and address to CDS.
If you change the address for a particular service name, tnnfg updates the address for a particular service name.
To load the Oracle service names or aliases from tnsnames.ora into CDS, enter the fol
lowing at the system prompt:
% dce_login cell_admin % tnnfg dceload full_pathname_to_tnsnames.ora % Enter Password:(password will not display)
Be sure to enter the full path name of the tnsnames.ora file, and ensure that the s
qlnet.ora file exists in the same directory as the tnsnames.ora file.
You can keep tnsnames.ora available a
s a backup in case CDS becomes unavailable. To assure that CDS is routinely searched instead of tnsnames.ora, configure
the NAMES.DIRECTORY_PATH parameter in a profile (sqlnet.ora), as described by "Step 6: Modify the sqlnet.ora File to Resolve Names in CDS" (the next section).
The parameters required in a profile (sqlnet.ora) de
pend upon the version of SQL*Net or Oracle Net Services you are using.
For a client or serve r to use DCE CDS Naming, the administrator must do the following:
sqlnet.ora file:
NAMES.DIREC TORY_PATH=(cds, tnsnames, onames)
The first name resolution servi ce listed as a value for this parameter is used. If it is unavailable for any reason, the next name resolution service is used, and s o forth.
This section describes how to connect to an Oracle database after installing Oracle DCE Integration, and configuring both DCE a nd Oracle to use Oracle DCE Integration in the following topics:
To start the listener, do the following:
< /a>% dce_login principal_name password % lsnrctl start listener_name
For example, if the listener name is LSNR_DCE in the listener.ora file, enter the following:
% dce_login oracle orapwd % lsnrctl start LSNR_DCE
Look
for the line that includes the dce_service_name that is part of the listener address.
dce_service_name as follows:
% cdscp show object "/.:/subsys/oracle/service_registry/dce_servi ce_name"
For example:
The following command shows you the mapping in the CDS namespace that the listener has chosen for the en dpoint:
% cdscp show object "/.:/subsys/oracle/service_registry/dce_svc" SHOW OBJECT /.../subsys/oracle/service_registry/dce_svc < a name="1007968"> AT 1999-05-15-17:10:52 RPC_ClassVersion = 0100 CDS_CTS = 1999-05-16-00:05:01.221106100/aa-00-04-00-3e-8c CDS_UTS = 1999-05-16-00:05:01 .443343100/aa-00-04-00-3e-8c CDS_Class = RPC_Server CDS_ClassVer sion = 1.0 CDS_Towers = : Tower = ncacn_ip_tcp:144.25.23.57[]
After externally-identified accounts have been set up, you can take advantage of DCE authentication to log in to Oracle without providing any username or password information. To use this single sign-on capability, just log in to DCE using a command like the fo llowing:
% dce_login principal_name password
For example:
% dce_login oracle orapwd
|
Note: You only need to enter the |
You can now connect to an Oracle server without using a username or password. Enter a command like the following:
% sqlplus /@net _service_name
where net_service_name is th e database service name.
For example:
% sqlplus /@ORADCE
From a client, you can still connect with a user name and password:
% sqlplus username/password@net_service_name
where net_service_name is the Oracle Net service name.
For e xample:
% sqlplus scott/tiger@ORADCE
Clients without access to DCE and CDS can still connect to Orac le servers in DCE using TCP/IP or some other protocol if a listener is configured to do this. If a listener has been configured in th e listener.ora file on the server, non-DCE clients can use normal Oracle Database and Oracle Net Services procedures to connect to an Oracle server in DCE.
|
Note: In this case, DCE security is not available to clients. Also, service names are resolved to ne
twork addresses and located in a |