Autenticación de usuarios de Autonomous Database con Kerberos
Puede configurar Autonomous Database on Dedicated Exadata Infrastructure para utilizar el protocolo de autenticación de red de Kerberos para autenticar usuarios de base de datos. Kerberos es un protocolo de autenticación de red potente. Utiliza criptografía de clave secreta para activar la autenticación compleja proporcionando autenticación de usuario a servidor.
-
El soporte de Autonomous Database on Dedicated Exadata Infrastructure para Kerberos proporciona las ventajas de la conexión única y la autenticación centralizada de los usuarios de Oracle. Kerberos es un sistema de autenticación de terceros de confianza que utiliza secretos compartidos. Presume que el tercero es seguro y proporciona capacidades de inicio de sesión único, almacenamiento centralizado de contraseñas, autenticación de enlaces de base de datos y seguridad de PC mejorada. Esto se realiza mediante un servidor de autenticación de Kerberos.
-
El sistema Kerberos gira en torno al concepto de un ticket. Un ticket es un conjunto de información electrónica que identifica a un usuario o servicio. Un ticket identifica a usted y sus privilegios de acceso a la red.
-
En la autenticación basada en Kerberos, envía de manera transparente una solicitud de un ticket a un centro de distribución de claves (KDC). El centro de distribución de claves le autentica a usted y le otorga un ticket para acceder a la base de datos.
Componentes del sistema de autenticación de Kerberos
Proporciona una descripción general del sistema de autenticación de Kerberos.
-
Un dominio establece un dominio administrativo de autenticación. Cada dominio tiene su propia base de datos de Kerberos que contiene los usuarios y servicios para ese dominio administrativo en particular.
-
Los tickets los emite el centro de distribución de claves (KDC). Los clientes presentan tickets al servidor de base de datos para demostrar la autenticidad de su identidad. Cada ticket tiene una fecha de caducidad y una hora de renovación.
-
Las tablas de claves almacenan claves a largo plazo para uno o más principales. Se genera un archivo keytab llamando a la herramienta
kadmin.local
(para el centro de distribución de claves de MIT) oktpass
(para el centro de distribución de claves de Active Directory). -
Los principales son las entradas de la base de datos del centro de distribución de claves. A cada usuario, host o servicio se le asigna un principal. Un principal es una identidad única a la que el Centro de distribución de claves puede asignar tickets.
-
La compatibilidad con Kerberos en Autonomous Database utiliza estos valores para varios componentes que forman el nombre de un principal de servicio:
Componente de principal de servicio | Valor en Autonomous Database |
---|---|
kinstance |
Puede obtener este valor del atributo Utilice la siguiente consulta para obtener
Note: Éste será el valor del parámetrohost encontrado en la cadena del TNS.
|
kservice |
En Autonomous Database, tiene dos opciones para el valor
Una vez que Kerberos esté activado en la instancia de Autonomous Database, utilice la siguiente consulta para ver el nombre del servicio Kerberos:
|
REALM |
Cualquier dominio que soporte su KDC. El valor REALM siempre debe estar en mayúsculas.
|
Para activar la autenticación de Kerberos para Autonomous Database, debe mantener los archivos de configuración de la instancia de Kerberos (krb.conf
) y los archivos de tabla de claves de servicio (v5srvtab
) listos. Para más información sobre estos archivos y los pasos para obtenerlos, consulte Configuring Kerberos Authentication.
Notas sobre la autenticación de Kerberos en Autonomous Database
Antes de continuar con la autenticación de Kerberos en Autonomous Database on Dedicated Exadata Infrastructure, revise las siguientes notas:
- Si activa la autenticación de Kerberos para Autonomous Database, puede seguir utilizando la autenticación de base de datos basada en contraseña para la base de datos.
- Solo se puede utilizar un método de autenticación externo para Autonomous Database en cualquier momento. Es decir, solo puede tener activados esquemas de autenticación de Oracle Cloud Infrastructure (IAM), usuario gestionado centralmente con Active Directory (CMU-AD), Azure AD o Kerberos en cualquier momento.
Note:
La única excepción es que la autenticación de Kerberos se puede configurar sobre CMU-AD para proporcionar la autenticación de Kerberos CMU-AD para usuarios de Microsoft Active Directory. - La autenticación de Kerberos no está soportada para las siguientes herramientas:
- API de Oracle Database para MongoDB
- Oracle REST Data Services
- Oracle Machine Learning
- APEX
- Oracle Graph Studio
- Oracle Database Actions
- Puede activar la autenticación de Kerberos para autenticar el usuario ADMIN. Puede utilizar la funcionalidad Restablecer contraseña de la consola de Oracle Cloud Infrastructure (OCI) para restablecer la contraseña del usuario ADMIN y recuperar el acceso si un archivo de separador de claves corrupto provoca que falle la autenticación del usuario ADMIN.
- La autenticación Kerberos está soportada con el protocolo TCP para las versiones 19.27 o posteriores de Autonomous Database.
- La autenticación de Kerberos no está soportada con DB_LINKs y bases de datos con Autonomous Data Guard.
Activación de la autenticación de Kerberos en Autonomous Database
-
Como solo puede haber un esquema de autenticación externo activado para una instancia de Autonomous Database en un momento determinado, ejecute el procedimiento
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
para desactivar cualquier esquema de autenticación externo que ya esté activado para la base de datos.Para ejecutar el procedimiento, debe estar conectado como usuario ADMIN o tener el privilegioEXECUTE
enDBMS_CLOUD_ADMIN
.BEGIN DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION; END; /
-
Obtenga los archivos de configuración de Kerberos:
krb.conf
y el archivo de tabla de claves de serviciov5srvtab
. Para obtener más información sobre estos archivos y los pasos necesarios para obtenerlos, consulte Configuring Kerberos Authentication en Oracle Database 19c Security Guide u Oracle Database 23ai Security Guide. -
Copie los archivos de configuración de Kerberos
krb.conf
yv5srvtab
en un cubo del almacén de objetos.Note:
Oracle recomienda almacenar los archivos de configuración de Kerberos en un cubo privado del almacén de objetos.Si utiliza el almacén de objetos de Oracle Cloud Infrastructure, consulte Colocación de datos en Object Storage para obtener más información sobre la carga de archivos.
-
Para activar Kerberos como autenticación externa para Autonomous Database, ejecute el procedimiento
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION
y transfiera un URI de ubicación con el argumento JSONparams
. Debe colocar los archivos de configuraciónkrb.conf
yv5srvtab
en la ubicación de Object Storage especificada en el parámetrolocation_uri
.Por ejemplo:BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type => 'KERBEROS', params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o', 'credential_name' value 'my_credential_name') ); END; /
Note:
Para proporcionar autenticación Kerberos CMU-AD para usuarios de Microsoft Active Directory, puede activar la autenticación Kerberos sobre CMU-AD estableciendotype
enCMU
en el ejemplo anterior.En este ejemplo,
namespace-string
es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, ybucketname
es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.El valor
credential_name
que utiliza en este paso son las credenciales del almacén de objetos.Si
location_uri
es una URL autenticada previamente, no es necesario proporcionar el valorcredential_name
.De esta forma se crea un objeto de directorio denominado
KERBEROS_DIR
en la base de datos y utiliza la credencial para descargar los archivos de configuración de Kerberos desde la ubicación del almacén de objetos al objeto de directorio.Puede utilizar el parámetrokerberos_service_name
para especificar el nombre del servicio Kerberos. Por ejemplo:BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type =>'KERBEROS', params => JSON_OBJECT( 'location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o', 'credential_name' value 'my_credential_name' 'kerberos_service_name' value 'oracle' )); END; /
- Después de activar la autenticación de Kerberos, elimine la configuración
krb.conf
yv5srvtab
del almacén de objetos. Puede utilizar los métodos del almacén de objetos local para eliminar estos archivos o utilizarDBMS_CLOUD.DELETE_OBJECT
para suprimir los archivos del almacén de objetos.
Consulte Navegación a Oracle Cloud Infrastructure Object Storage y creación de un cubo para obtener más información sobre Object Storage.
Consulte Procedimiento ENABLE_EXTERNAL_AUTHENTICATION para obtener más información.
Desactivación de la autenticación de Kerberos en Autonomous Database
Antes de activar cualquier otro esquema de autenticación externa en la base de datos, debe desactivar la autenticación Kerberos que ejecuta el procedimiento DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
.
EXECUTE
en DBMS_CLOUD_ADMIN
. BEGIN
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
Note:
Para proporcionar autenticación Kerberos CMU-AD para los usuarios de Microsoft Active Directory, debe continuar configurando la autenticación CMU-AD sin desactivar la autenticación Kerberos.