Autenticacion de Usuarios

13
Autenticación de Usuarios en ORACLE Profesor: Juan Luis Medina Sánchez

Transcript of Autenticacion de Usuarios

Autenticación de Usuarios en ORACLE

Profesor: Juan Luis Medina Sánchez

Profesor: Juan Luis Medina Sánchez

• La autentificación define la forma en la que el usuario verificaquién es.

• Hay métodos de autentificación más seguros que otros.

• Asegurar la autentificación implicaría asegurar el medio, lacomunicación entre usuario y base de datos con protocolos decomunicación entre usuario y base de datos con protocolos decifrado.

• Por otro lado hay que proteger especialmente a los usuariosadministradores.

Profesor: Juan Luis Medina Sánchez

• Es el método habitual de autenticación de usuarios en ORACLE.

• Su información (nombre de usuario y contraseña) son contrastados con los datos de usuarios almacenados en el Diccionario de Datos de ORACLE.

• Es el método habitual de autentificación para usuarios no • Es el método habitual de autentificación para usuarios no administrativos.

• Está configuración requiere la base de datos montada y abierta (al tener que usar el diccionario de datos).

Profesor: Juan Luis Medina Sánchez

• En este caso el usuario que inicia sesión en el Sistema Operativo, inicia la herramienta de Administración (ej. Sqlplus) y se conecta a la Base de Datos con el comando connect / sin especificar nombre de usuario ni contraseña del mismo:

C:\ SQLPLUS /NOLOG

SQLPLUS> CONNECT /

• En este caso, ORACLE comprobaría si existe correspondencia• En este caso, ORACLE comprobaría si existe correspondenciaentre el nombre del usuario de Sistema Operativo y un mismonombre de usuario en el contexto de ORACLE. En caso de haberla,se permite la conexión pues la autenticación del mismo se harealizado al iniciar la sesión en la máquina.

• La gestión de las contraseñas es llevada a cabo por el SistemaOperativo

Profesor: Juan Luis Medina Sánchez

Para usar este método de autenticación, será necesario crear un usuario en Oracle con igual nombre que el usuario a nivel del sistema Operativo. Para ello:

• Tendremos en cuenta un prefijo o vínculo que “enlazará” el usuario creado en Oracle con el usuario del Sistema Operativo. Este prefijo se puede consultar como el valor correspondiente al Este prefijo se puede consultar como el valor correspondiente al parámetro OS_AUTHENT_PREFIX. Su valor por defecto es OPS$. Será susceptible de ser modificado con la sentencia ALTER SYSTEM SET..

• Creamos el usuario (con system preferentemente) con la forma:

CREATE USER “OPS$NOMBREEQUIPO\NOMBREUSUARIO” IDENTIFIED EXTERNALLY

Profesor: Juan Luis Medina Sánchez

Se tendrá en cuenta que:

• El NOMBREUSUARIO será el mismo que el del usuario del S.O.

• El nombre del Usuario en ORACLE

(OPS$NOMBREEQUIPO\NOMBREUSUARIO) (OPS$NOMBREEQUIPO\NOMBREUSUARIO)

deberá especificarse TODO EN MAYÚSCULA y entre comillas dobles, además de empezar por el prefijo OPS$

• Hasta la versión 11 de ORACLE se podía usar el parámetro REMOTE_OS_AUTHENT para usar este método de conexión de forma remota

Profesor: Juan Luis Medina Sánchez

• Autenticación EXTERNAOracle delega la autentificación a un servicio externo que se asociará a Oracle. Ejemplos de servicios externos son Kerberos o RADIUS, este último sólo disponible en Windows. Requiere el uso de las mejoras de seguridad avanzada de Oracle

• Autenticación GLOBAL• Autenticación GLOBALSe trata de utilizar un servicio LDAP para realizar la autentificación. Oracle dispone de un servicio LDAP global integrado en Oracle Applications (plataforma de Oracle para le creación de aplicaciones) que se llama Oracle Internet DirectorySi los usuarios sólo están dados de alta en el directorio externo, usarán todos la misma cuenta de Oracle; para independizarles se requiere darles de alta en ambos servicios (Oracle y el Oracle Internet Directory).

Profesor: Juan Luis Medina Sánchez

Autenticación de Usuarios con privilegio “SYSDBA”

1. AUTENTICACIÓN POR SISTEMA OPERATIVO

• En el sistema operativo en el que se instale Oracle se crean dos grupos de usuarios relacionados con los dos privilegios de sistema SYDBA y SYSOPER. En Windows se llaman ORA_DBA y ORA_OPERrespectivamente

Profesor: Juan Luis Medina Sánchez

respectivamente• Nosotros nos centraremos en usuarios “SYSDBA”, aunque el

razonamiento es análogo en el caso de usuarios con el privilegio administrativo “SYSOPER”.

• Los usuarios de esos grupos conectarían mediante CONNECT / AS SYSDBA o CONNECT / AS SYSOPER

• Los usuarios podrían conectar con CONNECTcualquierUsuario/cualquierContraseña AS SYSDBA ya que no se comprueba por parte de Oracle los datos introducidos (ha delegado la autenticación al Sistema Operativo).

• Automáticamente permite la conexión e identificará al usuario como SYS(comprobar con el comando “show user”).

• En plataformas Windows, para que este modo de autenticación esté activo, es necesario que se cumplan las condiciones siguientes:

Autenticación de Usuarios con privilegio “SYSDBA”

o El usuario que inicia sesión en el Sistema Operativo pertenezca al grupo ORA_DBA

o El archivo sqlnet.ora debe contener la línea

SQLNET.AUTENTICATION_SERVICES=(NTS)

Profesor: Juan Luis Medina Sánchez

Autenticación de Usuarios con privilegio “SYSDBA”

2. Autenticación por FICHERO DE CONTRASEÑAS

Para usar este método de autenticación, deberemos:

• Deshabilitar el método de Autenticación por Sistema Operativo (incumpliendo alguna de las dos condiciones anteriores)

• Crear el fichero de contraseñas con la utilidad orapwd, con la sintaxis:

Profesor: Juan Luis Medina Sánchez

• Crear el fichero de contraseñas con la utilidad orapwd, con la sintaxis:Orapwd file=%ORACLE_HOME%\database\nombreFichero password=contraseñaElegida

Donde “nombreFichero” suele tener la forma pwdSID.ora

Seguidamente podremos conectarnos al Sistema Operativo con cualquier usuario, iniciar la herramienta de Administración (ej. Sqlplus) y conectarnos como el usuario SYS con privilegio administrativo SYSDBA, usando la contraseña incluida en el fichero de contraseñas (C:\ SQLPLUS /NOLOG ; SQLPLUS> CONNECT SYS AS SYSDBA/contraseña)

• Por otro lado el parámetro de sistema REMOTE_LOGIN_PASSWORDFILE(modificable con ALTER SYSTEM SET…), permite indicar la forma en la que funciona el archivo de contraseñas.

• El valor actual de REMOTE_LOGIN_PASSWORDFILE se consulta con la sentencia show parameter REMOTE_LOGIN_PASSWORDFILE…

Autenticación de Usuarios con privilegio “SYSDBA”

• Valores posibles:

o NONE: No permite usar el archivo de contraseñas, las conexiones de usuarios con privilegios administrativos tendrán que usar otros métodos

o EXCLUSIVE: El archivo de contraseñas se usa sólo en la instancia actual. Será posible dar el privilegio administrativo SYSDBA (ó SYSOPER) a otros usuarios.

Profesor: Juan Luis Medina Sánchez

SHARED: Se comparte el archivo de contraseñas entre variasinstancias de tipo Real Application Cluster de Oracle (para bases dedatos distribuidas). En este caso no se pueden cambiar lascontraseñas de los usuarios administrativos y sólo el usuario SYSpuede usar el privilegio SYSDBA (ó SYSOPER), no pudiendo ser

Autenticación de Usuarios con privilegio “SYSDBA”

puede usar el privilegio SYSDBA (ó SYSOPER), no pudiendo serasignado a otros usarios

Profesor: Juan Luis Medina Sánchez