Configuración de la autenticación de Kerberos con Autonomous Database

Describe cómo configurar Kerberos para autenticar usuarios de Oracle Autonomous Database.

Acerca de la autenticación de Kerberos

Puede configurar Oracle Autonomous Database para que utilice el protocolo de autenticación de red 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 Oracle Autonomous Database 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) o ktpass (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 PUBLIC_DOMAIN_NAME en la columna CLOUD_IDENTITY de V$PDBS. Este valor es diferente del nombre de dominio completo (FQDN) para una base de datos en un punto final privado.

Utilice la siguiente consulta para obtener kinstance:

SELECT json_value(cloud_identity, '$.PUBLIC_DOMAIN_NAME') "KINSTANCE" FROM v$pdbs;
kservice

En Autonomous Database, tiene dos opciones para el valor kservice:

  • Utilice el GUID de base de datos: si no proporciona un nombre de servicio Kerberos con DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION, el nombre de servicio por defecto utilizado es el GUID de la instancia de Autonomous Database. En este caso, al crear el archivo keytab, utilice el GUID como valor para el nombre del servicio.

    Puesto que, en el caso por defecto, el archivo de tabla de claves utiliza un nombre de servicio que es un GUID, que es específico de la instancia, al utilizar el nombre de servicio por defecto, debe generar diferentes archivos de tabla de claves para cada instancia de Autonomous Database.

    Utilice el siguiente comando para obtener GUID (el caso es significativo):

    SELECT GUID FROM v$pdbs;
  • Utilice un nombre personalizado: defina el nombre del servicio cuando desee utilizar los mismos archivos de tabla de claves en varias instancias de Autonomous Database. Al utilizar un nombre personalizado, no necesita crear ni cargar diferentes archivos de tabla de claves para cada instancia de Autonomous Database. Al utilizar un nombre personalizado, debe especificar el parámetro params kerberos_service_name con DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION. No es necesario especificar este parámetro cuando se utiliza el GUID para el nombre de servicio.

Después de activar Kerberos en la instancia de Autonomous Database, utilice la siguiente consulta para ver el nombre del servicio Kerberos:

SELECT SYS_CONTEXT('USERENV', 'KERBEROS_SERVICE_NAME') FROM DUAL;
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 Kerberos (krb.conf) y el archivo de tabla de claves de servicio (v5srvtab) listos. Para obtener más información sobre estos archivos y pasos para obtenerlos, consulte Configuración de la autenticación de Kerberos.

Activación de la autenticación de Kerberos en Autonomous Database

Muestra los pasos para activar la autenticación de Kerberos en la instancia de Autonomous Database.

Para ejecutar DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_ADMIN.

Para utilizar DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION para activar la autenticación de Kerberos:

Para activar la autenticación de Kerberos para Autonomous Database, debe obtener los archivos de configuración de Kerberos: krb.conf y el archivo de tabla de claves de servicio v5srvtab. Para obtener más información sobre estos archivos y los pasos necesarios para obtenerlos, consulte Configuración de la autenticación de Kerberos.

  1. Copie los archivos de configuración de Kerberos krb.conf y v5srvtab en un cubo 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.

  2. Run DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION procedure and pass in a location URI with the params JSON argument. Debe colocar los archivos de configuración krb.conf y v5srvtab en la ubicación de Object Storage especificada en el parámetro location_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;
    /
    Nota

    Oracle recomienda almacenar los archivos de configuración de Kerberos en un cubo privado del almacén de objetos.

    En este ejemplo, namespace-string es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname 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.

    La creación de una credencial para acceder al almacén de objetos de Oracle Cloud Infrastructure no es necesaria si activa las credenciales de la entidad de recurso. Consulte Uso de la principal de recurso para acceder a los recursos de Oracle Cloud Infrastructure para obtener más información.

    Si location_uri es una URL autenticada previamente, no es necesario proporcionar el valor credential_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 especificar el parámetro params kerberos_service_name para especificar un nombre de 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;
    /
  3. Después de activar la autenticación de Kerberos, elimine la configuración krb.conf y v5srvtab del almacén de objetos. Puede utilizar los métodos del almacén de objetos local para eliminar estos archivos o utilizar DBMS_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

Muestra los pasos para desactivar la autenticación de Kerberos para la instancia de Autonomous Database.

  1. Ejecute el procedimiento DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION para desactivar la autenticación Kerberos. Para ejecutar el procedimiento, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_ADMIN.
    BEGIN   
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /

    Esto desactiva la autenticación de Kerberos (o cualquier esquema de autenticación externo especificado) para Oracle Autonomous Database.

    Consulte DISABLE_EXTERNAL_AUTHENTICATION Procedure para obtener más información.

Notas sobre la autenticación de Kerberos en Autonomous Database

Proporciona notas sobre el uso de la autenticación de Kerberos para Autonomous Database.

  • Si activa la autenticación de Kerberos para Autonomous Database, puede utilizar la autenticación de base de datos basada en contraseña para la base de datos.

  • La autenticación de Kerberos no está soportada para estas herramientas:
    • API de Oracle Database para MongoDB

    • Oracle REST Data Services

    • Oracle Machine Learning

    • APEX

    • Oracle Graph Studio

    • Acciones de Oracle Database

  • 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 para restablecer la contraseña del usuario ADMIN y recuperar el acceso si un archivo de tabla de claves dañado provoca que falle la autenticación del usuario ADMIN.

  • El valor por defecto para el sesgo de reloj máximo en Autonomous Database es 300 segundos (5 minutos). No puede cambiar el valor por defecto de sesgo de reloj.