Usar Autenticação Externa com o Serviço Database Tools
O Autonomous AI Database estende o suporte de autenticação externa às Ferramentas de Bancos de Dados e ferramentas relacionadas usando provedores de identidade como Oracle Cloud Infrastructure IAM, Microsoft Entra ID, Google Cloud Platform, AWS Cognito e Okta. Isso permite o acesso seguro de logon único (SSO) ao Database Actions sem senhas tradicionais para usuários de banco de dados identificados globalmente.
Sobre Autenticação Externa com o Database Actions
Você pode fazer a autenticação na interface da ferramenta com a mesma identidade externa usada para sessões de banco de dados. A configuração do provedor de identidades para o serviço Database Tools é separada da ativação da autenticação externa no banco de dados. O Autonomous AI Database armazena a configuração do provedor de identidades necessária para autenticação no banco de dados, com valores confidenciais, como o segredo do cliente criptografado. Essa configuração inclui o nome do provedor de identidades, o ID do cliente, o segredo do cliente e o URL de descoberta do OpenID Connect.
Durante o acesso, as ferramentas usam essa configuração para redirecioná-lo ao provedor de identidades apropriado e para validar tokens de autenticação emitidos para usuários autenticados externamente.
Observação
Observação: O Autonomous AI Database suporta autenticação externa para as seguintes ferramentas incorporadas no Database Actions - SQL Developer e Data Studio. O banco de dados não suporta autenticação externa para ferramentas, como APEX e Oracle Machine Learning.
Pré-requisitos
Certifique-se de poder acessar a instância do Autonomous AI Database usando uma conta de usuário com privilégios ADMIN.
Para usar a autenticação externa com as ferramentas de Banco de Dados, você deve:
- Ativar Autenticação Externa para Ações do Banco de Dados
- Criar usuários globais do banco de dados
- Registrar informações do provedor de identidades no banco de dados
- Acessar o Database Actions usando credenciais externas
Siga as etapas acima para cada profissional de saúde suportado. As diferenças específicas do provedor são limitadas ao procedimento de ativação no nível do banco de dados, à sintaxe de mapeamento do usuário global e se os metadados do provedor de identidades do serviço Database Tools devem ser registrados com DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP.
Requisitos da etapa do profissional de saúde
Use esta tabela para determinar quais etapas de definição do profissional de saúde se aplicam antes de seguir as etapas detalhadas.
| Provedor | Ativar autenticação externa | IDP do Registro |
|---|---|---|
| IAM do OCI | Obrigatório se não estiver ativado | Não é obrigatório |
| ID do Microsoft Entra (Azure) | Obrigatório | Obrigatório |
| AWS Cognito | Configurar com IDP | Obrigatório |
| Google Cloud Platform (GCP) | Configurar com IDP | Obrigatório |
| Okta | Configurar com IDP | Obrigatório |
Observações específicas do profissional de saúde
| Provedor | Observações e exceções |
|---|---|
| IAM do OCI | Use DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION com type => 'OCI_IAM'. Não execute CREATE_IDP para o OCI IAM. Mapeie usuários ou grupos com IAM_PRINCIPAL_NAME ou IAM_GROUP_NAME. |
| ID do Microsoft Entra (Azure) | Antes de executar as etapas de configuração do banco de dados, um administrador do ID do Microsoft Entra deve concluir a configuração do Azure. Registre a instância do Autonomous AI Database na tenancy do Microsoft Entra ID, exponha o URI e o escopo do Application ID, crie atribuições de aplicativo se você usar mapeamentos compartilhados e designe os usuários, grupos ou aplicativos necessários. Consulte Ativar Autenticação de ID do Microsoft Entra no Autonomous AI Database. Em seguida, use DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION com type => 'AZURE_AD' e os valores de tenant/aplicativo. Registre os metadados do Database Tools com CREATE_IDP usando o URL de descoberta do OpenID Connect específico do tenant. Mapeie usuários, clientes ou atribuições de aplicativo com AZURE_USER ou AZURE_ROLE. |
| AWS Cognito | Configure o pool de usuários Cognito, o cliente do aplicativo, o domínio e a associação de usuário ou grupo na AWS. Registre metadados do Database Tools com CREATE_IDP usando o URL de descoberta do OpenID Connect do pool de usuários Cognito. Mapeie usuários com mapeamentos AWS_USER e de atribuição compartilhada com AWS_ROLE. |
| Google Cloud Platform (GCP) | Configure a tela de consentimento do OAuth, as credenciais do cliente OAuth, o URI de redirecionamento e a designação de usuário no Google Cloud. Registre os metadados do Database Tools com CREATE_IDP usando o URL de descoberta do Google OpenID Connect. Mapeie usuários com GCP_USER. |
| Okta | Designe o aplicativo aos usuários ou grupos do Okta que devem se conectar. Se o mapeamento de grupo for usado, exponha o escopo dos grupos e os grupos reivindicados no servidor de autorização. Registre os metadados do serviço Database Tools com CREATE_IDP usando o URL de descoberta apropriado do Okta OpenID Connect. Mapeie usuários com OKTA_USER e grupos com OKTA_GROUP. |
Ativar Autenticação Externa para Ações do Banco de Dados
Como usuário do ADMIN, ative a autenticação externa no Autonomous AI Database. Isso permite que o banco de dados o autentique por meio de provedores de identidade externos suportados.
Observação
Observação: A opção de usar autenticação externa no Database Actions só estará disponível quando a autenticação externa tiver sido ativada para o Autonomous AI Database. Se nenhum provedor de autenticação externo tiver sido ativado, você não verá a opção.
Antes de ativar a autenticação externa, verifique se um esquema de autenticação externa já está ativado:
SELECT name, value
FROM v$parameter
WHERE name = 'identity_provider_type';Se identity_provider_type for OCI_IAM ou AZURE_AD, a autenticação externa já estará ativada para esse provedor e nenhuma alteração será necessária para a autenticação externa do banco de dados.
Para usar a autenticação externa com o serviço Database Tools, você ainda deverá concluir a configuração do serviço Database Tools criando ou verificando os usuários do banco de dados globalmente identificados, registrando as informações do provedor de identidades com DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP e fornecendo os privilégios necessários do Database Actions e do Web Access.
Se outro provedor de autenticação externo estiver ativado, não use force => TRUE, a menos que você pretenda substituir a configuração de autenticação externa atual.
O uso do force => TRUE desativa o provedor de autenticação externo ativado no momento e pode interromper os usuários ou aplicativos existentes que dependem dele.
Consulte Ativar Autenticação do IAM (Identity and Access Management) no Autonomous AI Database para obter mais informações.
Observação
Observação: Somente um provedor de autenticação externo pode ser ativado por vez.
Exemplo: Ativar Autenticação Externa com o OCI IAM
Como usuário do ADMIN, você pode ativar a autenticação externa do Oracle Cloud Infrastructure IAM no Autonomous AI Database:
BEGIN
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'OCI_IAM',
force => TRUE
);
END;
/Este procedimento DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION permite a autenticação externa do Oracle Cloud Infrastructure IAM para o banco de dados. Ele não usa o nome do provedor de identidades, o ID do cliente, o segredo do cliente ou o URL de descoberta do OpenID Connect.
O procedimento ENABLE_EXTERNAL_AUTHENTICATION configura o banco de dados para confiar em um provedor de identidades externo suportado. O procedimento varia dependendo do provedor de identidades usado.
Exemplo: Ativar Autenticação Externa com ID do Microsoft Entra
Antes de executar este exemplo, conclua a configuração do ID do Microsoft Entra no Azure e colete o ID do tenant, o ID do aplicativo e o URI do ID do Aplicativo do registro do aplicativo do Azure. Se você usar mapeamentos de atribuição de aplicativo, crie as atribuições de aplicativo e designe os usuários, grupos ou aplicativos necessários no ID do Microsoft Entra. Consulte Registrar a Instância do Oracle AI Database com uma Tenancy do ID do Microsoft Entra e Gerenciar Atribuições de Aplicativo no ID do Microsoft Entra.
Como usuário do ADMIN, ative a autenticação externa do ID do Microsoft Entra no Autonomous AI Database:
BEGIN
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'AZURE_AD',
params => JSON_OBJECT(
'tenant_id' VALUE 'tenant-id',
'application_id' VALUE 'application-id',
'application_id_uri' VALUE 'application-id-uri'),
force => TRUE
);
END;
/Para ferramentas como o Database Actions e o Data Studio, certifique-se de que os usuários globais do banco de dados autenticados externamente recebam as atribuições de banco de dados apropriadas e tenham o Web Access ativado.
Observação
Observação: Quando a autenticação externa já estiver ativada para o provedor que você deseja usar, não execute novamente ENABLE_EXTERNAL_AUTHENTICATION. Use CREATE_IDP somente para registrar metadados do provedor de identidades para provedores que exigem o registro de metadados do OpenID Connect, como o Microsoft Entra ID, e use ENABLE_EXTERNAL_AUTHENTICATION com cautela. Para o Oracle Cloud Infrastructure IAM, você ativará a autenticação externa e configurará usuários de banco de dados identificados globalmente, e não precisará registrar informações do provedor de identidades no banco de dados. O uso do parâmetro force pode interromper uma configuração de autenticação externa existente.
Criar Usuários de Banco de Dados Global
Após ativar a autenticação externa, crie usuários que sejam IDENTIFIED GLOBALLY. Um usuário globalmente identificado é um usuário ou esquema de banco de dados criado no Autonomous AI Database e mapeado para um principal de provedor de identidades externo em vez de uma senha de banco de dados. Você criará usuários globais de banco de dados para o mesmo provedor de identidades que ativou para autenticação externa. Permissões e autorizações são concedidas aos usuários globais do banco de dados para privilégios no banco de dados e, para fazer log-on em DBActions, você precisará ativar o usuário global do banco de dados para ORDS e conceder a criação de sessão no mínimo.
Execute os exemplos a seguir para criar usuários globais do banco de dados mapeados para os principais do respectivo provedor de identidades.
Exemplo: Criar Usuários de Banco de Dados Global para o OCI IAM
Crie um usuário de banco de dados global mapeado para um principal do Oracle Cloud Infrastructure IAM:
CREATE USER adam_scott
IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=adamscott';Conceda acesso ao usuário do banco de dados adam_scott.
GRANT CREATE SESSION TO adam_scott;Você também pode mapear um usuário de banco de dados compartilhado para um grupo do Oracle Cloud Infrastructure IAM:
CREATE USER sales_group
IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=db_sales_group';Execute essas instruções para permitir que o usuário do banco de dados sales_group mapeado acesse o banco de dados.
GRANT CREATE SESSION TO sales_group;Exemplo: Criar Usuários de Banco de Dados Global para o ID do Microsoft Entra
Crie um usuário do banco de dados global mapeado para um usuário do ID do Microsoft Entra:
CREATE USER peter_fitch
IDENTIFIED GLOBALLY AS 'AZURE_USER=peter.fitch@example.com';Execute estas instruções para conceder privilégios ou atribuições de banco de dados ao usuário peter_fitch:
GRANT CREATE SESSION TO peter_fitch;Você também pode mapear um usuário de banco de dados compartilhado para uma atribuição de aplicativo Microsoft Entra ID:
CREATE USER dba_azure
IDENTIFIED GLOBALLY AS 'AZURE_ROLE=AZURE_DBA';Conceda o privilégio de usuário para estabelecer uma conexão de banco de dados:
GRANT CREATE SESSION TO dba_azure;Use mapeamentos exclusivos para mapear um usuário do banco de dados para um único principal externo ou use mapeamentos compartilhados para mapear um usuário do banco de dados para um grupo ou atribuição externa que possa representar vários principais.
| Provedor | Exemplos de mapeamento de usuário global: mapeamentos exclusivos e compartilhados |
|---|---|
| IAM do OCI | Mapeamento exclusivo:IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=<iam-user>'Mapeamento compartilhado: IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=<iam-group>' |
| ID do Microsoft Entra (Azure) | Mapeamento exclusivo:IDENTIFIED GLOBALLY AS 'AZURE_USER=<user-principal-name>'Mapeamento compartilhado: IDENTIFIED GLOBALLY AS 'AZURE_ROLE=<app-role>' |
| AWS Cognito | Mapeamento exclusivo:IDENTIFIED GLOBALLY AS 'AWS_USER=<aws-user>'Mapeamento compartilhado: IDENTIFIED GLOBALLY AS 'AWS_ROLE=<aws-role>' |
| Google Cloud Platform (GCP) | Mapeamento exclusivo:IDENTIFIED GLOBALLY AS 'GCP_USER=<gcp-user>'Mapeamento compartilhado: Não disponível. |
| Okta | Mapeamento exclusivo:IDENTIFIED GLOBALLY AS 'OKTA_USER=<okta-user>'Mapeamento compartilhado: IDENTIFIED GLOBALLY AS 'OKTA_GROUP=<okta-group>' |
Observação
Observação: Para usuários globais, esses exemplos abrangem o Oracle Cloud Infrastructure IAM; para outros provedores de identidade, use a sintaxe de mapeamento específica do provedor em sua documentação.
Para usar o usuário com o Database Actions, você deve criar uma sessão, conceder os privilégios necessários do Database Actions, ativar o Oracle REST Data Services (ORDS) para o esquema e garantir que o usuário tenha Acesso à Web.
Exemplo: Ativar ORDS para um Usuário de Banco de Dados Globalmente Identificado
GRANT CREATE SESSION TO IDP_SHARED;
BEGIN
ORDS_ADMIN.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'idp_shared',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'idp_shared',
p_auto_rest_auth => FALSE);
END; Observação
Observação: Conceda DWROLE para permitir que os usuários mapeados acessem o conjunto de ferramentas do Data Studio no Database Actions.
Registrar Informações do Provedor de Identidades no Banco de Dados
Depois de criar usuários autenticados globalmente, um administrador deverá registrar o provedor de identidades no banco de dados usando DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP.
Esse registro armazena o nome do provedor de identidades, o ID do cliente, o segredo do cliente e os metadados de descoberta necessários para a validação do token do OpenID Connect. O registro de um provedor de identidades permite que o serviço Database Tools, como o Database Actions e o Data Studio, autentique usuários por meio dos provedores de identidades externos suportados.
Você usará o procedimento CREATE_IDP para criar um novo provedor de identidades para autenticação externa. Você só precisa registrar um provedor de identidades uma vez para um banco.
Não é necessário registrar informações do provedor de identidades para o Oracle Cloud Infrastructure IAM. Você só ativará a autenticação externa e configurará usuários de banco de dados identificados globalmente para o Oracle Cloud Infrastructure IAM.
A etapa de registro do provedor de identidades nesta seção se aplica a outros provedores externos suportados.
Exemplo: exemplo de CREATE_IDP genérico para profissionais de saúde externos
Registre as informações suportadas do provedor de identidades no banco de dados para autenticação do serviço Database Tools:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
idp_name => '<IDP_NAME>',
client_id => '<client-id>',
client_secret => '<client-secret>',
params => JSON_OBJECT(
'discovery_url' VALUE '<openid-configuration-url>'));
END;
/Para obter mais informações sobre os parâmetros e a descrição, consulte Procedimento CREATE_IDP.
Você também pode atualizar uma entrada existente do provedor de identidades usando o Procedimento UPDATE_IDP e remover um registro existente do provedor de identidades do banco de dados usando o Procedimento DELETE_IDP.
Acessar o Database Actions com Autenticação Externa
Quando um provedor de identidades é registrado e a autenticação externa é ativada, o Database Actions e outras ferramentas suportadas exibem a opção Acessar com SSO. Acessar com SSO significa que você acessa o Database Actions como um usuário do banco de dados global autenticado externamente por meio do provedor de identidades configurado. Se você ainda não tiver uma sessão ativa do provedor de identidades, o Database Actions o redirecionará para o Oracle Cloud Infrastructure IAM ou para o ID do Microsoft Entra para concluir a autenticação.
Para acessar como um usuário do banco de dados global autenticado externamente:
-
Abra o URL do Database Actions.
-
Selecione Acessar com SSO.
-
Autentique-se com o provedor de identidades configurado, como o Oracle Cloud Infrastructure IAM ou o Microsoft Entra ID.
-
Após a autenticação ser bem-sucedida, o Database Actions é aberto para o usuário do banco de dados global mapeado.
Observação
Observação: Acessar o Database Actions na Console do Oracle Cloud Infrastructure como um ADMIN é um fluxo separado. Com a política obrigatória do Oracle Cloud Infrastructure IAM, você pode abrir o Database Actions na Console como ADMIN. Isso é diferente de acessar diretamente o Database Actions como um usuário do banco de dados global autenticado externamente. Quando um usuário autenticado externamente se desconecta, o Database Actions retorna à página de acesso ao Database Actions.