Package DBMS_CLOUD_FUNCTION_ADMIN

Le package DBMS_CLOUD_FUNCTION_ADMIN prend en charge l'appel de scripts génériques à partir d'une instance de base de données Autonomous AI et l'inscription de fournisseurs d'identités pour l'authentification externe à l'aide de Database Tools.

Récapitulatif des sous-programmes DBMS_CLOUD_FUNCTION_ADMIN

Ce tableau récapitule les sous-programmes inclus dans le package DBMS_CLOUD_FUNCTION_ADMIN.

Sous-programme Description
Procédure DEREGISTER_REMOTE_EXECUTION_ENV Cette procédure supprime une adresse précédemment enregistrée.
Procédure GRANT_REMOTE_EXECUTION_ENV Cette procédure permet à l'utilisateur ADMIN d'accorder des privilèges sur une adresse enregistrée à un utilisateur autre que l'utilisateur ADMIN.
Procédure REGISTER_REMOTE_EXECUTION_ENV Cette procédure enregistre un environnement d'adresse distant.
Procédure REVOKE_REMOTE_EXECUTION_ENV Cette procédure permet à l'utilisateur ADMIN de révoquer des privilèges sur une adresse inscrite auprès d'un utilisateur autre que l'utilisateur ADMIN.
Procédure CREATE_IDP Cette procédure permet à l'utilisateur ADMIN de créer un fournisseur d'identités pour l'authentification externe. Cette procédure n'est pas utilisée pour l'inscription du fournisseur d'identités OCI IAM.
Procédure UPDATE_IDP Cette procédure permet à l'utilisateur ADMIN de mettre à jour une entrée de fournisseur d'identités existante identifiée par idp_id.
Procédure DELETE_IDP Cette procédure permet à l'utilisateur ADMIN de supprimer une inscription de fournisseur d'identités de la base de données.

Procédure DEREGISTER_REMOTE_EXECUTION_ENV

Cette procédure supprime une adresse précédemment enregistrée.

Syntaxe

DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2
);

Paramètres

Paramètre Description
remote_endpoint_name

Indique l'adresse distante à enlever.

Ce paramètre est obligatoire.

Exemple

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE');
END;
/

Notes d'utilisation

  • Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN.

Procédure GRANT_REMOTE_EXECUTION_ENV

Cette procédure permet à l'utilisateur ADMIN d'accorder des privilèges sur une adresse enregistrée à un utilisateur autre que l'utilisateur ADMIN.

Syntaxe

DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   user_name            IN VARCHAR2
);

Paramètres

Paramètre Description
remote_endpoint_name

Indique le nom de l'adresse distante inscrite.

Ce paramètre est obligatoire.

user_name

Indique le nom utilisateur.

Ce paramètre est obligatoire.

Exemple

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      user_name            => '<username>');
END;
/

Notes d'utilisation

  • Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN.

Procédure REGISTER_REMOTE_EXECUTION_ENV

Cette procédure enregistre une adresse distante.

Syntaxe

DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   remote_endpoint_url  IN CLOB,
   wallet_dir           IN VARCHAR2,
   remote_cert_dn       IN CLOB
);

Paramètres

Paramètre Description
remote_endpoint_name

Indique l'adresse distante à inscrire.

Ce paramètre est obligatoire.

remote_endpoint_url

Spécifie l'emplacement distant de la bibliothèque.

Le paramètre accepte une valeur de chaîne au format host_name:port_number.

Par exemple : EHRPMZ_DBDOMAIN.adb-us-phoenix1.com:16000

Ce paramètre est obligatoire.

wallet_dir

Indique le répertoire dans lequel le portefeuille auto-signé est stocké.

Ce paramètre est obligatoire.

remote_cert_dn

Spécifie le nom distinctif (DN) du certificat de serveur.

Ce paramètre est obligatoire.

Exemple

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      remote_endpoint_url  => 'remote_hostname:16000',
      wallet_dir           => 'WALLET_DIR',
      remote_cert_dn       => 'CN=VM Hostname');
END;
/

Notes d'utilisation

  • Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN.

Procédure REVOKE_REMOTE_EXECUTION_ENV

Cette procédure permet à l'utilisateur ADMIN de révoquer des privilèges sur une adresse inscrite auprès d'un utilisateur autre que l'utilisateur ADMIN.

Syntaxe

DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   user_name            IN VARCHAR2
);

Paramètres

Paramètre Description
remote_endpoint_name

Indique le nom de l'adresse distante inscrite.

Ce paramètre est obligatoire.

user_name

Indique le nom utilisateur.

Ce paramètre est obligatoire.

Exemple

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      user_name            => '<username>');
END;
/

Notes d'utilisation

  • Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN.

Procédure CREATE_IDP

Cette procédure enregistre un fournisseur d'identités externe avec votre base de données Autonomous AI. Cette procédure n'est pas utilisée pour inscrire les informations sur le fournisseur d'identités OCI IAM.

Syntaxe

DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
   idp_name        IN VARCHAR2,
   client_id       IN VARCHAR2,
   client_secret   IN VARCHAR2,
   params          IN JSON
);

Paramètres

Paramètre Description
idp_name Spécifie un nom unique pour l'inscription du fournisseur d'identités. Ce paramètre est obligatoire.
client_id Spécifie l'identificateur client de l'application inscrite auprès du fournisseur d'identités. Ce paramètre est obligatoire.
client_secret Spécifie la clé secrète du client pour l'application inscrite. Ce paramètre est obligatoire.
params Indique un objet JSON qui contient des valeurs de configuration de fournisseur d'identités. Ce paramètre est obligatoire.

Paramètres JSON pris en charge

Paramètre Description
discovery_url Adresse de repérage OpenID Connect utilisée pour extraire les métadonnées d'authentification.

Pour Microsoft Entra ID :

https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration

OCI IAM ne requiert pas d'inscription CREATE_IDP ni de valeur discovery_url dans cette procédure.

Exemple : enregistrement de l'ID Microsoft

Cet exemple montre comment inscrire Microsoft Entra ID en tant que fournisseur d'identités externe à l'aide de l'URL de repérage OpenID Connect propre au locataire.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name      => 'AZURE_AD',
      client_id     => '<client-id>',
      client_secret => '<client-secret>',
      params        => JSON_OBJECT(
                         'discovery_url' VALUE
                         'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/

Exemple : enregistrer AWS Cognito

Cet exemple montre comment enregistrer AWS Cognito en tant que fournisseur d'identités externe à l'aide d'une URL de découverte Amazon Cognito OpenID Connect.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'AWS',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration'
                           ));
END;
/

Exemple : inscription de Google Cloud Platform (GCP)

Cet exemple montre comment inscrire Google Cloud en tant que fournisseur d'identités externe à l'aide de l'URL de découverte Google OpenID Connect.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'GCP',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://accounts.google.com/.well-known/openid-configuration'
                           ));
END;
/

Exemple : enregistrement d'Okta

Cet exemple montre comment inscrire Okta en tant que fournisseur d'identités externe à l'aide de l'URL de repérage OpenID Connect du serveur d'autorisation Okta.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'OKTA',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://<okta-domain>/oauth2/default/.well-known/openid-configuration'
                           ));
END;
/

Vous devez inscrire un fournisseur d'identités une fois pour une base de données, sauf si vous devez mettre à jour ou remplacer l'inscription.

Fournisseur CREATE_IDP requis ? Modèle d'URL de repérage
OCI IAM Non Non applicable. OCI IAM est activé avec DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION et n'utilise pas CREATE_IDP.
ID Microsoft Entra (Azure) Oui https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration
AWS Cognito Oui https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration
Google Cloud Platform (GCP) Oui https://accounts.google.com/.well-known/openid-configuration
Okta Oui Serveur Org : https://<okta-domain>/.well-known/openid-configuration
serveur par défaut/personnalisé : https://<okta-domain>/oauth2/<authorization-server-id>/.well-known/openid-configuration

Procédure UPDATE_IDP

Cette procédure modifie une inscription de fournisseur d'identités existante. Vous pouvez mettre à jour les informations d'identification client et/ou les métadonnées du fournisseur d'identités.

Syntaxe

DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
   idp_id          IN VARCHAR2,
   client_id       IN VARCHAR2 DEFAULT NULL,
   client_secret   IN VARCHAR2 DEFAULT NULL,
   params          IN JSON DEFAULT NULL
);

Paramètres

Paramètre Description
idp_id Indique l'identificateur unique de l'inscription de fournisseur d'identités à mettre à jour.
client_id Spécifie l'identificateur client mis à jour. Ce paramètre est facultatif.
client_secret Spécifie la clé secrète client mise à jour. Ce paramètre est facultatif.
params Indique les paramètres de configuration JSON mis à jour. Ce paramètre est facultatif.

Exemple

Cet exemple montre comment mettre à jour les informations d'identification client et l'URL de repérage OpenID Connect pour une inscription de fournisseur d'identités existante.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
      idp_id        => '<idp-id>',
      client_id     => '<client-id>',
      client_secret => '<client-secret>',
      params        => JSON_OBJECT(
                         'discovery_url' VALUE
                         'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/

Notes d'utilisation

  • Si vous indiquez client_id, vous devez également fournir client_secret. Si vous indiquez client_secret, vous devez également fournir client_id.
  • La valeur idp_id est renvoyée lors de la création du fournisseur d'identités.
  • Tout paramètre omis conserve sa valeur actuelle.
  • La mise à jour d'un fournisseur d'identités n'a aucune incidence sur les utilisateurs de base de données existants configurés pour l'authentification externe.

Procédure DELETE_IDP

Cette procédure supprime un fournisseur d'identités inscrit de la base de données.

Syntaxe

DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
   idp_id IN VARCHAR2
);

Paramètres

Paramètre Description
idp_id Indique l'identificateur unique de l'inscription de fournisseur d'identités à enlever. Ce paramètre est obligatoire.

Exemple

Cet exemple montre comment enlever une inscription de fournisseur d'identités existante à l'aide de son idp_id.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
      idp_id => 'AZURE-ID');
END;
/

Notes d'utilisation

  • La suppression d'un fournisseur d'identités supprime les informations d'inscription utilisées par les outils de paramétrage pour l'authentification externe.
  • Avant de supprimer un fournisseur d'identités, assurez-vous qu'aucune application ou aucun utilisateur ne dépend de cet enregistrement pour authentification.
  • Les utilisateurs configurés pour l'authentification de base de données traditionnelle peuvent continuer à s'authentifier avec leur nom utilisateur et leur mot de passe de base de données après la suppression de l'inscription d'un fournisseur d'identités.

Vue DBA_LIST_IDP

La vue DBA_LIST_IDP affiche les fournisseurs d'identités inscrits pour l'authentification externe dans la base de données Autonomous AI. Utilisez cette vue pour vérifier le nom du fournisseur d'identités, l'identificateur client et les métadonnées de repérage OpenID Connect utilisés par les outils de base de données et les flux d'authentification externes.

Colonnes

Colonne Description
idp_id Identificateur unique du fournisseur d'identités inscrit. La valeur est générée lors de l'inscription du fournisseur d'identités.
idp_name Nom du fournisseur d'identités. Par exemple, AZURE_AD identifie l'ID Microsoft Entra comme fournisseur d'identités.
client_id Identificateur client de l'application enregistrée auprès du fournisseur d'identités. Les outils de base de données utilisent cette valeur lorsqu'ils redirigent les utilisateurs pour l'authentification externe.
params Objet JSON qui stocke les paramètres de configuration du fournisseur d'identités. Le paramètre discovery_url identifie l'adresse de repérage OpenID Connect pour le fournisseur d'identités.

Attributs JSON PARAMS

Attribut Description
discovery_url URL de repérage OpenID Connect pour le fournisseur d'identités. L'URL de repérage renvoie des métadonnées telles que l'adresse d'autorisation, l'adresse de jeton, l'émetteur et les clés de signature. Pour l'ID Microsoft Entra, cette URL utilise l'adresse .well-known/openid-configuration propre au locataire.

Exemple

Cet exemple répertorie les colonnes sélectionnées pour les fournisseurs d'identités enregistrés :

SELECT idp_id,
       idp_name,
       client_id,
       params
FROM dba_list_idp;

Exemple de sortie :

IDP_ID     IDP_NAME   CLIENT_ID              PARAMS
---------- ---------- ---------------------- ------------------------------------------------------------
AZURE-ID   AZURE_AD   5691bae2-XXX-YYY-ZZZ   {"discovery_url":"https://login.microsoftonline.com/XXXX-YYYY-ZZZ-KKK-/v2.0/.well-known/openid-configuration"}

Dans cet exemple :

  • AZURE-ID est l'identificateur de fournisseur d'identités généré.

  • AZURE_AD est le nom du fournisseur d'identités inscrit.

  • CLIENT_ID est l'ID client de l'application provenant de Microsoft Entra ID.

  • La valeur PARAMS contient la valeur discovery_url utilisée pour localiser la configuration OpenID Connect pour le locataire Entra ID.