Uso de la autenticación multifactor con una base de datos de IA autónoma

La autenticación multifactora (MFA) es un método de autenticación que requiere el uso de más de uno de los factores para verificar una identidad de usuario para obtener acceso a un recurso.

Temas:

Acerca de la autenticación multifactor

La base de datos de IA autónoma admite la autenticación multifactor (MFA) para mejorar la seguridad de acceso al requerir un paso de verificación adicional más allá de la contraseña del usuario. Puede activar la MFA para conexiones de base de datos, para ejecutar sentencias SQL protegidas o para ambas.

Con la MFA activada, cuando se conecta a la base de datos, proporciona su nombre de usuario y contraseña, que es el primer factor, algo que sabe o puede memorizar. A continuación, se le solicita que proporcione un segundo código de verificación de un dispositivo MFA registrado, que es el segundo factor, algo que tiene. Los dos factores funcionan conjuntamente para agregar una capa adicional de seguridad mediante el uso del uso de información adicional o un segundo dispositivo para verificar su identidad y completar el proceso de inicio de sesión.

Autonomous AI Database mejora la seguridad al integrar la MFA en el ciclo de vida de autenticación y ejecución de SQL. Este enfoque ayuda a reducir el riesgo de acceso no autorizado y limita el impacto de las credenciales comprometidas al garantizar que solo los usuarios autenticados y verificados puedan conectarse y ejecutar operaciones SQL. Al aplicar la MFA basada en token o notificaciones push para flujos de trabajo de inicio de sesión y SQL, Autonomous AI Database refuerza la protección contra el robo de credenciales, la actividad maliciosa y la posible exposición a datos.

La MFA se activa en su base de datos de IA autónoma a través de los paquetes DBMS_MFA_*, que permiten utilizar métodos de verificación en capas durante la autenticación. Esto incluye una credencial primaria, como un nombre de usuario y una contraseña, combinada con un segundo factor de autenticación, como un código de acceso de un solo uso (OTP) o verificación a través de una aplicación de autenticador móvil. Esto garantiza que solo las identidades autorizadas y verificadas puedan acceder a la base de datos y realizar operaciones SQL.

Autonomous AI Database admite dos opciones de aplicación de MFA, que te permiten elegir el nivel de protección en función de tus necesidades de seguridad:
  • MFA de tiempo de conexión, que requiere MFA durante la conexión a la base de datos antes de establecer una sesión de base de datos.

  • MFA de acceso SQL (tokens de acceso SQL), que permite la conexión con credenciales primarias y aplica MFA solo cuando se ejecutan sentencias SQL confidenciales.

Nota

Esta función solo está soportada para la versión 19c de la base de datos Oracle.

Ventajas clave del uso de la MFA con una base de datos de IA autónoma

  • Protección más estricta para el acceso a la base de datos: la MFA mejora la seguridad agregando pasos de verificación adicionales durante la autenticación o la ejecución de una sentencia SQL. Incluso si una contraseña se ve comprometida, el acceso se bloquea a menos que el factor de autenticación adicional, como un código de acceso de un solo uso (OTP) o la aprobación de una aplicación de autenticador, se complete correctamente. Esto reduce el riesgo de acceso no autorizado a los recursos de la base de datos.

  • Defensa contra ataques comunes: la MFA ayuda a protegerse contra métodos de ataque comunes, como el phishing y los intentos de fuerza bruta. Mientras que los atacantes pueden intentar robar o adivinar contraseñas, la MFA agrega una barrera adicional que impide el acceso sin el segundo factor de autenticación, lo que hace que estos ataques sean mucho menos efectivos.

  • Soporte para los requisitos normativos: muchos sectores, incluidos los de finanzas, seguros y atención médica, requieren controles de autenticación estrictos para proteger los datos confidenciales. La activación de la MFA en la base de datos de IA autónoma ayuda a las organizaciones a cumplir estos requisitos normativos, al tiempo que demuestra el cumplimiento de las mejores prácticas de seguridad.

  • Visibilidad y supervisión mejoradas: la MFA incluye capacidades de supervisión que proporcionan visibilidad de la actividad de autenticación. Estas capacidades ayudan a identificar intentos de acceso inusuales o sospechosos, lo que le permite mantener una postura de seguridad sólida.

Conceptos relacionados con la autenticación multifactor

Los siguientes son conceptos clave que se utilizan en la MFA:

  • Autenticación multifactor (MFA): la MFA es un mecanismo de seguridad que requiere que los usuarios proporcionen dos o más formas distintas de verificación antes de obtener acceso a un sistema, aplicación o datos. Los factores de verificación incluyen:
    • Algo que usted sabe – Una contraseña, PIN o pregunta de seguridad.

    • Algo que tiene: un dispositivo físico como un teléfono inteligente, un token de hardware o una clave de seguridad.

    • Algo que eres: biometría, como una huella digital, reconocimiento facial o reconocimiento de voz.

  • Aplicación de autenticador: aplicación instalada en su dispositivo móvil que puede proporcionar tokens seguros basados en software para la verificación de la identidad. Por ejemplo, Oracle Mobile Authenticator. Para activar la MFA para su base de datos de IA autónoma, necesitará un dispositivo con una aplicación de autenticador instalada. Utilizará la aplicación para registrar su dispositivo y, a continuación, utilizará la misma aplicación (en el mismo dispositivo) para recibir una notificación push o cada vez que se conecte a su base de datos de IA autónoma.
  • Dispositivo móvil registrado: la autenticación multifactor está activada para un usuario específico y para un dispositivo específico. El procedimiento para activar MFA para un usuario incluye el registro del dispositivo móvil. Se debe utilizar este mismo dispositivo para generar la contraseña de un solo uso basada en tiempo cada vez que el usuario se conecte. Si el dispositivo móvil registrado deja de estar disponible, un administrador debe desactivar MFA para el usuario, de modo que se pueda volver a activar con un nuevo dispositivo.

  • Token de acceso SQL: los tokens de acceso SQL proporcionan una MFA segura para la base de datos de IA autónoma mediante el uso de contraseñas de un solo uso (OTP) estándar del sector. Estos tokens son necesarios para acceder a la base de datos o ejecutar operaciones SQL protegidas, lo que reduce significativamente el riesgo de acceso no autorizado.

  • Notificación push: las notificaciones push son mensajes en los que se puede hacer clic, cortos y emergentes que se envían desde aplicaciones o sitios web al dispositivo móvil de un usuario, incluso cuando el explorador o la aplicación no están activos.

Tipos de autenticación multifactor en la base de datos de IA autónoma

Describe las opciones de MFA disponibles en la base de datos de IA autónoma y cómo se aplica cada una al acceso a la base de datos, ya sea durante la conexión o al ejecutar sentencias SQL protegidas.

MFA de tiempo de conexión

La MFA de tiempo de conexión en Autonomous AI Database solo se puede implementar mediante notificaciones push seguras entregadas al dispositivo móvil registrado del usuario a través de la aplicación Oracle Mobile Authenticator (OMA) o Cisco Duo Mobile. Los métodos alternativos, como correo electrónico o Slack, no están soportados para este flujo de trabajo. Esto garantiza que solo los usuarios que poseen credenciales válidas y el dispositivo móvil autorizado puedan acceder a la base de datos, proporcionando una protección sólida contra el robo de credenciales y respaldando el cumplimiento normativo para la MFA.

Cuando intenta registrar un usuario de base de datos existente para la MFA de conexión, Oracle envía un correo electrónico de inscripción puntual a la dirección de correo electrónico del usuario. El contenido de la inscripción depende del autenticador seleccionado: los correos electrónicos de OMA incluyen un enlace de inscripción y un código QR para inscribir el dispositivo del usuario en la aplicación de OMA, mientras que los correos electrónicos de DUO proporcionan el enlace de inscripción y las instrucciones para completar el registro del dispositivo. El usuario debe instalar la aplicación de autenticación adecuada y completar el registro haciendo clic en el enlace o escaneando el código QR en la aplicación. El correo electrónico se envía en un formato fijo solo en inglés y no se permite la personalización del correo electrónico.

Después del registro correcto del dispositivo, el usuario puede iniciar sesión en la base de datos utilizando su contraseña como factor de autenticación principal. Una vez validada la contraseña, el servidor de base de datos envía una notificación push a la aplicación registrada. Si el usuario acepta la notificación push, el proceso de autenticación se completa y la sesión de conexión se establece correctamente.

Token de acceso SQL

La autenticación del tipo de token de acceso SQL en Autonomous AI Database es un método de MFA que requiere que los usuarios verifiquen su identidad utilizando sus credenciales y un segundo factor, ya sea un token de acceso SQL de una sola vez o una notificación push, antes de que puedan ejecutar sentencias SQL. Después de iniciar sesión con un nombre de usuario y una contraseña, el usuario debe solicitar un código de acceso de un solo uso o una notificación push, que se entrega a través de una aplicación de autenticador (OMA), un correo electrónico o Slack, para autenticar la sesión y permitir la ejecución de sentencias SQL protegidas. La MFA del token de acceso SQL refuerza la seguridad de la base de datos al garantizar que las sentencias SQL confidenciales solo puedan ser ejecutadas por usuarios que posean las credenciales correctas y el segundo factor verificado, lo que reduce el riesgo de acceso no autorizado y cumple los requisitos de conformidad.

Nota

Para la MFA del token de acceso SQL, las notificaciones push solo están soportadas con OMA.

Después de conectarse a Autonomous AI Database mediante su método de autenticación estándar, como un nombre de usuario/contraseña de base de datos local o un proveedor de identidad externo que incluya OCI IAM, Azure Entra o Kerberos, a continuación se describe el flujo de autorización de MFA del token de acceso SQL.


A continuación, se incluye la Descripción de autonomous-sqlaccesstoken-workflow.png
Descripción de la ilustración autonomous-sqlaccesstoken-workflow.png

  1. Solicitar un token de acceso SQL

    Una vez establecida la sesión, solicite un token de acceso SQL para activar las operaciones SQL.

  2. Recibir la notificación OTP o push

    Oracle genera una OTP solo cuando selecciona un canal de entrega, correo electrónico o Slack basados en OTP. Estas OTP tienen un tiempo limitado y se deben recuperar del canal seleccionado antes de que caduquen. Para la autenticación basada en aplicaciones, Oracle Mobile Authenticator (OMA) es la única aplicación de autenticador soportada, y utiliza una notificación push como segundo factor en lugar de generar una OTP. Como resultado, para la MFA del token de acceso SQL, las OTP se entregan solo a través de correo electrónico o Slack, mientras que OMA proporciona aprobación a través de notificaciones push.

  3. Autenticar la sesión

    Introduzca la OTP que ha recibido para verificar su identidad y activar la sesión SQL. Este paso solo es necesario para la autenticación OTP de Slack o correo electrónico y no es necesario cuando se utiliza la autenticación basada en aplicaciones (OMA), que utiliza una notificación push en su lugar.

  4. Ejecutar Sentencias SQL

    Una vez verificado el token, puede ejecutar sentencias SQL en la base de datos según lo permitido.

Nota

Puede registrar un usuario para MFA de tiempo de conexión y MFA de token de acceso SQL. Con esta configuración, el usuario debe completar la MFA al conectarse, aprobar una notificación push en su dispositivo móvil y también verificar un token de acceso SQL a través del canal de entrega elegido antes de ejecutar sentencias SQL.

Requisitos

Muestra los requisitos para activar la MFA en su base de datos de IA autónoma.

En función del tipo de MFA seleccionado, realice los pasos de configuración necesarios:

  • MFA de tiempo de inicio de sesión: la MFA de tiempo de inicio de sesión solo se admite mediante notificaciones push mediante OMA y Duo. Descargue, instale y configure la aplicación elegida en el dispositivo móvil antes de usarla.

  • Token de acceso SQL: se debe configurar al menos un canal de entrega de token para los tokens de acceso SQL. Entre los métodos de entrega soportados se incluyen el autenticador de correo electrónico, Slack y OMA.

    • Aplicación de autenticador: instale OMA en su dispositivo móvil. Debe configurar la MFA en un dispositivo al que pueda acceder cada vez que se conecte; la MFA no la puede activar otro usuario.

      Para activar la MFA, utilice OMA en su dispositivo móvil para escanear el código QR que se muestra en la interfaz de usuario de Database Actions. Para obtener más información, consulte Configuración de Oracle Mobile Authenticator.

    • Correo electrónico: asegúrese de que la entrega de correo electrónico está activada y de que todos los usuarios de la base de datos tienen direcciones de correo electrónico válidas y configuradas.

      Consulte Envío de correo electrónico en base de datos de IA autónoma para obtener más información.

    • Slack: configure el plugin de Slack y registre el ID de Slack de cada usuario para activar la entrega de OTP mediante Slack.

      Consulte Envío de notificaciones de Slack desde la base de datos de IA autónoma para obtener más información.

  • Debe estar conectado como usuario ADMIN o tener los privilegios necesarios en el paquete DBMS_MFA_ADMIN para registrar usuarios para MFA y gestionar atributos de token.

  • Para los flujos de trabajo de token de acceso SQL, los usuarios deben tener los privilegios necesarios en el paquete DBMS_MFA para inicializar una sesión de MFA y validar un token de acceso SQL.

Configurar MFA para base de datos de IA autónoma

Describe cómo configurar la MFA para su base de datos de IA autónoma, incluida la configuración de las credenciales necesarias, la configuración de los canales de notificación, el registro de usuarios para la MFA LOGON o la MFA SQL Access y la gestión de tokens de acceso SQL.

Temas:

Configurar canales de notificación para MFA

Describe cómo configurar canales de notificación para MFA, como Email, Slack y Oracle Mobile Authenticator (OMA), para la entrega de OTP o notificaciones push.

Un canal de notificación es el mecanismo que se utiliza para entregar desafíos de MFA a los usuarios, como aprobaciones push u OTP, tanto en los flujos de MFA de tiempo de conexión (LOGON) como en los flujos de MFA de token de acceso SQL. Los canales soportados incluyen correo electrónico, SMS, Slack y aplicaciones de autenticador, y cada canal requiere atributos de configuración específicos, por ejemplo, detalles SMTP para la entrega de correo electrónico o una configuración de espacio de trabajo de Slack para Slack, para garantizar que los mensajes se entreguen de forma segura y fiable al usuario deseado.

Antes de configurar los canales de notificación, asegúrese de haber configurado las credenciales necesarias para los canales que planea utilizar. Tenga en cuenta que algunos canales solo se aplican a LOGON MFA, por ejemplo, OMA y Duo, mientras que otros solo se aplican a SQL Access Token MFA, por ejemplo, OMA, Slack y correo electrónico, por lo que configure solo lo que necesita para el flujo de MFA elegido.

La siguiente tabla resume los canales de notificación de MFA disponibles y muestra qué tipo de MFA admite cada canal (conexión de MFA y/o MFA de token de acceso SQL), junto con el método de notificación correspondiente (entrega OTP o aprobación push).

Canal de notificación Conexión de MFA MFA de token de acceso SQL Método de Notificación

Correo electrónico

Sí (solo correos electrónicos de inscripción de MFA)

Token de acceso SQL: OTP entregado por correo electrónico.

Conexión: no se admite como segundo factor, el correo electrónico solo se envía para notificaciones de inscripción.

Slack

No

OTP entregado a través de Slack.

Oracle Mobile Authenticator (OMA)

Aprobación de notificaciones push. No se ha generado ninguna OTP.

Cisco Duo

No

Notificaciones push a través de Duo.

Utilice el procedimiento DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION para definir los canales de notificación utilizados para entregar mensajes de MFA (por ejemplo, comprobaciones de token de acceso SQL). En este procedimiento, especifique el tipo de canal, como correo electrónico, Slack o un autenticador, y proporcione los atributos específicos del canal o las referencias de credenciales necesarias para una entrega segura y fiable. Debido a que cada canal tiene requisitos diferentes, los valores de atributo que proporcione dependen del canal que configure; consulte los siguientes ejemplos para conocer las entradas esperadas por canal.

Notificación por correo electrónico

Configure los valores de objeto de credencial de correo electrónico y notificación SMTP para que Oracle pueda enviar correos electrónicos relacionados con MFA. Esto es necesario para la configuración de inicio de sesión de MFA (OMA y Duo), incluidos los correos electrónicos de registro de dispositivos; sin él, los usuarios no recibirán las notificaciones de registro requeridas. El correo electrónico no es un segundo factor soportado para el inicio de sesión de MFA: la entrega de OTP de correo electrónico solo está soportada para la MFA del token de acceso SQL.

Para configurar un proveedor de correo electrónico personalizado para enviar tokens de acceso de MFA, debe crear una credencial de proveedor de correo electrónico en la base de datos mediante el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL. Por ejemplo:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL(
       credential_name => 'EMAIL_CRED_01',
       username        => '<username>',
       password        => '<password>'
   );
END;
/
De esta forma, se configuran las credenciales necesarias para permitir la comunicación entre la base de datos de IA autónoma y su proveedor de correo electrónico personalizado.

Otorgue permiso a la base de datos para conectarse al host SMTP para enviar correos electrónicos mediante la actualización de la lista de control de acceso (ACL). Por ejemplo:

BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
    host        => 'smtp.email.us-ashburn-1.oci.oraclecloud.com',
    lower_port  => 587,
    upper_port  => 587,
    ace         => xs$ace_type(
                     privilege_list  => xs$name_list('SMTP'),
                     principal_name  => 'ADMIN',
                     principal_type  => xs_acl.ptype_db
                   )
  );
END;
/
Esto le permite conectarse al host SMTP en el puerto 587 para enviar correos electrónicos.

Defina la configuración para que el canal de correo electrónico entregue tokens de acceso de MFA mediante las credenciales que creó. Por ejemplo:

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'EMAIL',
    attributes       => JSON_OBJECT(
      'credential_name'                 VALUE 'EMAIL_CRED_01',
      'smtp_host'                       VALUE 'smtp.email.us-ashburn-1.oci.oraclecloud.com',
      'smtp_port'                       VALUE 465,
      'sender'                          VALUE 'mfa_alerts@example.com',
      'sender_email_display_name'       VALUE 'DB MFA ALERTS'
    )
  );
END;
/
Esto configura los valores de notificación por correo electrónico para la entrega de token de MFA, enlaza el canal de correo electrónico a sus credenciales personalizadas y permite que la base de datos envíe códigos de acceso únicos por correo electrónico; tenga en cuenta que la entrega de token de MFA por correo electrónico solo está disponible para SQL Access.

Notificación de Slack

Cree una credencial para almacenar de forma segura los detalles de autenticación para la integración de Slack. Por ejemplo:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'SLACK_CRED',
    username        => 'username',
    password        => '<password>'
  );
END;
/
Esto registra las credenciales necesarias para autenticarse con la integración de Slack.

Permita que la base de datos se conecte al punto final de API de Slack actualizando la lista de control de acceso (ACL) para las llamadas HTTPS salientes. Por ejemplo:

BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
    host           => 'slack.com',
    lower_port     => 443,
    upper_port     => 443,
    ace            => xs$ace_type(
                        privilege_list  => xs$name_list('http'),
                        principal_name  => 'ADMIN',
                        principal_type  => xs_acl.ptype_db
                      )
  );
END;
/
Esto le permite conectarse a Slack a través de HTTPS (puerto 443) para enviar notificaciones.

Configure el canal de Slack para la entrega de tokens de MFA haciendo referencia a la credencial que ha creado. Por ejemplo:

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'SLACK',
    attributes        => JSON_OBJECT(
      'credential_name' VALUE 'SLACK_CRED'
    )
  );
END;
/
Esto enlaza la credencial de Slack al canal de notificación, lo que permite la entrega de tokens de MFA mediante Slack.

Notificación de Oracle Mobile Authenticator (OMA)

Cree una credencial para almacenar de forma segura el ID de cliente de OMA y el secreto de cliente. Por ejemplo:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OMA_CRED',
    username        => '<username>',
    password        => '<password>'
  );
END;
/
De esta forma, se registran las credenciales de cliente de la aplicación OMA en la base de datos.

Defina el canal de notificación de OMA y asócielo a la credencial y al punto final de la API de OMA que ha creado. Por ejemplo:

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'OMA',
    attributes        => JSON_OBJECT(
      'credential_name' VALUE 'OMA_CRED',
      'api_endpoint'    VALUE 'https://idcs-c*****************60.identity.oraclecloud.com'
    )
  );
END;
/
Este paso configura la base de datos para que entregue tokens de MFA mediante Oracle Mobile Authenticator a través del punto final especificado.

Notificación de DUO de Cisco

Cree una credencial para almacenar de forma segura la clave de integración y la clave secreta de DUO. Por ejemplo:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DUO_CRED',
    username        => '<integrationkey>',
    password        => '<secretkey>'
  );
END;
/
Esto registra la clave de integración y la clave secreta de la aplicación DUO como una credencial en la base de datos.

Configure el canal de notificación de DUO asociándolo a la credencial creada y especificando el punto final de API de DUO.

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'DUO',
    attributes        => JSON_OBJECT(
      'credential_name' VALUE 'DUO_CRED',
      'api_endpoint'    VALUE 'api-855fd6a0.duosecurity.com'
    )
  );
END;
/
De esta forma, se configura la base de datos para que entregue tokens de MFA mediante DUO con las credenciales de aplicación y el punto final de API proporcionados.

Registrar un usuario

Muestra los pasos para registrar un usuario de la base datos para MFA.

Después de configurar el canal de notificación, el siguiente paso es registrar un usuario de base de datos existente para MFA. Al registrarse, defina el tipo de MFA en MFA de tiempo de conexión o MFA de token de acceso SQL. Opcionalmente, puede especificar el canal de notificación; si no se proporciona, el correo electrónico se utiliza por defecto. Sin embargo, para la MFA de tipo inicio de sesión, debe especificar OMA o Duo como canal. Opcionalmente, también puede definir atributos de token personalizados para personalizar el comportamiento del token de acceso SQL para el usuario.

Utilice DBMS_MFA_ADMIN.REGISTER_USER para registrar un usuario de base de datos existente para MFA. Al registrar el usuario, defina la autenticación de MFA type para especificar el flujo que desea activar:
  • LOGON para MFA de tiempo de conexión durante la conexión a la base de datos, o

  • Tipo de token de acceso SQL para MFA basada en token.

Si proporciona el JSON attributes opcional, tenga en cuenta que los atributos soportados varían según el tipo de autenticación de MFA, por ejemplo, LOGON soporta valores específicos de conexión como el método de autenticación (por ejemplo, auth_method => 'duo_push'), pero no soporta atributos de validez de token como duration_min, que se aplican solo a la MFA del token de acceso SQL.

Consulte DBMS_MFA_ADMIN.REGISTER_USER como referencia.

Ejemplo para registrar el usuario de base de datos existente SCOTT para la MFA de tiempo de conexión mediante OMA como canal de notificación

BEGIN  
  DBMS_MFA_ADMIN.REGISTER_USER(  
    username   => 'SCOTT',  
    type       => 'LOGON',  
    email      => 'scott@example.com',  
    attributes => JSON_OBJECT(  
                          'auth_method' VALUE 'oma_push')  
  );  
END;  
/

En este ejemplo, si SCOTT ya está inscrito en el autenticador, no se envía ningún correo electrónico de inscripción nuevo. Si SCOTT aún no está inscrito, en este ejemplo se inicia la inscripción de MFA enviando un correo electrónico único a scott@example.com con un enlace de inscripción y un código QR para Oracle Mobile Authenticator (OMA).

SCOTT instala la aplicación OMA y completa la inscripción del dispositivo mediante el enlace o el código QR. Después de la inscripción, SCOTT se conecta con una contraseña y, a continuación, aprueba la notificación push de OMA para completar la autenticación de MFA LOGON.

Ejemplo para registrar el usuario de base de datos existente SCOTT para la MFA de tiempo de inicio de sesión mediante Duo como canal de notificación

BEGIN
  DBMS_MFA_ADMIN.REGISTER_USER(
    username   => 'SCOTT',
    type       => 'LOGON',
    email      => 'scott@example.com',
    attributes => JSON_OBJECT(
                    'auth_method' VALUE 'duo_push') 
  );
END;
/

En este ejemplo, si SCOTT ya está inscrito en el autenticador, no se envía ningún correo electrónico de inscripción nuevo. Si SCOTT aún no está inscrito, en este ejemplo se inicia la inscripción de MFA enviando un correo electrónico único a la dirección especificada con un enlace de inscripción.

SCOTT instala la aplicación Cisco Duo y completa la inscripción del dispositivo mediante el enlace. Después de la inscripción, SCOTT se conecta con una contraseña y, a continuación, aprueba la notificación push de Duo para completar la conexión con autenticación de dos factores.

Nota

Para la MFA de tiempo de conexión (LOGON), auth_method es el único atributo soportado.

Ejemplo para registrar SCOTT para la MFA del token de acceso SQL mediante Slack como canal de notificación

BEGIN
  DBMS_MFA_ADMIN.REGISTER_USER(
    username   => 'SCOTT',
    type       => 'SQL ACCESS',
    email      => 'scott@example.com',
    attributes => JSON_OBJECT(
      'duration_min'   VALUE 720,
      'read_only'      VALUE TRUE,
      'roles'          VALUE JSON_ARRAY('DEVELOPER_ROLE', 'INFRA_ROLE'),
      'scope'          VALUE 'SESSION',
      'slack_member_id' VALUE '<slack_member_id>'    
    )
  );
END;
/

En este ejemplo, se registra el usuario SCOTT con MFA de acceso SQL. Define la duración del token en 720 minutos, otorga acceso de solo lectura, asocia roles específicos, define el ámbito del token como basado en sesión y especifica un ID de miembro de Slack para las notificaciones.

Nota

read_only solo se aplica cuando scope se define en SESSION. Si scope no es SESSION, el atributo read_only no está soportado.

Ejemplo de registro de SCOTT para MFA de token de acceso SQL mediante OMA como canal de notificación

BEGIN
  DBMS_MFA_ADMIN.REGISTER_USER(
    username   => 'scott',
    type       => 'SQL ACCESS',
    email      => 'scott@example.com',
    attributes => JSON_OBJECT(
      'scope'            VALUE 'USER',
      'duration_min'     VALUE 5,
      'idle_timeout_min' VALUE 2,
      'auth_method'      VALUE 'OMA_PUSH'
  );
END;
/

En este ejemplo, se registra el usuario SCOTT para la MFA del token de acceso SQL. También configura el token para que sea de corta duración, que es válido durante 5 minutos y caduca después de 2 minutos de inactividad y requiere aprobación mediante una notificación push de OMA.

Nota

Puede registrar el mismo usuario para la MFA de conexión y el token de acceso SQL registrándolos por separado con las mismas direcciones de correo electrónico. Este enfoque permite al usuario utilizar varios tipos de MFA según sea necesario.

Validar sesión para autenticación de token de acceso SQL

Muestra los pasos para validar una sesión para la autenticación del token de acceso SQL.

Para ejecutar sentencias SQL en una sesión protegida por autenticación de token de acceso SQL, debe validar la sesión mediante un código de acceso de un solo uso entregado a través del canal de notificación configurado y el usuario debe tener el privilegio necesario en DBMS_MFA.

Para validar la sesión:
  1. Conéctese a la base de datos con sus credenciales estándar.
    CONNECT scott/<password>@<adbs_connect_string>;
  2. Intento de ejecutar una instrucción SQL
    SELECT COUNT(*) FROM SCOTT.EMP;

    Si la validación del token de acceso SQL está pendiente, encontrará un error como, por ejemplo, ORA-64660: Token Authorization is not complete for the user or the session.

  3. Inicialice la sesión y solicite un token de acceso SQL. Según el canal de notificación configurado, este proceso le enviará un código de acceso de un solo uso (OTP) o una notificación push.
    BEGIN
    DBMS_MFA.INITIALIZE_SESSION(
      email => 'scott_alert@example.com'
    );
    END;
    /

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

  4. Establezca el token en la sesión. Este paso no es necesario si el usuario está registrado para utilizar una aplicación de autenticación para MFA; en este caso, el usuario recibe una notificación push y simplemente aprueba la solicitud de autenticación.
    BEGIN
      DBMS_MFA.SET_TOKEN(
        token => '98475683'
      );
    END;
    /
  5. Después de validar el token, puede ejecutar sentencias SQL según lo permitido.
    SELECT COUNT(*) FROM SCOTT.EMP;
    
    
    Count
    _________
    15

Gestionar usuarios de MFA y atributos de token

En esta sección se explica cómo gestionar los usuarios inscritos en MFA, incluida la forma de anular el registro de los usuarios cuando ya no necesitan acceso a MFA y cómo configurar o actualizar los atributos de token.

Temas:

Definir atributos de token

En esta sección se explica cómo configurar el comportamiento del token de MFA, como el ámbito, la duración de validez, el timeout de inactividad, el método de entrega y las restricciones de acceso, mediante valores por defecto globales (solo tokens de acceso SQL) y sustituciones por usuario (tanto para el inicio de sesión como para los tokens de acceso SQL).

Los atributos de token controlan el comportamiento de los tokens de acceso SQL, incluido el ámbito del token, la duración de la validez, el timeout de inactividad, el método de entrega y las restricciones de acceso. Estos atributos se pueden configurar en dos niveles: globalmente o por usuario.
  • Los atributos de token globales definen el comportamiento de token por defecto para todos los usuarios registrados para la MFA del token de acceso SQL. Cuando se definen globalmente, estos valores por defecto se aplican a todos los usuarios elegibles a menos que se sustituyan explícitamente por la configuración específica del usuario, lo que ayuda a aplicar políticas de seguridad coherentes en toda la base de datos. Los atributos de token globales solo se pueden definir para tokens de acceso SQL.
  • Los atributos de token específicos del usuario le permiten personalizar el comportamiento del token para un usuario individual. Estos valores sustituyen los valores predeterminados globales y se pueden utilizar para aplicar controles más estrictos o más flexibles en función del rol del usuario y los requisitos de acceso.

El uso de atributos de token globales y de nivel de usuario ayuda a equilibrar la aplicación de seguridad centralizada con la flexibilidad necesaria para satisfacer las necesidades de acceso individuales.

Definir atributos globales de token de acceso SQL

Utilice el procedimiento DBMS_MFA_ADMIN.SET_GLOBAL_TOKEN_ATTRIBUTES para configurar los atributos del token de acceso SQL por defecto global. Este procedimiento define un juego global de valores de atributo de token (proporcionado como JSON) que la base de datos aplica automáticamente cada vez que se emite un token de acceso SQL para los usuarios registrados para la MFA del token de acceso SQL. También puede definir atributos de token específicos del usuario para sustituir estos valores por defecto globales cuando sea necesario.

BEGIN
  DBMS_MFA_ADMIN.SET_GLOBAL_TOKEN_ATTRIBUTES(
    attributes => '{
      "duration_min": 60,
      "scope": "session",
      "idle_timeout_min": 15,
      "read_only": false
    }'
  );
END;
/

Esto define los atributos de token globales para todos los usuarios registrados para la MFA del token de acceso SQL, como la duración del token, el ámbito, el timeout de inactividad y el acceso de solo lectura. Estos atributos globales sirven como valores por defecto y se aplican automáticamente a todos los usuarios activados para la MFA del token de acceso SQL, a menos que se definan atributos específicos del usuario para sustituirlos.

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

Definir atributos de token para el inicio de sesión y el token de acceso SQL

Utilice los procedimientos DBMS_MFA_ADMIN.SET_ATTRIBUTES y DBMS_MFA_ADMIN.SET_ATTRIBUTE para definir atributos de token para un usuario específico. Estos valores de nivel de usuario se aplican al tipo de MFA especificado (por ejemplo, LOGON o SQL ACCESS TOKEN) y sustituyen los valores por defecto aplicables.
  • Utilice DBMS_MFA_ADMIN.SET_ATTRIBUTES para definir uno o más atributos de token para un usuario en una sola llamada (transferiendo un objeto JSON de pares de nombre/valor de atributo).
  • Utilice DBMS_MFA_ADMIN.SET_ATTRIBUTE para definir un atributo de token a la vez para un usuario (especificando un único attribute_name y attribute_value).
  • auth_method indica qué proveedor de MFA configurado se utiliza para entregar y validar la comprobación de conexión para la sesión (por ejemplo, OMA, Duo o Slack). Para la MFA de tiempo de conexión, auth_method es el único atributo soportado; otros atributos relacionados con la MFA no son aplicables para la MFA de tiempo de conexión.

Ejemplo 5-1 Utilice DBMS_MFA_ADMIN.SET_ATTRIBUTES para definir uno o más atributos de token para un usuario especificado

Proporcione el nombre de usuario, el tipo de MFA y un objeto attributes de JSON que contenga los nombres y valores de atributo. Los valores especificados se aplican a ese usuario y sustituyen los valores por defecto aplicables.

BEGIN
  DBMS_MFA_ADMIN.SET_ATTRIBUTES (
    username   => 'SCOTT3',
    type       => 'SQL ACCESS',
    attributes => JSON_OBJECT(
      'duration_min'     VALUE 30,
      'email'            VALUE 'scott3_alerts@example.com',
      'scope'            VALUE 'session',
      'idle_timeout_min' VALUE 20
    )
  );
END;
/

En este ejemplo, se configuran los atributos de token de acceso SQL específicos del usuario para SCOTT3, se define una duración de token de 30 minutos, un timeout de inactividad de 20 minutos, el ámbito de sesión y la dirección de correo electrónico utilizada para la entrega de token, lo que sustituye los valores por defecto globales.

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

Ejemplo 5-2 Utilice DBMS_MFA_ADMIN.SET_ATTRIBUTE para definir un único atributo de token para un usuario especificado

Proporcione el nombre de usuario, el tipo de MFA, el ID de correo electrónico, el nombre de atributo y el valor de atributo. La configuración se aplica a ese usuario y sustituye los valores predeterminados aplicables.

BEGIN
  DBMS_MFA_ADMIN.SET_ATTRIBUTE(
    username        => 'SCOTT4',
    type            => 'SQL ACCESS',
    email           => 'scott4_alerts@example.com',
    attribute_name  => 'duration_min',
    attribute_value => '25'
  );
END;
/

En este ejemplo, se define el atributo duration_min para SCOTT4, se define el período de validez del token de acceso SQL en 25 minutos y se especifica la dirección de correo electrónico de entrega. Este valor de nivel de usuario sustituye cualquier valor por defecto aplicable (incluidos los valores por defecto del token de acceso SQL global, si está configurado).

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

Anulación del registro de un usuario

Muestra cómo utilizar el procedimiento DBMS_MFA_ADMIN.DEREGISTER_USER para eliminar un usuario de base de datos de MFA.

Al anular el registro del usuario, se desactivan los tokens de acceso para el esquema especificado y se detiene la aplicación de MFA para el usuario.

Por ejemplo:
BEGIN
  DBMS_MFA_ADMIN.DEREGISTER_USER(
    username => 'SCOTT',
    type     => 'SQL ACCESS',
    email    => 'scott@example.com'
  );
END;
/

Esto elimina al usuario SCOTT de la MFA de acceso SQL. La aplicación de MFA y los tokens de acceso ya no son necesarios para este usuario. Sin embargo, si SCOTT está registrado para MFA con varios correos electrónicos, deberá anular el registro de cada entrada por separado para completar la eliminación.

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

Limitaciones para la autenticación multifactor en la base de datos de IA autónoma

Muestra las limitaciones con la autenticación multifactor en Autonomous AI Database.

Las siguientes limitaciones se aplican cuando se utiliza la autenticación multifactor con Autonomous AI Database:
  • Los tokens de acceso SQL no están soportados para los usuarios de RAS (Remote Application Service). Se trata de cuentas de aplicación no interactivas, que no pueden proporcionar el segundo factor necesario para la autenticación multifactor.

  • Con la continuidad de aplicaciones o la continuidad de aplicaciones transparente no se mantiene la continuidad de sesiones. Si se termina una sesión de usuario, la sesión se desconecta incluso si el token de acceso SQL era válido.

  • Los trabajos del programador se deben crear en una sesión autenticada y válida. Una vez creados, estos trabajos se ejecutan de forma independiente y no requieren que se ejecuten tokens de acceso SQL.

  • Los usuarios no registrados para la MFA del token de acceso SQL no pueden ejecutar SQL en un enlace de base de datos propiedad de un usuario registrado para la MFA del token de acceso SQL, porque los tokens de acceso SQL no se propagan a través de enlaces de base de datos. Oracle recomienda evitar enlaces de base de datos propiedad de usuarios registrados de MFA de token de acceso SQL; en su lugar, utilice un propietario de enlace de base de datos dedicado que no esté configurado para MFA de token de acceso SQL.
  • Los usuarios registrados no pueden realizar la importación/exportación de su propio esquema después de definir un token de acceso SQL. Las operaciones de exportación fallan con un error de autorización de token porque la validación de token es necesaria para ejecutar sentencias SQL.
  • Los usuarios registrados de SQL ACCESS no están soportados para su uso con las herramientas DBActions.