Connexion d'utilisateurs Identity and Access Management (IAM) à Oracle Exadata Database Service on Dedicated Infrastructure
Vous pouvez configurer Oracle Exadata Database Service on Dedicated Infrastructure de façon à utiliser l'authentification et l'autorisation Oracle Cloud Infrastructure Identity and Access Management (IAM) afin de permettre aux utilisateurs IAM d'accéder à une base de données Oracle avec leurs informations d'identification IAM.
- Authentification Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) avec Oracle Database
Découvrez comment permette à une instance Oracle Database sur Oracle Exadata Database Service on Dedicated Infrastructure d'autoriser l'accès utilisateur avec un mot de passe de base de données Oracle Cloud Infrastructure IAM (à l'aide d'un vérificateur de mot de passe) ou des jetons SSO. - Prérequis pour l'authentification Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) sur Oracle Database
Examinez les prérequis pour l'authentification Identity and Access Management (IAM) sur une base de données Oracle. - Activation de la base de données et des clients pour l'intégration IAM
Suivez le lien approprié ci-dessous pour configurer les utilisateurs IAM afin qu'ils accèdent à la base de données.
Rubrique parent : Guides pratiques
Authentification Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) avec Oracle Database
Découvrez comment permettre à une instance Oracle Database sur Oracle Exadata Database Service on Dedicated Infrastructure d'autoriser l'accès utilisateur avec un mot de passe de base de données Oracle Cloud Infrastructure IAM (à l'aide d'un vérificateur de mot de passe) ou des jetons SSO.
- A propos de l'authentification Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) avec Oracle Database
Les utilisateurs IAM peuvent se connecter à l'instance de base de données à l'aide d'un vérificateur de mot de passe de base de données IAM ou d'un jeton IAM. - Authentification via un vérificateur de mot de passe de base de données Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)
Vous pouvez permettre à une instance Oracle Database d'autoriser l'accès utilisateur avec un mot de passe de base de données Oracle Cloud Infrastructure IAM (à l'aide d'un vérificateur de mot de passe). - Authentification basée sur les jetons SSO Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)
Pour l'accès via un jeton IAM à la base de données, l'application ou l'outil client demande un jeton de base de données à IAM pour l'utilisateur IAM.
A propos de l'authentification Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) avec Oracle Database
Les utilisateurs IAM peuvent se connecter à l'instance de base de données à l'aide d'un vérificateur de mot de passe de base de données IAM ou d'un jeton IAM.
L'utilisation du vérificateur de mot de passe de base de données IAM est semblable au processus d'authentification par mot de passe de base de données. Toutefois, plutôt que d'être stocké dans la base de données, le vérificateur de mot de passe (hachage crypté du mot de passe) est stocké avec le profil utilisateur OCI IAM.
La seconde méthode de connexion, qui consiste à utiliser un jeton IAM pour la base de données, est plus moderne. L'utilisation de l'accès basé sur un jeton convient mieux aux ressources cloud telles que les bases de données Oracle dans Exadata Cloud Infrastructure. Le jeton est basé sur la sécurité appliquée par l'adresse IAM. Il peut s'agir d'une authentification à plusieurs facteurs, plus forte que les simples mots de passe. L'utilisation de jetons présente un autre avantage : le vérificateur de mot de passe (considéré comme sensible) n'est jamais stocké ni disponible en mémoire.
Oracle Database prend en charge l'intégration Oracle DBaaS pour Oracle Cloud Infrastructure (OCI) IAM avec des domaines d'identité, ainsi que l'ancienne instance IAM, qui n'inclut pas de domaines d'identité. Les utilisateurs et les groupes de domaine par défaut et non par défaut sont pris en charge lors de l'utilisation d'IAM avec des domaines d'identité.
La prise en charge des domaines personnalisés autres que ceux par défaut n'est disponible qu'avec Oracle Database version 19c, version 19.21 et supérieure (mais pas avec Oracle Database version 21c).
L'intégration d'Oracle Cloud Infrastructure IAM à Oracle Exadata Database Service on Dedicated Infrastructure prend en charge les types d'authentification suivants :
- Authentification via un vérificateur de mot de passe de base de données Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)
- Authentification basée sur les jetons SSO Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)
Pour obtenir des détails complets sur l'architecture permettant d'utiliser des utilisateurs IAM sur Oracle Exadata Database Service on Dedicated Infrastructure, reportez-vous à Authentification et autorisation d'utilisateurs IAM pour les bases de données Oracle DBaaS dans le guide de sécurité Oracle Database 19c et le guide de sécurité Oracle Database 23ai.
Authentification via un vérificateur de mot de passe de base de données Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)
Vous pouvez permettre à une instance Oracle Database d'autoriser l'accès utilisateur avec un mot de passe de base de données Oracle Cloud Infrastructure IAM (à l'aide d'un vérificateur de mot de passe).
Tout client de base de données version 12c ou supérieure pris en charge peut être utilisé pour l'accès par mot de passe de base de données IAM à Oracle Database.
Un mot de passe de base de données Oracle Cloud Infrastructure IAM permet à un utilisateur IAM de se connecter à une instance Oracle Database, les utilisateurs Oracle Database se connectant généralement avec un nom utilisateur et un mot de passe. L'utilisateur saisit son nom utilisateur IAM et son mot de passe de base de données IAM. Le mot de passe de base de données IAM est différent du mot de passe de la console Oracle Cloud Infrastructure. L'utilisation d'un utilisateur IAM avec un vérificateur de mot de passe vous permet de vous connecter à Oracle Database avec n'importe quel client de base de données pris en charge.
Pour l'accès à la base de données de vérificateur de mot de passe, vous créez les mises en correspondance des utilisateurs IAM et des applications OCI avec l'instance Oracle Database. Les comptes utilisateur IAM eux-mêmes sont gérés dans IAM. Les comptes utilisateur et les groupes d'utilisateurs peuvent se trouver dans le domaine par défaut ou dans un domaine personnalisé autre que celui par défaut.
Pour plus d'informations sur la gestion du mot de passe de base de données IAM, reportez-vous à Gestion des informations d'identification utilisateur.
Authentification basée sur les jetons SSO Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)
Pour l'accès par jeton IAM à la base de données, l'application ou l'outil client demande un jeton de base de données à IAM pour l'utilisateur IAM.
L'application client transmet le jeton de base de données directement au client de base de données via l'API client de base de données.
Si l'application ou l'outil n'a pas été mis à jour et ne peut pas demander de jeton IAM, l'utilisateur IAM peut employer l'interface de ligne de commande OCI pour demander et stocker le jeton de base de données. Vous pouvez demander un jeton d'accès à la base de données (db-token
) à l'aide des informations d'identification suivantes :
- Jetons de sécurité (avec l'authentification IAM), jetons de délégation (dans OCI Cloud Shell) et
clés d'API
, à savoir des informations d'identification représentant l'utilisateur IAM pour permettre l'authentification - Jetons de principal d'instance, qui permettent aux instances d'être des acteurs autorisés (ou des principaux) et d'effectuer des actions sur les ressources OCI après authentification
- Jeton de principal de ressource, à savoir des informations d'identification permettant à l'application de s'authentifier auprès d'autres services OCI
- Nom utilisateur IAM et mot de passe de base de données IAM (que seul le client de base de données peut demander)
Lorsque les utilisateurs IAM se connectent au client avec une connexion à barre oblique (/
) et que le paramètre OCI_IAM
est configuré (sqlnet.ora
, tnsnames.ora
ou dans le cadre d'une chaîne de connexion), le client de base de données extrait le jeton de base de données d'un fichier. Si l'utilisateur IAM soumet un nom utilisateur et un mot de passe, la connexion utilise l'accès de vérificateur de base de données IAM décrit pour les connexions client qui emploient des vérificateurs de mot de passe de base de données IAM. Si le paramètre PASSWORD_AUTH=OCI_TOKEN
est défini, le pilote de base de données emploie le nom utilisateur et le mot de passe pour se connecter directement à IAM et pour demander un jeton de base de données. Les instructions de ce guide indiquent comment utiliser l'interface de ligne de commande OCI en tant qu'application d'aide pour le jeton de base de données. Si l'application ou l'outil a été mis à jour pour fonctionner avec IAM, suivez les instructions de l'application ou de l'outil. Voici quelques cas d'emploi courants : SQL*Plus sur site, SQLcl sur site, SQL*Plus dans Cloud Shell ou applications utilisant des portefeuilles SEP.
- Une application ou un outil client peut demander le jeton de base de données à IAM pour l'utilisateur et le transmettre via l'API client. L'utilisation de l'API pour envoyer le jeton remplace les autres paramètres du client de base de données. L'utilisation de jetons IAM requiert le dernier client Oracle Database 19c (19.16 au moins). Certains clients antérieurs (19c et 21c) fournissent un ensemble limité de fonctions pour l'accès par jeton. Le client Oracle Database 21c ne prend pas entièrement en charge la fonctionnalité d'accès par jeton IAM :
- JDBC Thin sur toutes les plates-formes
- Pour plus d'informations, reportez-vous à Prise en charge de l'authentification basée sur un jeton IAM et à Téléchargements JDBC et UCP.
- SQL*Plus et Oracle Instant Client OCI-C sur Linux :
Pour plus d'informations, reportez-vous à Authentification basée sur un jeton Identity and Access Management (IAM).
- Oracle Data Provider for .NET (ODP.NET) Core : clients .NET (dernière version de Linux ou Windows). Les composants logiciels .NET sont disponibles en téléchargement gratuit sur les sites suivants :
- Oracle Data Access Components - Téléchargements .NET
- NuGet Gallery
- Visual Studio Code Marketplace
- JDBC Thin sur toutes les plates-formes
- Si l'application ou l'outil ne prend pas en charge la demande d'un jeton de base de données IAM via l'API client, l'utilisateur IAM peut, dans un premier temps, recourir à l'interface de ligne de commande Oracle Cloud Infrastructure pour extraire ce jeton et l'enregistrer dans un emplacement de fichier. Par exemple, pour utiliser SQL*Plus et d'autres applications et outils avec cette méthode de connexion, vous devez d'abord obtenir le jeton de base de données à l'aide de l'interface de ligne de commande Oracle Cloud Infrastructure (OCI). Pour plus d'informations, reportez-vous à db-token get. Si le client de base de données est configuré pour les jetons de base de données IAM, lorsqu'un utilisateur se connecte avec le formulaire de connexion à barre oblique, le pilote de base de données utilise le jeton de base de données IAM qui a été enregistré dans l'emplacement de fichier par défaut ou indiqué.
- Certains clients Oracle Database 23ai peuvent également obtenir un jeton directement à partir d'OCI IAM au lieu d'utiliser l'interface de ligne de commande OCI. Consultez la documentation client pour savoir quels clients prennent en charge cette intégration IAM native.
- Une application ou un outil client peut utiliser un principal de ressource ou d'instance Oracle Cloud Infrastructure IAM pour obtenir un jeton de base de données IAM, et employer ce dernier afin de s'authentifier auprès d'une instance Oracle Database. Pour plus d'informations, reportez-vous à Mise en correspondance de principaux d'instance et de ressource.
- Les utilisateurs IAM et les applications OCI peuvent demander un jeton de base de données à IAM avec plusieurs méthodes, y compris l'utilisation d'une clé d'API. Afin d'obtenir un exemple, reportez-vous à Configuration pour SQL*Plus d'une connexion client utilisant un jeton IAM. Reportez-vous à Authentification et autorisation d'utilisateurs IAM pour les bases de données Oracle DBaaS afin d'obtenir une description d'autres méthodes, telles que l'utilisation d'un jeton de délégation dans OCI Cloud Shell.
Si votre base de données est en mode restreint, seuls les administrateurs de base de données disposant du privilège RESTRICTED SESSION
peuvent se connecter à la base de données.
Si un utilisateur saisit un nom utilisateur/un mot de passe pour se connecter, le pilote de base de données utilise la méthode de vérificateur de mot de passe pour accéder à la base de données. Si le paramètre PASSWORD_AUTH=OCI_TOKEN
est défini, le pilote de base de données emploie le nom utilisateur et le mot de passe pour se connecter directement à IAM et pour demander un jeton de base de données.
Rubriques connexes
- Prise en charge de l'authentification basée sur un jeton IAM
- Téléchargements JDBC et UCP
- Authentification basée sur un jeton Identity and Access Management (IAM)
- db-token get
- Oracle Data Access Components - Téléchargements .NET
- NuGet Gallery
- Visual Studio Code Marketplace
- Mise en correspondance de principaux d'instance et de ressource
- Configuration pour SQL*Plus d'une connexion client utilisant un jeton IAM
- Authentification et autorisation d'utilisateurs IAM pour les bases de données Oracle DBaaS
Prérequis pour l'authentification Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) sur Oracle Database
Examinez les prérequis pour l'authentification Identity and Access Management (IAM) sur une base de données Oracle.
- Prérequis pour l'authentification IAM sur Oracle Database
Avant de vous servir de l'authentification IAM sur des bases de données dans Exadata Cloud Infrastructure, vous devez utiliser le service Networking pour ajouter une passerelle de service, une règle de routage et une règle de sécurité sortante au réseau cloud virtuel et aux sous-réseaux sur lesquels résident vos ressources de base de données. - Désactivation du modèle d'authentification externe
Examinez les prérequis pour activer l'accès utilisateur IAM à Oracle Database. - Configuration de TLS pour utiliser des jetons IAM
Lors de l'envoi de jetons IAM du client de base de données au serveur de base de données, une connexion TLS doit être établie. Le portefeuille TLS avec le certificat de base de données pour l'instance de service ExaDB-D doit être stocké à l'emplacementWALLET_ROOT
. Créez un répertoire tls semblable à ce qui suit :WALLET_ROOT/<PDB GUID>/tls
.
Prérequis pour l'authentification IAM sur Oracle Database
Avant de vous servir de l'authentification IAM sur des bases de données dans Exadata Cloud Infrastructure, vous devez utiliser le service Networking pour ajouter une passerelle de service, une règle de routage et une règle de sécurité sortante au réseau cloud virtuel et aux sous-réseaux sur lesquels résident vos ressources de base de données.
- Créez une passerelle de service dans le réseau cloud virtuel sur lequel résident vos ressources de base de données en suivant les instructions de Tâche 1 : créer la passerelle de service dans la documentation OCI.
- Après avoir créé la passerelle de service, ajoutez une règle de routage et une règle de sécurité sortante à chaque sous-réseau (dans le réseau cloud virtuel) sur lequel résident les ressources de base de données afin que ces ressources puissent utiliser la passerelle pour recourir à l'authentification IAM :
- Accédez à la page Détails du sous-réseau correspondante.
- Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails de la table de routage correspondante.
- Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
- Destination : Tous les services IAD dans Oracle Services Network
- Type de cible : Passerelle de service
- Cible : nom de la passerelle de service que vous venez de créer dans le réseau cloud virtuel
Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle possédant ces caractéristiques.
- Revenez à la page Détails du sous-réseau.
- Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité correspondante.
- Dans le menu latéral, sous Ressources, cliquez sur Règles sortantes.
- Dans la table des règles sortantes existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
- Sans conservation de statut : Non
- Destination : Tous les services IAD dans Oracle Services Network
- Protocole IP : TCP
- Plage de ports source : Tout
- Plage de ports de destination : 443
- Si une telle règle n'existe pas, cliquez sur Ajouter des règles sortantes et ajoutez une règle possédant ces caractéristiques.
Désactivation du modèle d'authentification externe
Consultez les prérequis pour l'activation de l'accès utilisateur IAM à Oracle Database.
Si la base de données est activée pour un autre modèle d'authentification externe, vérifiez que vous voulez utiliser IAM sur l'instance Oracle Database. Un seul modèle d'authentification externe peut être activé à la fois.
Si vous voulez utiliser IAM et qu'un autre modèle d'authentification externe est activé, vous devez d'abord désactiver cet autre modèle.
Configuration de TLS pour utiliser des jetons IAM
Lors de l'envoi de jetons IAM du client de base de données au serveur de base de données, une connexion TLS doit être établie. Le portefeuille TLS avec le certificat de base de données pour l'instance de service ExaDB-D doit être stocké à l'emplacement WALLET_ROOT
. Créez un répertoire tls semblable à ce qui suit : WALLET_ROOT/<PDB GUID>/tls
.
Lors de la configuration de TLS entre le serveur et le client de base de données, plusieurs options sont à envisager.
- Utilisation d'un certificat de serveur de base de données auto-signé ou d'un certificat de serveur de base de données signé par une autorité de certification connue
- TLS unidirectionnelle (TLS), ou TLS mutuelle ou bidirectionnelle (mTLS)
- Client avec ou sans portefeuille
Certificat auto-signé
L'utilisation d'un certificat auto-signé est une pratique courante pour les ressources informatiques en interne car vous pouvez créer ces certificats vous-même gratuitement. La ressource (dans ce cas, le serveur de base de données) dispose d'un certificat auto-signé pour s'authentifier auprès du client de base de données. Le certificat auto-signé et le certificat racine sont stockés dans le portefeuille du serveur de base de données. Pour que le client de base de données puisse reconnaître le certificat de serveur de base de données, une copie du certificat racine est également nécessaire sur le client. Ce certificat racine auto-créé peut être stocké dans un portefeuille côté client ou installé dans la banque de certificats par défaut du système client (Windows et Linux uniquement). Une fois la session établie, le client de base de données vérifie que le certificat envoyé par le serveur de base de données a été signé par le même certificat racine.
Autorité de certification connue
L'utilisation d'une autorité de certification racine connue présente certains avantages du fait que le certificat racine est probablement déjà stocké dans la banque de certificats par défaut du système client. Aucune étape supplémentaire n'est requise pour que le client stocke le certificat racine s'il s'agit d'un certificat racine courant. L'inconvénient est que cela a généralement un coût.
TLS unidirectionnelle
Dans une session TLS standard, seul le serveur fournit un certificat au client pour s'authentifier. Le client n'a pas besoin d'avoir un certificat client distinct pour s'authentifier auprès du serveur (semblable au mode d'établissement des sessions HTTPS). La base de données requiert un portefeuille pour stocker le certificat de serveur, mais la seule chose dont le client a besoin est le certificat racine utilisé pour signer le certificat de serveur.
TLS bidirectionnelle (également appelée TLS mutuelle, mTLS)
Avec mTLS, le client présente un certificat d'identité au serveur, et vice versa. Dans la plupart des cas, le même certificat racine signe ces deux certificats afin que le même certificat racine puisse être utilisé avec le serveur de base de données et le client pour authentifier l'autre certificat. Le protocole mTLS est parfois utilisé pour authentifier l'utilisateur car l'identité de l'utilisateur est authentifiée par le serveur de base de données via le certificat. Cela n'est pas nécessaire pour transmettre des jetons IAM, mais peut être utilisé lors de la transmission de jetons IAM.
Client avec portefeuille
Lors de l'utilisation de mTLS, le portefeuille client est obligatoire pour stocker le certificat client. Toutefois, le certificat racine peut être stocké dans le même portefeuille ou dans la banque de certificats par défaut du système.
Client sans portefeuille
Les clients peuvent être configurés sans portefeuille lors de l'utilisation de TLS dans les conditions suivantes : 1) la configuration de TLS unidirectionnelle est effectuée lorsque le client ne dispose pas de son propre certificat et 2) le certificat racine qui a signé le certificat de serveur de base de données est stocké dans la banque de certificats par défaut du système. Le certificat racine s'y trouve probablement déjà si le certificat de serveur est signé par une autorité de certification courante. S'il s'agit d'un certificat auto-signé, le certificat racine doit être installé dans la banque de certificats par défaut du système pour éviter l'utilisation d'un portefeuille client.
Pour plus d'informations sur la configuration de TLS entre le client de base de données et le serveur de base de données, y compris les options décrites ci-dessus, reportez-vous à Configuration de l'authentification TLS dans le guide de sécurité Oracle Database.
Si vous choisissez d'utiliser des certificats auto-signés et pour connaître les autres tâches liées au portefeuille, reportez-vous à Gestion des éléments PKI (Public Key Infrastructure) dans le guide de sécurité Oracle Database.
Activation de la base de données et des clients pour l'intégration IAM
Suivez le lien approprié ci-dessous pour configurer les utilisateurs IAM afin qu'ils accèdent à votre base de données.
Pour obtenir des détails complets sur l'architecture permettant d'utiliser des utilisateurs IAM sur Oracle Exadata Database Service on Dedicated Infrastructure, reportez-vous à Authentification et autorisation d'utilisateurs IAM pour les bases de données Oracle DBaaS dans le guide de sécurité Oracle Database 19c et le guide de sécurité Oracle Database 23ai.