Utiliser l'authentification multifacteur avec la base de données Autonomous AI

L'authentification multifacteur est une méthode d'authentification qui exige l'utilisation de plusieurs éléments pour vérifier l'identité d'un utilisateur afin d'accéder à une ressource.

Sujets :

A propos de l'authentification multifacteur

Autonomous AI Database prend en charge l'authentification à plusieurs facteurs (MFA) pour améliorer la sécurité d'accès en exigeant une étape de vérification supplémentaire au-delà du mot de passe utilisateur. Vous pouvez activer l'authentification à plusieurs facteurs pour les connexions à la base de données, pour l'exécution d'instructions SQL protégées ou pour les deux.

Lorsque l'authentification à plusieurs facteurs est activée, lorsque vous connectez votre base de données, vous fournissez votre nom d'utilisateur et votre mot de passe, ce qui est le premier facteur – quelque chose que vous connaissez ou que vous pouvez mémoriser. Vous devez ensuite fournir un deuxième code de vérification à partir d'un appareil MFA enregistré, ce qui est le deuxième facteur - quelque chose que vous avez. Les deux facteurs fonctionnent ensemble afin d'ajouter une couche de sécurité supplémentaire à l'aide d'informations supplémentaires ou d'un second appareil pour vérifier votre identité et terminer le processus de connexions.

Autonomous AI Database améliore la sécurité en intégrant l'authentification à plusieurs facteurs dans le cycle de vie de l'authentification et de l'exécution SQL. Cette approche permet de réduire le risque d'accès non autorisé et limite l'impact des informations d'identification compromises en veillant à ce que seuls les utilisateurs authentifiés et vérifiés puissent se connecter et exécuter des opérations SQL. En appliquant l'authentification à plusieurs facteurs basée sur des jetons ou des notifications Push pour les workflows de connexion et SQL, Autonomous AI Database renforce la protection contre le vol d'informations d'identification, les activités malveillantes et l'exposition potentielle aux données.

L'authentification à plusieurs facteurs est activée sur votre base de données Autonomous AI via les packages DBMS_MFA_*, qui permettent d'utiliser des méthodes de vérification en couches lors de l'authentification. Cela inclut des informations d'identification principales, telles qu'un nom d'utilisateur et un mot de passe, associées à un second facteur d'authentification, tel qu'un code secret à usage unique (OTP) ou une vérification via une application d'authentification mobile. Ainsi, seules les identités autorisées et vérifiées peuvent accéder à la base de données et effectuer des opérations SQL.

Autonomous AI Database prend en charge deux options d'application de l'authentification à plusieurs facteurs, vous permettant de choisir le niveau de protection en fonction de vos besoins en matière de sécurité :
  • Authentification à plusieurs facteurs lors de la connexion à la base de données, qui nécessite l'authentification à plusieurs facteurs lors de la connexion à la base de données avant l'établissement d'une session de base de données.

  • SQL Access MFA (SQL Access Tokens), qui permet la connexion avec les informations d'identification principales et n'applique l'authentification à plusieurs facteurs que lorsque des instructions SQL sensibles sont exécutées.

Remarque

Cette fonctionnalité est uniquement prise en charge pour la version 19c de la base de données Oracle.

Principaux avantages de l'utilisation de l'authentification à plusieurs facteurs avec la base de données d'IA autonome

  • Protection renforcée pour l'accès à la base de données : l'authentification à plusieurs facteurs améliore la sécurité en ajoutant des étapes de vérification supplémentaires lors de l'authentification ou de l'exécution d'une instruction SQL. Même si un mot de passe est compromis, l'accès est toujours bloqué, sauf si le facteur d'authentification supplémentaire, tel qu'un code secret à usage unique (OTP) ou l'approbation d'une application d'authentification, est terminé avec succès. Cela réduit le risque d'accès non autorisé aux ressources de base de données.

  • Défense contre les attaques courantes : l'authentification à plusieurs facteurs permet de se protéger contre les méthodes d'attaque courantes telles que le phishing et les tentatives de force brute. Alors que les attaquants peuvent tenter de voler ou de deviner les mots de passe, MFA ajoute une barrière supplémentaire qui empêche l'accès sans le deuxième facteur d'authentification, ce qui rend ces attaques beaucoup moins efficaces.

  • Prise en charge des réglementations : de nombreux secteurs, notamment la finance, l'assurance et les soins de santé, nécessitent des contrôles d'authentification forts pour protéger les données sensibles. L'activation de l'authentification à plusieurs facteurs dans Autonomous AI Database aide les entreprises à respecter ces exigences réglementaires tout en démontrant le respect des meilleures pratiques en matière de sécurité.

  • Visibilité et surveillance améliorées : l'authentification à plusieurs facteurs inclut des fonctionnalités de surveillance qui fournissent une visibilité sur l'activité d'authentification. Ces fonctionnalités permettent d'identifier les tentatives d'accès inhabituelles ou suspectes, ce qui vous permet de maintenir un niveau de sécurité élevé.

Concepts liés à l'authentification à plusieurs facteurs

Les concepts clés suivants sont utilisés dans l'authentification à plusieurs facteurs :

  • Authentification à plusieurs facteurs : l'authentification à plusieurs facteurs est un mécanisme de sécurité qui exige des utilisateurs qu'ils fournissent au moins deux formes de vérification distinctes avant d'accéder à un système, une application ou des données. Les facteurs de vérification comprennent :
    • Quelque chose que vous connaissez : un mot de passe, un code PIN ou une question de sécurité.

    • Quelque chose que vous avez – Un appareil physique comme un smartphone, un jeton matériel ou une clé de sécurité.

    • Quelque chose que vous êtes – la biométrie, comme une empreinte digitale, la reconnaissance faciale ou la reconnaissance vocale.

  • Application d'authentification : application que vous installez sur votre appareil mobile qui peut fournir des jetons sécurisés basés sur un logiciel pour La vérification d'identité. Par exemple, Oracle Mobile Authenticator. Pour activer l'authentification à plusieurs facteurs pour votre base de données Autonomous AI, vous aurez besoin d'un appareil avec une application d'authentification installée. Vous utiliserez l'application pour inscrire votre appareil, puis vous utiliserez la même application (sur le même appareil) pour recevoir une notification Push ou à chaque connexion à votre base de données Autonomous AI.
  • Appareil mobile inscrit : l'authentification à plusieurs facteurs est activée pour un utilisateur et un appareil spécifiques. La procédure d'activation de l'authentification à plusieurs facteurs pour un utilisateur inclut l'inscription de l'appareil mobile. Ce même appareil doit être utilisé pour générer le code secret à usage unique basé sur le temps lors de chaque connexion de l'utilisateur. Si l'appareil mobile inscrit devient indisponible, un administrateur doit désactiver l'authentification à plusieurs facteurs pour l'utilisateur afin qu'elle puisse être réactivée avec un nouvel appareil.

  • Jeton d'accès SQL : les jetons d'accès SQL fournissent une authentification à plusieurs facteurs sécurisée pour les bases de données Autonomous AI à l'aide de mots de passe uniques standard du secteur. Ces jetons sont nécessaires pour accéder à la base de données ou exécuter des opérations SQL protégées, ce qui réduit considérablement le risque d'accès non autorisé.

  • Notification Push : les notifications Push sont des messages contextuels, courts et cliquables envoyés à partir d'applications ou de sites Web vers l'appareil mobile d'un utilisateur, même lorsque le navigateur ou l'application n'est pas actif.

Types d'authentification à plusieurs facteurs dans la base de données Autonomous AI

Décrit les options d'authentification à plusieurs facteurs disponibles dans la base de données Autonomous AI et la façon dont chacune s'applique à l'accès à la base de données, lors de la connexion ou lors de l'exécution d'instructions SQL protégées.

Authentification à plusieurs facteurs au moment de la connexion

L'authentification à plusieurs facteurs lors de la connexion dans la base de données Autonomous AI ne peut être implémentée qu'à l'aide de notifications push sécurisées fournies au périphérique mobile enregistré de l'utilisateur via l'application Oracle Mobile Authenticator (OMA) ou Cisco Duo Mobile. Les autres méthodes, telles que la messagerie électronique ou Slack, ne sont pas prises en charge pour ce workflow. Cela garantit que seuls les utilisateurs possédant à la fois des informations d'identification valides et l'appareil mobile autorisé peuvent accéder à la base de données, offrant une protection robuste contre le vol d'informations d'identification et prenant en charge la conformité réglementaire pour l'authentification à plusieurs facteurs.

Lorsque vous tentez d'inscrire un utilisateur de base de données existant pour l'authentification à plusieurs facteurs lors de la connexion, Oracle envoie un courriel d'inscription unique à l'adresse électronique de l'utilisateur. Le contenu de l'inscription dépend de l'authentificateur sélectionné : les e-mails OMA incluent un lien d'inscription et un code QR pour inscrire l'appareil de l'utilisateur dans l'application OMA, tandis que les e-mails DUO fournissent le lien d'inscription et les instructions pour terminer l'inscription de l'appareil. L'utilisateur doit installer l'application d'authentification appropriée et terminer l'inscription en cliquant sur le lien ou en scannant le code QR dans l'application. L'e-mail est envoyé dans un format fixe en anglais uniquement et sa personnalisation n'est pas autorisée.

Une fois l'enregistrement de l'appareil réussi, l'utilisateur peut se connecter à la base de données en utilisant son mot de passe comme facteur d'authentification principal. Une fois le mot de passe validé, le serveur de base de données envoie une notification Push à l'application enregistrée. Si l'utilisateur accepte la notification Push, le processus d'authentification est terminé et la session de connexion est établie.

Jeton d'accès SQL

L'authentification par jeton d'accès SQL dans la base de données Autonomous AI est une méthode d'authentification à plusieurs facteurs qui exige que les utilisateurs vérifient leur identité à l'aide de leurs informations d'identification et d'un second facteur, un jeton d'accès SQL à usage unique ou une notification Push, avant de pouvoir exécuter des instructions SQL. Une fois connecté à l'aide d'un nom utilisateur et d'un mot de passe, l'utilisateur doit demander un code secret à usage unique ou une notification push, qui est fournie via une application d'authentification (OMA), un courriel ou Slack, pour authentifier la session et permettre l'exécution d'instructions SQL protégées. L'authentification à plusieurs facteurs pour jeton d'accès SQL renforce la sécurité de la base de données en s'assurant que les instructions SQL sensibles ne peuvent être exécutées que par des utilisateurs qui possèdent à la fois les informations d'identification correctes et le deuxième facteur vérifié, ce qui réduit le risque d'accès non autorisé et prend en charge les exigences de conformité.

Remarque

Pour l'authentification à plusieurs facteurs de jeton d'accès SQL, les notifications Push sont prises en charge uniquement avec OMA.

Une fois que vous êtes connecté à une base de données Autonomous AI à l'aide de votre méthode d'authentification standard, telle qu'un nom utilisateur/mot de passe de base de données local ou un fournisseur d'identités externe, y compris OCI IAM, Azure Entra ou Kerberos, les informations suivantes décrivent le flux d'autorisation d'authentification à plusieurs facteurs de jeton d'accès SQL.


Description de l'image autonomous-sqlaccesstoken-workflow.png
Description de l'image autonomous-sqlaccesstoken-workflow.png

  1. Demander un jeton d'accès SQL

    Une fois la session établie, demandez un jeton d'accès SQL afin d'activer les opérations SQL.

  2. Recevoir la notification de mot de passe à usage unique ou de transmission

    Oracle génère un mot de passe à usage unique uniquement lorsque vous choisissez un canal de transmission, un courriel ou Slack basé sur un mot de passe à usage unique. Ces mots de passe à usage unique sont limités dans le temps et doivent être extraits du canal sélectionné avant leur expiration. Pour l'authentification basée sur une application, Oracle Mobile Authenticator (OMA) est la seule application d'authentification prise en charge et utilise une notification Push comme deuxième facteur au lieu de générer un mot de passe à usage unique. Par conséquent, pour l'authentification à plusieurs facteurs par jeton d'accès SQL, les mots de passe à usage unique sont fournis uniquement par courriel ou Slack, tandis qu'OMA fournit l'approbation par le biais de notifications Push.

  3. Authentifier la session

    Entrez le mot de passe à usage unique que vous avez reçu pour vérifier votre identité et activer la session SQL. Cette étape est uniquement requise pour l'authentification par courriel ou par mot de passe à usage unique Slack et n'est pas nécessaire lors de l'utilisation de l'authentification basée sur une application (OMA), qui utilise une notification Push à la place.

  4. Exécution d'instructions SQL

    Une fois le jeton vérifié, vous pouvez exécuter des instructions SQL sur la base de données comme autorisé.

Remarque

Vous pouvez inscrire un utilisateur pour l'authentification à plusieurs facteurs lors de la connexion et l'authentification à plusieurs facteurs par jeton d'accès SQL. Avec cette configuration, l'utilisateur doit terminer l'authentification à plusieurs facteurs lors de la connexion, de l'approbation d'une notification Push sur son appareil mobile et de la vérification d'un jeton d'accès SQL via le canal de transmission choisi avant d'exécuter des instructions SQL.

Prérequis

Répertorie les prérequis pour l'activation de l'authentification à plusieurs facteurs sur votre base de données Autonomous AI.

Selon le type d'authentification à plusieurs facteurs sélectionné, effectuez les étapes de configuration nécessaires :

  • authentification à plusieurs facteurs pour l'heure de connexion : l'authentification à plusieurs facteurs pour l'heure de connexion est uniquement prise en charge par le biais de notifications Push à l'aide d'OMA et de Duo. Téléchargez, installez et configurez l'application de votre choix sur votre appareil mobile avant de l'utiliser.

  • Jeton d'accès SQL : au moins un canal de transmission de jeton doit être configuré pour les jetons d'accès SQL. Les méthodes de livraison prises en charge incluent l'authentificateur Email, Slack et OMA.

    • Application d'authentification : installez OMA sur votre appareil mobile. Vous devez configurer l'authentification à plusieurs facteurs sur un appareil auquel vous pouvez accéder à chaque connexion. L'authentification à plusieurs facteurs ne peut pas être activée pour vous par un autre utilisateur.

      Pour activer l'authentification à plusieurs facteurs, utilisez OMA sur votre appareil mobile pour scanner le code QR affiché dans l'interface utilisateur Database Actions. Pour plus d'informations, voir Configuration d'Oracle Mobile Authenticator.

    • Courriel : assurez-vous que la remise des courriels est activée et que tous les utilisateurs de base de données ont des adresses électroniques valides et configurées.

      Pour plus d'informations, reportez-vous à Envoi de courriels sur une base de données d'IA autonome.

    • Slack : configurez le module d'extension Slack et enregistrez l'ID Slack de chaque utilisateur pour activer la distribution des mots de passe à usage unique via Slack.

      Pour plus d'informations, reportez-vous à Envoi de notifications Slack à partir d'une base de données Autonomous AI.

  • Vous devez être connecté en tant qu'utilisateur ADMIN ou disposer des privilèges nécessaires sur le package DBMS_MFA_ADMIN pour inscrire les utilisateurs à l'authentification à plusieurs facteurs et gérer les attributs de jeton.

  • Pour les workflows SQL Access Token, les utilisateurs doivent disposer des privilèges requis sur le package DBMS_MFA pour initialiser une session d'authentification à plusieurs facteurs et valider un jeton d'accès SQL.

Configurer l'authentification à plusieurs facteurs pour une base de données d'IA autonome

Explique comment configurer l'authentification à plusieurs facteurs pour votre base de données Autonomous AI, notamment la configuration des informations d'identification requises, la configuration des canaux de notification, l'inscription des utilisateurs pour l'authentification à plusieurs facteurs LOGON ou SQL Access, et la gestion des jetons d'accès SQL.

Sujets :

Configuration des canaux de notification pour l'authentification à plusieurs facteurs

Explique comment configurer des canaux de notification pour l'authentification à plusieurs facteurs, tels que les courriels, Slack et Oracle Mobile Authenticator (OMA), pour la distribution de mots de passe à usage unique ou de notifications Push.

Un canal de notification est le mécanisme utilisé pour transmettre des questions d'authentification à plusieurs facteurs aux utilisateurs, tels que les approbations Push ou les mots de passe à usage unique, dans les flux d'authentification à plusieurs facteurs (AMF) de connexion (LOGON) et d'authentification à plusieurs facteurs de jeton d'accès SQL. Les canaux pris en charge comprennent les applications de messagerie, de SMS, de Slack et d'authentificateur, et chaque canal nécessite des attributs de configuration spécifiques, par exemple des détails SMTP pour la remise de courriels ou une configuration d'espace de travail Slack pour Slack, afin de s'assurer que les messages sont distribués de manière sécurisée et fiable à l'utilisateur prévu.

Avant de configurer les canaux de notification, assurez-vous que vous avez configuré les informations d'identification requises pour les canaux que vous prévoyez d'utiliser. Notez que certains canaux s'appliquent uniquement à l'authentification à plusieurs facteurs LOGON, par exemple OMA et Duo, tandis que d'autres s'appliquent uniquement à l'authentification à plusieurs jetons d'accès SQL, par exemple OMA, Slack et email. Par conséquent, configurez uniquement ce dont vous avez besoin pour le flux d'authentification à plusieurs facteurs choisi.

Le tableau suivant récapitule les canaux de notification d'authentification à plusieurs facteurs disponibles et indique le type d'authentification à plusieurs facteurs pris en charge par chaque canal (authentification à plusieurs facteurs et/ou authentification à plusieurs facteurs par jeton d'accès SQL), ainsi que la méthode de notification correspondante (livraison ou approbation Push OTP).

Canal de notification Connexion MFA Authentification à plusieurs facteurs par jeton d'accès SQL Méthode de notification

E-mail

Oui (e-mails d'inscription à l'authentification à plusieurs facteurs uniquement)

Oui

Jeton d'accès SQL : mot de passe à usage unique transmis par courriel.

Connexion : non prise en charge comme deuxième facteur, courriel envoyé uniquement pour les notifications d'inscription.

Slack

Non

Oui

Mot de passe à usage unique fourni via Slack.

Oracle Mobile Authenticator (OMA)

Oui

Oui

Approbation des notifications Push. Aucun mot de passe à usage unique généré.

Cisco Duo

Oui

Non

Envoyer une notification via Duo.

Utilisez la procédure DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION pour définir les canaux de notification utilisés pour transmettre les messages d'authentification à plusieurs facteurs (par exemple, les questions de vérification par jeton d'accès SQL). Dans cette procédure, vous indiquez le type de canal (courriel, Slack ou authentificateur, par exemple) et fournissez les attributs ou références d'informations d'identification propres au canal requis pour une distribution sécurisée et fiable. Etant donné que chaque canal a des exigences différentes, les valeurs d'attribut que vous fournissez dépendent du canal que vous configurez. Reportez-vous aux exemples suivants pour connaître les entrées attendues par canal.

Notification par courriel

Configurez l'objet d'informations d'identification par courriel et les paramètres de notification SMTP afin qu'Oracle puisse envoyer des courriels liés à l'authentification à plusieurs facteurs. Ceci est requis pour la configuration de la connexion à l'authentification à plusieurs facteurs (OMA et Duo), y compris les courriels d'enregistrement d'appareil ; sans cela, les utilisateurs ne recevront pas les notifications d'enregistrement requises. Le courriel n'est pas un deuxième facteur pris en charge pour la connexion à l'authentification à plusieurs facteurs : la distribution des mots de passe à usage unique par courriel n'est prise en charge que pour l'authentification à plusieurs facteurs par jeton d'accès SQL.

Pour configurer un fournisseur de messagerie personnalisé pour l'envoi de jetons d'accès à l'authentification à plusieurs facteurs, vous devez créer des informations d'identification de fournisseur de messagerie dans la base de données à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL. Par exemple :

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL(
       credential_name => 'EMAIL_CRED_01',
       username        => '<username>',
       password        => '<password>'
   );
END;
/
Cette opération configure les informations d'identification nécessaires pour permettre la communication entre la base de données Autonomous AI et votre fournisseur de messagerie personnalisé.

Accordez à la base de données le droit de se connecter à votre hôte SMTP pour envoyer des courriels en mettant à jour la liste de contrôle d'accès (ACL). Par exemple :

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;
/
Vous pouvez ainsi vous connecter à l'hôte SMTP sur le port 587 pour l'envoi d'e-mails.

Définissez les paramètres du canal de courriel pour la distribution des jetons d'accès à l'authentification à plusieurs facteurs à l'aide des informations d'identification que vous avez créées. Par exemple :

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;
/
Cela permet de configurer les paramètres de notification par courriel pour la distribution de jetons d'authentification à plusieurs facteurs, de lier le canal de courriel à vos informations d'identification personnalisées et de permettre à la base de données d'envoyer des codes de passe à usage unique par courriel. Notez que la distribution de jetons d'authentification à plusieurs facteurs par courriel n'est disponible que pour l'accès SQL.

Notification Slack

Créez des informations d'identification pour stocker en toute sécurité les détails d'authentification de votre intégration Slack. Par exemple :

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'SLACK_CRED',
    username        => 'username',
    password        => '<password>'
  );
END;
/
Cette opération enregistre les informations d'identification requises pour l'authentification auprès de votre intégration Slack.

Autorisez la base de données à se connecter à l'adresse d'API de Slack en mettant à jour la liste de contrôle d'accès pour les appels HTTPS sortants. Par exemple :

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;
/
Vous pouvez ainsi vous connecter à Slack via HTTPS (port 443) pour envoyer des notifications.

Configurez le canal Slack pour la distribution de jetons d'authentification à plusieurs facteurs en référençant les informations d'identification que vous avez créées. Par exemple :

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'SLACK',
    attributes        => JSON_OBJECT(
      'credential_name' VALUE 'SLACK_CRED'
    )
  );
END;
/
Les informations d'identification Slack sont ainsi liées au canal de notification, ce qui permet la distribution de jetons d'authentification à plusieurs facteurs à l'aide de Slack.

Notification Oracle Mobile Authenticator (OMA)

Créez des informations d'identification pour stocker en toute sécurité l'ID client OMA et la clé secrète client. Par exemple :

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OMA_CRED',
    username        => '<username>',
    password        => '<password>'
  );
END;
/
Les informations d'identification client de votre application OMA sont ainsi enregistrées dans la base de données.

Définissez le canal de notification OMA et associez-le aux informations d'identification et à l'adresse d'API OMA que vous avez créées. Par exemple :

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;
/
Cette étape configure la base de données pour qu'elle fournisse des jetons d'authentification à plusieurs facteurs à l'aide d'Oracle Mobile Authenticator via l'adresse indiquée.

Notification Cisco DUO

Créez des informations d'identification pour stocker en toute sécurité la clé d'intégration et la clé secrète DUO. Par exemple :

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DUO_CRED',
    username        => '<integrationkey>',
    password        => '<secretkey>'
  );
END;
/
La clé d'intégration et la clé secrète de votre application DUO sont ainsi enregistrées en tant qu'informations d'identification dans la base de données.

Configurez le canal de notification DUO en l'associant aux informations d'identification créées et en indiquant l'adresse d'API 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;
/
La base de données est ainsi configurée pour fournir des jetons d'authentification à plusieurs facteurs via DUO à l'aide des informations d'identification d'application et de l'adresse d'API fournies.

Enregistrer un utilisateur

Affiche les étapes d'inscription d'un utilisateur de base de données pour l'authentification à plusieurs facteurs.

Une fois le canal de notification configuré, l'étape suivante consiste à inscrire un utilisateur de base de données existant pour l'authentification à plusieurs facteurs. Lors de l'inscription, définissez le type d'authentification à plusieurs facteurs sur Authentification à plusieurs facteurs lors de la connexion ou Authentification à plusieurs facteurs par jeton d'accès SQL. Vous pouvez éventuellement indiquer le canal de notification. S'il n'est pas fourni, le courriel est utilisé par défaut. Toutefois, pour l'authentification à plusieurs facteurs de type connexion, vous devez indiquer OMA ou Duo comme canal. Vous pouvez également définir des attributs de jeton personnalisés pour personnaliser le comportement du jeton d'accès SQL pour l'utilisateur.

Utilisez DBMS_MFA_ADMIN.REGISTER_USER pour inscrire un utilisateur de base de données existant pour l'authentification à plusieurs facteurs. Lorsque vous inscrivez l'utilisateur, définissez l'authentification à plusieurs facteurs type pour indiquer le flux à activer :
  • LOGON pour l'authentification à plusieurs facteurs lors de la connexion à la base de données, ou

  • Type de jeton d'accès SQL pour l'authentification multifacteur basée sur un jeton.

Si vous fournissez le format JSON attributes facultatif, notez que les attributs pris en charge varient selon le type d'authentification à plusieurs facteurs. Par exemple, LOGON prend en charge des paramètres propres à la connexion tels que la méthode d'authentification (par exemple, auth_method => 'duo_push'), mais pas les attributs de validité de jeton tels que duration_min, qui s'appliquent uniquement à l'authentification à plusieurs jetons d'accès SQL.

Pour plus d'informations, reportez-vous à DBMS_MFA_ADMIN.REGISTER_USER.

Exemple d'enregistrement de l'utilisateur de base de données existant SCOTT pour l'authentification à plusieurs facteurs lors de la connexion à l'aide d'OMA comme canal de notification

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

Dans cet exemple, si SCOTT est déjà inscrit auprès de l'authentificateur, aucun nouveau courriel d'inscription n'est envoyé. Si SCOTT n'est pas encore inscrit, cet exemple lance l'inscription à l'authentification à plusieurs facteurs en envoyant un courriel ponctuel à scott@example.com avec un lien d'inscription et un code QR pour Oracle Mobile Authenticator (OMA).

SCOTT installe l'application OMA et termine l'inscription de l'appareil à l'aide du lien ou du code QR. Après l'inscription, SCOTT se connecte avec un mot de passe, puis approuve la notification Push OMA pour terminer l'authentification à plusieurs facteurs LOGON.

Exemple d'enregistrement de l'utilisateur de base de données existant SCOTT pour l'authentification à plusieurs facteurs lors de la connexion en utilisant Duo comme canal de notification

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

Dans cet exemple, si SCOTT est déjà inscrit auprès de l'authentificateur, aucun nouveau courriel d'inscription n'est envoyé. Si SCOTT n'est pas encore inscrit, cet exemple lance l'inscription à l'authentification à plusieurs facteurs en envoyant un courriel unique à l'adresse indiquée avec un lien d'inscription.

SCOTT installe l'application Cisco Duo et termine l'inscription de l'appareil à l'aide du lien. Après l'inscription, SCOTT se connecte avec un mot de passe, puis approuve la notification Push Duo pour terminer la connexion avec une authentification à deux facteurs.

Remarque

Pour l'authentification à plusieurs facteurs de connexion (LOGON), auth_method est le seul attribut pris en charge.

Exemple d'inscription de SCOTT pour l'authentification à plusieurs facteurs de jeton d'accès SQL à l'aide de Slack en tant que canal de notification

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;
/

Cet exemple enregistre l'utilisateur SCOTT avec l'authentification à plusieurs facteurs SQL Access. Il définit la durée du jeton sur 720 minutes, accorde un accès en lecture seule, associe des rôles spécifiques, définit la portée du jeton en tant que session, spécifie un ID de membre Slack pour les notifications.

Remarque

read_only s'applique uniquement lorsque scope est défini sur SESSION. Si scope n'est pas SESSION, l'attribut read_only n'est pas pris en charge.

Exemple d'inscription de SCOTT pour l'authentification à plusieurs facteurs de jeton d'accès SQL à l'aide d'OMA en tant que canal de notification

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;
/

Cet exemple enregistre l'utilisateur SCOTT pour l'authentification à plusieurs facteurs de jeton d'accès SQL. Il configure également le jeton pour une durée de vie courte, qui est valide pendant 5 minutes et expire après 2 minutes d'inactivité et nécessite une approbation à l'aide d'une notification push OMA.

Remarque

Vous pouvez inscrire le même utilisateur à la fois pour l'authentification à plusieurs facteurs Connexion et pour l'authentification à plusieurs facteurs Jeton d'accès SQL en les inscrivant séparément avec les mêmes adresses électroniques. Cette approche permet à l'utilisateur d'utiliser plusieurs types d'authentification à plusieurs facteurs si nécessaire.

Valider la session pour l'authentification par jeton d'accès SQL

Affiche les étapes de validation d'une session pour l'authentification par jeton d'accès SQL.

Pour exécuter des instructions SQL dans une session protégée par l'authentification par jeton d'accès SQL, vous devez valider votre session à l'aide d'un code secret à usage unique fourni via le canal de notification configuré. L'utilisateur doit disposer du privilège requis sur DBMS_MFA.

Pour valider la session :
  1. Connectez-vous à la base de donnée avec vos informations d'identification standard.
    CONNECT scott/<password>@<adbs_connect_string>;
  2. Tentative d'exécution d'une instruction SQL
    SELECT COUNT(*) FROM SCOTT.EMP;

    Si la validation du jeton d'accès SQL est en attente, une erreur telle que ORA-64660: Token Authorization is not complete for the user or the session apparaît.

  3. Initialisez la session et demandez un jeton d'accès SQL. Selon le canal de notification configuré, ce processus vous enverra un code secret à usage unique ou une notification Push.
    BEGIN
    DBMS_MFA.INITIALIZE_SESSION(
      email => 'scott_alert@example.com'
    );
    END;
    /

    Pour plus d'informations, reportez-vous à Procédure INITIALIZE_SESSION.

  4. Créez le jeton dans la session. Cette étape n'est pas requise si l'utilisateur est inscrit pour utiliser une application d'authentification pour l'authentification à plusieurs facteurs. Dans ce cas, l'utilisateur reçoit une notification Push et approuve simplement la demande d'authentification.
    BEGIN
      DBMS_MFA.SET_TOKEN(
        token => '98475683'
      );
    END;
    /

    Reportez-vous à Procédure SET_TOKEN.

  5. Une fois le jeton validé, vous pouvez exécuter des instructions SQL comme autorisé.
    SELECT COUNT(*) FROM SCOTT.EMP;
    
    
    Count
    _________
    15

Gérer les utilisateurs d'authentification à plusieurs facteurs et les attributs de jeton

Cette section explique comment gérer les utilisateurs inscrits à l'authentification à plusieurs facteurs, notamment comment annuler l'inscription des utilisateurs lorsqu'ils n'ont plus besoin d'un accès à l'authentification à plusieurs facteurs, et comment configurer ou mettre à jour les attributs de jeton.

Sujets :

Définir les attributs de jeton

Cette section explique comment configurer le comportement des jetons MFA, tels que la portée, la durée de validité, le délai d'inactivité, la méthode de distribution et les restrictions d'accès, à l'aide de valeurs par défaut globales (jetons d'accès SQL uniquement) et de remplacements par utilisateur (pour les jetons d'accès SQL et de connexion).

Les attributs de jeton contrôlent le comportement des jetons d'accès SQL, notamment la portée du jeton, la durée de validité, le délai d'inactivité, la méthode de transmission et les restrictions d'accès. Ces attributs peuvent être configurés à deux niveaux : globalement ou par utilisateur.
  • Les attributs de jeton global définissent le comportement de jeton par défaut pour tous les utilisateurs inscrits pour l'authentification multifacteur de jeton d'accès SQL. Lorsqu'elles sont définies de manière globale, ces valeurs par défaut s'appliquent à chaque utilisateur admissible, sauf si elles sont explicitement remplacées par des paramètres propres à l'utilisateur, ce qui permet d'appliquer des stratégies de sécurité cohérentes dans la base de données. Les attributs de jeton global ne peuvent être définis que pour les jetons d'accès SQL.
  • Les attributs de jeton propres à l'utilisateur vous permettent de personnaliser le comportement d'un jeton pour un utilisateur individuel. Ces paramètres remplacent les valeurs par défaut globales et peuvent être utilisés pour appliquer des contrôles plus stricts ou plus flexibles en fonction du rôle et des exigences d'accès de l'utilisateur.

L'utilisation d'attributs de jeton globaux et de niveau utilisateur permet d'équilibrer l'application centralisée de la sécurité avec la flexibilité nécessaire pour répondre aux besoins d'accès individuels.

Définir des attributs globaux de jeton d'accès SQL

Utilisez la procédure DBMS_MFA_ADMIN.SET_GLOBAL_TOKEN_ATTRIBUTES pour configurer les attributs globaux de jeton d'accès SQL par défaut. Cette procédure définit un ensemble global de valeurs d'attribut de jeton (fournies en tant que JSON) que la base de données applique automatiquement chaque fois qu'un jeton d'accès SQL est émis pour les utilisateurs inscrits pour l'authentification à plusieurs facteurs de jeton d'accès SQL. Vous pouvez également définir des attributs de jeton propres à l'utilisateur pour remplacer ces valeurs par défaut globales si nécessaire.

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

Définit des attributs de jeton globaux pour tous les utilisateurs inscrits pour l'authentification multifacteur de jeton d'accès SQL, tels que la durée du jeton, la portée, le délai d'inactivité et l'accès en lecture seule. Ces attributs globaux servent de paramètres par défaut et sont automatiquement appliqués à chaque utilisateur activé pour l'authentification à plusieurs facteurs par jeton d'accès SQL, sauf si des attributs propres à l'utilisateur sont définis pour les remplacer.

Pour plus d'informations, reportez-vous à Procédure SET_GLOBAL_TOKEN_ATTRIBUTES.

Définir les attributs de jeton pour la connexion et le jeton d'accès SQL

Utilisez les procédures DBMS_MFA_ADMIN.SET_ATTRIBUTES et DBMS_MFA_ADMIN.SET_ATTRIBUTE pour définir des attributs de jeton pour un utilisateur spécifique. Ces paramètres de niveau utilisateur s'appliquent au type d'authentification à plusieurs facteurs spécifié (par exemple, LOGON ou SQL ACCESS TOKEN) et remplacent toutes les valeurs par défaut applicables.
  • Utilisez DBMS_MFA_ADMIN.SET_ATTRIBUTES pour définir des attributs de jeton pour un utilisateur dans un seul appel (en transmettant un objet JSON de paires nom/valeur d'attribut).
  • Utilisez DBMS_MFA_ADMIN.SET_ATTRIBUTE pour définir un attribut de jeton à la fois pour un utilisateur (en indiquant un seul attribut attribute_name et attribute_value).
  • auth_method indique le fournisseur d'authentification à plusieurs facteurs configuré utilisé pour fournir et valider la question de vérification de connexion pour la session (par exemple, OMA, Duo ou Slack). Pour l'authentification à plusieurs facteurs lors de la connexion, auth_method est le seul attribut pris en charge ; les autres attributs liés à l'authentification à plusieurs facteurs ne sont pas applicables pour l'authentification à plusieurs facteurs lors de la connexion.

Exemple 5-1 Utilisez DBMS_MFA_ADMIN.SET_ATTRIBUTES pour définir des attributs de jeton pour un utilisateur spécifié

Indiquez le nom utilisateur, le type d'authentification à plusieurs facteurs et un objet attributes JSON contenant les noms et les valeurs d'attribut. Les paramètres spécifiés sont appliqués à cet utilisateur et remplacent toutes les valeurs par défaut applicables.

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;
/

Cet exemple configure des attributs de jeton d'accès SQL propres à l'utilisateur pour SCOTT3, en définissant une durée de jeton de 30 minutes, un délai d'inactivité de 20 minutes, la portée de session et l'adresse électronique utilisée pour la distribution de jeton, en remplaçant les valeurs par défaut globales.

Pour plus d'informations, reportez-vous à Procédure SET_ATTRIBUTES.

Exemple 5-2 Utilisez DBMS_MFA_ADMIN.SET_ATTRIBUTE pour définir un attribut de jeton unique pour un utilisateur spécifié

Indiquez le nom utilisateur, le type d'authentification à plusieurs facteurs, l'ID courriel, le nom d'attribut et la valeur d'attribut. Ce paramètre est appliqué à cet utilisateur et remplace toutes les valeurs par défaut applicables.

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

Cet exemple définit l'attribut duration_min pour SCOTT4, définit la période de validité du jeton d'accès SQL sur 25 minutes et spécifie l'adresse électronique de distribution. Ce paramètre de niveau utilisateur remplace toutes les valeurs par défaut applicables (y compris les valeurs par défaut globales des jetons d'accès SQL, le cas échéant).

Pour plus d'informations, reportez-vous à Procédure SET_ATTRIBUTE.

Désinscrire un utilisateur

Indique comment utiliser la procédure DBMS_MFA_ADMIN.DEREGISTER_USER pour enlever un utilisateur de base de données de l'authentification à plusieurs facteurs.

La désinscription de l'utilisateur désactive les jetons d'accès pour le schéma spécifié et arrête l'application de l'authentification à plusieurs facteurs pour l'utilisateur.

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

L'utilisateur SCOTT est ainsi retiré de l'authentification à plusieurs facteurs d'accès SQL. L'application de l'authentification à plusieurs facteurs et les jetons d'accès ne sont plus requis pour cet utilisateur. Toutefois, si SCOTT est inscrit pour l'authentification à plusieurs facteurs avec plusieurs courriels, vous devrez annuler l'inscription de chaque entrée séparément pour la suppression complète.

Pour plus d'informations, reportez-vous à Procédure DEREGISTER_USER.

Limites de l'authentification à plusieurs facteurs sur une base de données Autonomous AI

Répertorie les limites de l'authentification multifacteur sur Autonomous AI Database.

Les limitations suivantes s'appliquent lorsque vous utilisez l'authentification multifacteur avec Autonomous AI Database :
  • Les jetons d'accès SQL ne sont pas pris en charge pour les utilisateurs RAS (Remote Application Service). Il s'agit de comptes d'application non interactifs, qui ne peuvent pas fournir le deuxième facteur requis pour l'authentification à plusieurs facteurs.

  • Avec la continuité d'application ou la continuité d'application transparente, la continuité de session n'est pas maintenue. Si une session utilisateur est interrompue, la session se déconnecte même si le jeton d'accès SQL était valide.

  • Les travaux du planificateur doivent être créés dans une session valide et authentifiée. Une fois créés, ces travaux s'exécutent indépendamment et ne nécessitent pas l'exécution de jetons d'accès SQL.

  • Les utilisateurs non inscrits pour l'authentification à plusieurs facteurs de jeton d'accès SQL ne peuvent pas exécuter SQL sur un lien de base de données appartenant à un utilisateur inscrit pour l'authentification à plusieurs facteurs de jeton d'accès SQL, car les jetons d'accès SQL ne sont pas propagés entre les liens de base de données. Oracle recommande d'éviter les liens de base de données appartenant aux utilisateurs inscrits à l'authentification à plusieurs facteurs SQL Access Token. Utilisez plutôt un propriétaire de lien de base de données dédié qui n'est pas configuré pour l'authentification à plusieurs facteurs SQL Access Token.
  • Les utilisateurs inscrits ne peuvent pas effectuer d'import/export de leur propre schéma après avoir défini un jeton d'accès SQL. Echec des opérations d'export avec une erreur d'autorisation de jeton car la validation de jeton est requise pour exécuter des instructions SQL.
  • Les utilisateurs inscrits SQL ACCESS ne sont pas pris en charge pour une utilisation avec les outils DBActions.