Configurer l'authentification Kerberos avec Autonomous AI Database

Cette section décrit comment configurer Kerberos pour authentifier les utilisateurs d'Oracle Autonomous AI Database.

À propos de l'authentification Kerberos

Vous pouvez configurer Oracle Autonomous AI Database pour qu'il utilise le protocole d'authentification de réseau Kerberos afin d'authentifier les utilisateurs de base de données. Kerberos est un protocole d'authentification de réseau fort. Il utilise la cryptographie à clé secrète pour permettre une authentification forte de l'utilisateur au serveur.

  • La prise en charge de Kerberos dans Oracle Autonomous AI Database offre les avantages de l'authentification unique et de l'authentification centralisée des utilisateurs Oracle. Kerberos est un système d'authentification de tierce partie approuvé qui repose sur des clés secrètes partagées. Il suppose que la tierce partie est sécurisée et offre des fonctionnalités d'authentification unique, un stockage centralisé des mots de passe, une authentification par lien de base de données et une sécurité améliorée du PC. Pour ce faire, il utilise un serveur d'authentification Kerberos.

  • Le système Kerberos repose sur le concept de ticket. Un ticket est un jeu d'informations électroniques qui identifient un utilisateur ou un service. Un ticket vous identifie, ainsi que vos privilèges d'accès réseau.

  • Avec l'authentification basée sur Kerberos, vous envoyez de manière transparente une demande de ticket à un centre de distribution de clés. Le centre de distribution de clés vous authentifie et vous accorde un ticket d'accès à la base de données.

Composants du système d'authentification Kerberos

Fournit un aperçu du système d'authentification Kerberos.

  • Un domaine de sécurité représente un domaine administratif d'authentification. Chaque domaine de sécurité dispose de sa propre base de données Kerberos, qui contient les utilisateurs et les services de ce domaine administratif particulier.

  • Les tickets sont émis par le centre de distribution de clés. Les clients présentent des tickets au serveur de base de données pour démontrer l'authenticité de leur identité. Chaque ticket a une date d'expiration et une heure de renouvellement.

  • Les fichiers keytab contiennent les clés à long terme pour un ou plusieurs principaux. Un fichier keytab est généré en appelant l'outil kadmin.local (pour le centre de distribution de clés MIT) ou ktpass (pour le centre de distribution de clés Active Directory).

  • Les principaux sont les entrées de la base de données du centre de distribution de clés. Un principal est attribué à chaque utilisateur, hôte ou service. Un principal est une identité unique à laquelle le centre de distribution de clés peut affecter des tickets.

  • La prise en charge de Kerberos dans Autonomous AI Database utilise les valeurs suivantes pour divers composants qui constituent le nom d'un principal de service :

Composant d'un principal de service Valeur dans une base de données autonome sur l'IA
kinstance

Vous pouvez obtenir cette valeur à partir de l'attribut PUBLIC_DOMAIN_NAME dans la colonne CLOUD_IDENTITY de V$PDBS. Cette valeur est différente du nom de domaine complet (FQDN) pour une base de données sur un point d'extrémité privé.

Utilisez l'interrogation suivante pour obtenir kinstance :

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

Il s'agit de la valeur du paramètre host figurant dans la chaîne de connexion TNS.
kservice

Dans Autonomous AI Database, vous disposez de deux options pour la valeur kservice :

  • Utilisez le GUID de base de données : Si vous ne fournissez pas de nom de service Kerberos avec DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION, le nom de service par défaut utilisé est le GUID de l'instance de base de données d'intelligence artificielle autonome. Dans ce cas, lorsque vous créez le fichier keytab, utilisez le GUID comme valeur pour le nom du service.

    Parce que dans le cas par défaut, le fichier Keytab utilise un nom de service qui est un GUID, qui est propre à l'instance, lorsque vous utilisez le nom de service par défaut, vous devez générer des fichiers Keytab différents pour chaque instance de base de données Autonomous AI Database.

    Utilisez la commande suivante pour obtenir GUID (la casse est importante) :

    SELECT GUID FROM v$pdbs;
  • Utiliser un nom personnalisé : Définissez le nom du service lorsque vous souhaitez utiliser les mêmes fichiers Keytab sur plusieurs instances de base de données IA autonome. Lorsque vous utilisez un nom personnalisé, vous n'avez pas besoin de créer ni de charger des fichiers Keytab différents pour chaque instance de base de données du service d'intelligence artificielle autonome. Lorsque vous utilisez un nom personnalisé, vous devez spécifier le paramètre params kerberos_service_name avec DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION. La spécification de ce paramètre n'est pas obligatoire lorsque vous utilisez le GUID pour le nom du service.

Une fois Kerberos activé sur votre instance Autonomous AI Database, utilisez l'interrogation suivante pour voir le nom du service Kerberos :

SELECT SYS_CONTEXT('USERENV', 'KERBEROS_SERVICE_NAME') FROM DUAL;
REALM Tout domaine de sécurité pris en charge par votre centre de distribution de clés. REALM doit toujours être en majuscules.

Pour activer l'authentification Kerberos pour votre base de données d'IA autonome, vous devez garder vos fichiers de configuration Kerberos (krb.conf) et le fichier de table de clés de service (v5srvtab) prêts. Pour plus d'informations sur ces fichiers et les étapes pour les obtenir, voir Configuration de l'authentification Kerberos.

Activer l'authentification Kerberos sur une base de données autonome avec intelligence artificielle

Affiche les étapes permettant d'activer l'authentification Kerberos sur votre instance de base de données d'IA autonome.

Pour exécuter DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_ADMIN.

Pour utiliser DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION pour activer l'authentification Kerberos :

Pour activer l'authentification Kerberos pour votre base de données d'intelligence artificielle autonome, vous devez obtenir les fichiers de configuration Kerberos : krb.conf et le fichier de table de clés de service v5srvtab. Pour plus d'informations sur ces fichiers et les étapes requises pour les obtenir, voir Configuration de l'authentification Kerberos.

  1. Copiez les fichiers de configuration Kerberos krb.conf et v5srvtab dans un seau du magasin d'objets.

    Si vous utilisez le magasin d'objets Oracle Cloud Infrastructure, voir Ajout de données dans le stockage d'objets pour plus de détails sur le chargement de fichiers.

  2. Exécutez la procédure DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION et transmettez un URI d'emplacement avec l'argument JSON params. Vous devez placer les fichiers de configuration krb.conf et v5srvtab dans l'emplacement de stockage d'objets spécifié dans le paramètre location_uri.

    Exemple :

    BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
           type     => 'KERBEROS',
           params   => JSON_OBJECT(
                   'location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                   'credential_name' value 'my_credential_name'));
    END;
    /
    Note

    Oracle recommande de stocker les fichiers de configuration Kerberos dans un seau privé du magasin d'objets.

    Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

    La valeur credential_name que vous utilisez dans cette étape correspond aux données d'identification pour le magasin d'objets.

    La création de données d'identification pour accéder au magasin d'objets Oracle Cloud Infrastructure n'est pas requise si vous activez les données d'identification du principal de ressource. Pour plus d'informations, voir Utiliser un principal de ressource pour accéder aux ressources Oracle Cloud Infrastructure.

    Si location_uri est une URL préauthentifiée, l'indication d'une valeur credential_name n'est pas requise.

    Cela crée un objet de répertoire nommé KERBEROS_DIR dans votre base de données et utilise les données d'identification pour télécharger les fichiers de configuration Kerberos de l'emplacement du magasin d'objets vers l'objet de répertoire.

    Vous pouvez spécifier le paramètre params kerberos_service_name pour spécifier un nom de service Kerberos. Exemple :

    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. Après avoir activé l'authentification Kerberos, supprimez krb.conf et v5srvtab du magasin d'objets. Vous pouvez utiliser les méthodes du magasin d'objets local pour supprimer ces fichiers ou utiliser DBMS_CLOUD.DELETE_OBJECT pour supprimer les fichiers du magasin d'objets.

Désactiver l'authentification Kerberos sur une base de données autonome avec intelligence artificielle

Affiche les étapes de désactivation de l'authentification Kerberos pour votre instance de base de données d'IA autonome.

  1. Exécutez la procédure DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION pour désactiver l'authentification Kerberos. Pour exécuter la procédure, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_ADMIN.
    BEGIN   
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /

    Cela désactive l'authentification Kerberos (ou tout modèle d'authentification externe spécifié) pour Oracle Autonomous Database.

    Pour plus d'informations, voir ProcédureDISABLE_EXTERNAL_AUTHENTICATION.

Notes pour l'authentification Kerberos sur la base de données autonome avec intelligence artificielle

Fournit des notes sur l'utilisation de l'authentification Kerberos pour Autonomous AI Database.

  • Si vous activez l'authentification Kerberos pour votre base de données Autonomous AI Database, vous pouvez toujours utiliser l'authentification de base de données basée sur un mot de passe pour votre base de données.

  • L'authentification Kerberos n'est pas prise en charge pour les outils suivants :
    • API Oracle Database pour MongoDB

    • Services de données Oracle REST

    • Oracle Machine Learning

    • APEX

    • Oracle Graph Studio

    • Oracle Database Actions

  • Vous pouvez activer l'authentification Kerberos pour authentifier l'utilisateur ADMIN. Vous pouvez utiliser la fonctionnalité Réinitialiser le mot de passe de la console Oracle Cloud Infrastructure pour réinitialiser le mot de passe de l'utilisateur ADMIN et rétablir l'accès si un fichier keytab corrompu entraîne l'échec de l'authentification de l'utilisateur ADMIN.

  • La valeur par défaut pour la différence d'horloge maximale dans la base de données autonome d'IA est de 300 secondes (5 minutes). Vous ne pouvez pas modifier la valeur par défaut de l'écart d'horloge.