Usar Autenticação do IAM (Identity and Access Management) com o Autonomous AI Database

Você pode configurar o Autonomous AI Database para usar a autenticação e a autorização do Oracle Cloud Infrastructure Identity and Access Management (IAM) para permitir que os usuários do IAM acessem um Autonomous AI Database com credenciais do IAM.

Observação: A integração do Autonomous AI Database ao Oracle Cloud Infrastructure (OCI) IAM é suportada em tenancies comerciais com domínios da identidade, bem como no Oracle Cloud Infrastructure IAM legado, que não inclui domínios da identidade. O Oracle Cloud Infrastructure IAM com domínios de identidade foi introduzido com novas tenancies do OCI criadas após 8 de novembro de 2021. O Autonomous AI Database suporta usuários e grupos em domínios de identidades padrão e não padrão.

Sobre a Autenticação do Identity and Access Management (IAM) com o Autonomous AI Database

A integração do serviço IAM do Oracle Cloud Infrastructure com o Autonomous AI Database suporta tanto a autenticação por senha quanto a autenticação baseada em token. Consulte Autenticando e Autorizando Usuários do Serviço IAM para Oracle Autonomous AI Databases para ver detalhes completos sobre a arquitetura para usar usuários do serviço IAM no Autonomous AI Database.

Autenticação de Senha do Banco de Dados do IAM

Observação: Qualquer cliente de banco de dados 12c e superior suportado pode ser usado para acesso de senha de banco de dados do serviço IAM ao Autonomous AI Database.

Uma senha do banco de dados IAM do Oracle Cloud Infrastructure permite que um usuário do serviço IAM faça log-in em uma instância do Autonomous AI Database, pois, normalmente, os usuários do serviço Oracle Database fazem log-in com um nome de usuário e senha. O usuário informa seu nome de usuário do IAM e a senha do banco de dados do IAM. Uma senha de banco de dados do IAM é uma senha distinta da senha da Console do Oracle Cloud Infrastructure. Usando um usuário do serviço IAM com o verificador de senha, você pode fazer log-in no Autonomous AI Database com qualquer cliente de banco de dados suportado.

Autenticação Baseada em Token de SSO do IAM (Identity and Access Management)

Há várias formas pelas quais um cliente de banco de dados pode obter um token de banco de dados do IAM:

Se um usuário informar um nome de usuário/senha para fazer log-in, o driver do banco de dados usará o método verificador de senha para acessar o banco de dados, independentemente da definição de token do banco de dados do cliente.

Pré-requisitos para Autenticação do IAM (Identity and Access Management) no Autonomous AI Database

Antes de usar a autenticação do IAM (Identity and Access Management) no Autonomous AI Database, você deve garantir o seguinte:

Alterar Provedores Externos de Identidade no Autonomous AI Database

Descreve as etapas para alterar o provedor de identidades externo da autenticação e autorização (IAM) para outro provedor de autenticação externo e vice-versa.

A autenticação e autorização do Oracle Cloud Infrastructure (IAM) para usuários está ativada para Autonomous AI Databases e Autonomous Container Databases recém-provisionados, por padrão. Há outros esquemas de autenticação externos, como Usuários Gerenciados Centralmente com Active Directory (CMU-AD), Azure AD e Kerberos, que você pode ativar para seu Autonomous AI Database. No entanto, só pode existir um esquema de autenticação externo ativado em um determinado momento.

Para permitir que os usuários do banco de dados se conectem ao Autonomous AI Database usando outro esquema de autenticação externo:

  1. Desative a integração do IAM usando o procedimento DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION:

    Por exemplo:

     BEGIN
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
     END;
     /
    

    Para obter informações adicionais, consulte Procedimento DISABLE_EXTERNAL_AUTHENTICATION.

  2. Siga as etapas descritas nas páginas a seguir para configurar outro esquema de autenticação externo de sua escolha:

  3. Reative os usuários do IAM para estabelecer conexão com o Autonomous AI Database usando Autenticação e Autorização do Oracle Cloud Infrastructure (IAM).

    Como usuário ADMIN, execute o procedimento DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION com os parâmetros mostrados abaixo:

     BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
    
         type => 'OCI_IAM'
         force => TRUE
         );
     END;
     /
    

    O exemplo acima desativa qualquer provedor de autenticação externo que esteja ativado no momento e ativa a Autenticação e a Autorização do Oracle Cloud Infrastructure (IAM).

    Neste exemplo:

    • force é definido como TRUE para desativar a autenticação externa atualmente ativada.

    • O type é definido como 'OCI_IAM' para ativar e usar Autenticação e Autorização do Oracle Cloud Infrastructure (IAM).

    Observação: Por padrão, o parâmetro force é FALSE. Quando outro método de autenticação externa é ativado e force é FALSE, DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION reporta o seguinte erro: ORA-20004: Another external authentication is already enabled.

    Consulte Procedimento ENABLE_EXTERNAL_AUTHENTICATION para obter mais referências.

  4. Verifique o valor do parâmetro do sistema IDENTITY_PROVIDER_TYPE, conforme mostrado abaixo:

     SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
     NAME                   VALUE
    
     ---------------------- -------
     identity_provider_type OCI_IAM
    

Criar Grupos e Políticas do Serviço IAM (Identity and Access Management) para Usuários do IAM

Descreve as etapas para gravar instruções de política para um grupo do serviço IAM a fim de permitir que o usuário do serviço IAM acesse os recursos da Oracle Cloud Infrastructure, especificamente as instâncias do Autonomous AI Database.

Uma política é um grupo de instruções que especifica quem pode acessar recursos específicos e como. O acesso pode ser concedido para toda a tenancy, bancos de dados em um compartimento ou bancos de dados individuais. Isso significa que você grava uma instrução de política que dá a um grupo específico um determinado tipo de acesso a um tipo de recurso definido dentro de um compartimento específico.

Observação: é necessário definir uma política para usar tokens do IAM para acessar o Autonomous AI Database. Não é necessária uma política ao utilizar senhas de banco de dados do IAM para acessar o Autonomous AI Database.

Para permitir que o Autonomous AI Database permita que os usuários do IAM se conectem ao banco de dados usando tokens do serviço IAM:

  1. Execute os pré-requisitos do Oracle Cloud Infrastructure Identity and Access Management criando um grupo e adicionando usuários ao grupo.

    Por exemplo, crie o grupo sales_dbusers.

    Consulte Gerenciando Grupos para obter mais informações.

  2. Grave instruções de política para permitir o acesso aos recursos do Oracle Cloud Infrastructure.

    1. Na console do Oracle Cloud Infrastructure, clique em Identity & Security.

    2. Em Identidade e Segurança, clique em Políticas.

    3. Para uma política de gravação, clique em Criar Política.

    4. Na página Criar Política, informe um Nome e uma Descrição.

    5. Na página Criar Política, selecione Mostrar editor manual.

       [Description of the illustration adb_iam_create_policy_manual.png](img_text/adb_iam_create_policy_manual.html)
      
    6. Use o Construtor de Políticas para criar uma política.

      Por exemplo, para criar uma política que permita que os usuários do grupo DBUsers do IAM acessem qualquer Autonomous AI Database em sua tenancy:

       Allow group DBUsers to use autonomous-database-family in tenancy
      

      Por exemplo, para criar uma política que limita membros do grupo DBUsers a acessar Autonomous AI Databases no compartimento testing_compartment somente:

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment
      

      Por exemplo, para criar uma política que limite o acesso do grupo a um único banco de dados em um compartimento:

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'
      

      Consulte Creating an IAM Policy to Authorize Users Authenticating with Tokens no Database Security Guide para obter mais informações sobre políticas do IAM para acessar o banco de dados.

    7. Clique em Criar.

      Consulte Gerenciando Políticas para obter mais informações sobre políticas.

Observações sobre a criação de políticas para uso com usuários do IAM no Autonomous AI Database:

Adicionar Usuários do Serviço IAM no Banco de Dados Autonomous AI

Para adicionar usuários do Serviço IAM para permitir acesso ao Autonomous AI Database, mapeie usuários globais de bancos de dados para grupos ou usuários do Serviço IAM com instruções CREATE USER ou ALTER USER (com uma cláusula IDENTIFIED GLOBALLY AS).

A autorização dos usuários do Serviço IAM para uma instância do Autonomous AI Database funciona através do mapeamento de usuários globais (esquemas) do IAM para usuários do Serviço IAM (mapeamento exclusivo) ou grupos do Serviço IAM (mapeamento de esquema compartilhado).

Para autorizar usuários do IAM em uma instância do Autonomous AI Database:

  1. Faça log-in como o usuário ADMIN no banco de dados que está ativado para usar o serviço IAM (o usuário ADMIN tem os privilégios de sistema CREATE USER e ALTER USER necessários para essas etapas).

  2. Crie um mapeamento entre o usuário (esquema) do Autonomous AI Database com as instruções CREATE USER ou ALTER USER e inclua a cláusula IDENTIFIED GLOBALLY AS, especificando o nome de grupo do IAM.

    Use a seguinte sintaxe para mapear um usuário global para um grupo do serviço IAM:

     CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';
    

    Por exemplo, para mapear um grupo do serviço IAM chamado db_sales_group para um usuário global de banco de dados compartilhado chamado sales_group:

     CREATE USER sales_group IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=db_sales_group';
    

    Isso cria um mapeamento de usuário global compartilhado. O mapeamento, com o usuário global sales_group, é efetivo para todos os usuários do grupo do IAM. Assim, qualquer pessoa no db_sales_group pode fazer log-in no banco de dados usando suas credenciais do IAM (por meio do mapeamento compartilhado do usuário global sales_group).

    O exemplo a seguir mostra como fazer isso para um domínio não padrão:

     CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/db_sales_group';
    
  3. Se você quiser criar mapeamentos de usuários globais adicionais para outros grupos ou usuários do IAM, siga estas etapas para cada grupo ou usuário do IAM.

Observação: Os usuários do banco de dados que não são IDENTIFIED GLOBALLY podem continuar a fazer log-in como antes, mesmo quando o Autonomous AI Database está ativado para autenticação do serviço IAM.

Para mapear exclusivamente um usuário local de IAM para um Usuário Global do Oracle Database:

  1. Faça log-in como o usuário ADMIN no banco de dados que está ativado para usar o serviço IAM (o usuário ADMIN tem os privilégios de sistema CREATE USER e ALTER USER necessários para essas etapas).

  2. Create a mapping between the Autonomous AI Database user (schema) with CREATE USER or ALTER USER statements and include the IDENTIFIED GLOBALLY AS clause, specifying the IAM local IAM user name.

    Por exemplo, para criar um novo usuário global de banco de dados chamado peter_fitch e mapear esse usuário para um usuário local existente do serviço IAM chamado peterfitch:

     CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'
    

    O exemplo a seguir mostra como criar o usuário especificando um domínio não padrão, sales_domain:

     CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
     'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';
    

Adicionar Atribuições do Serviço IAM no Autonomous AI Database

Opcionalmente, crie atribuições globais para fornecer privilégios e atribuições adicionais do banco de dados a usuários do IAM quando vários usuários do IAM forem mapeados para o mesmo usuário global compartilhado.

O uso de atribuições globais é opcional ao usar um mapeamento exclusivo do IAM para o usuário (esquema) ou mapeamento de usuário compartilhado no Autonomous AI Database. Por exemplo, todos os privilégios e atribuições podem ser concedidos ao esquema compartilhado e todos os usuários do IAM que mapeiam para o esquema compartilhado recebem os privilégios e as atribuições designados ao esquema compartilhado.

Você pode usar uma função global para, opcionalmente, diferenciar usuários que usam o mesmo esquema compartilhado. Por exemplo, um conjunto de usuários pode ter o mesmo esquema compartilhado e o esquema compartilhado pode ter o privilégio CREATE SESSION. Em seguida, as atribuições globais podem ser usadas para fornecer privilégios e atribuições diferenciados designados a diferentes grupos de usuários que usam o mesmo esquema compartilhado.

A concessão de atribuições adicionais a usuários do serviço IAM no Autonomous AI Database funciona mapeado as atribuições globais do Autonomous AI Database para grupos do serviço IAM.

Para mapear atribuições globais do Autonomous AI Database para grupos do serviço IAM:

  1. Faça log-in como o usuário ADMIN no banco de dados que está ativado para usar o serviço IAM (o usuário ADMIN tem os privilégios de sistema CREATE USER e ALTER USER necessários para essas etapas).

  2. Defina uma autorização de banco de dados para atribuições do Autonomous AI Database com instruções CREATE ROLE ou ALTER ROLE e inclua a cláusula IDENTIFIED GLOBALLY AS, especificando o nome de grupo do IAM.

    Use a seguinte sintaxe para mapear uma atribuição global para um grupo do serviço IAM:

     CREATE ROLE global_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';
    

    Por exemplo, para mapear um grupo do serviço IAM chamado ExporterGroup para uma atribuição global de banco de dados compartilhado chamada export_role:

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=ExporterGroup';
    

    O exemplo a seguir mostra como criar a atribuição especificando um domínio não padrão, sales_domain:

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    Todos os membros do ExporterGroup no domínio sales_domain serão autorizados com a atribuição global de banco de dados export_role quando fizerem log-in no banco de dados.

  3. Use instruções GRANT para conceder os privilégios necessários ou outras atribuições à atribuição global.

     GRANT CREATE SESSION TO export_role;
     GRANT DWROLE TO export_role;
    
  4. Se você quiser que uma atribuição de banco de dados existente seja associada a um grupo do IAM, use a instrução ALTER ROLE para alterar a atribuição de banco de dados existente para mapear a atribuição para um grupo do IAM. Use a seguinte sintaxe para alterar uma atribuição de banco de dados existente para mapeá-la para um grupo do IAM:

     ALTER ROLE existing_database_role
        IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';
    

Se você quiser adicionar mais mapeamentos de atribuição global para outros grupos do serviço IAM, siga estas etapas para cada grupo do IAM.

Criar Senha do Banco de Dados do Serviço IAM para Usuários do IAM

Para adicionar um usuário do serviço IAM e permitir que o usuário do serviço IAM faça log-in no Autonomous AI Database, fornecendo um usuário e uma senha, crie uma senha do banco de dados do serviço IAM.

Consulte Como Trabalhar com Senhas do Banco de Dados do Serviço IAM para obter mais informações.

Estabelecer Conexão com o Autonomous AI Database com Autenticação do IAM (Identity and Access Management)

Depois que o usuário ADMIN do banco de dados mapeia usuários globais e atribuições globais para os usuários do IAM e grupos do IAM, os usuários fazem log-in na instância do Autonomous AI Database usando suas credenciais do Oracle Cloud Infrastructure IAM ou acessam o banco de dados por meio de um token de banco de dados do Oracle Cloud Infrastructure IAM.

Você ainda pode fazer log-in no Autonomous AI Database usando seu nome de usuário e senha de conta do banco do dados local (conta do usuário do banco do não global).

Você pode usar um cliente de banco de dado para acessar uma instância do Autonomous AI Database como usuário do serviço Oracle Cloud Infrastructure IAM. Para usar um cliente com as credenciais do nome de usuário e da senha do Oracle Cloud Infrastructure IAM e um verificador da senha, o cliente do banco de Dados deve ser 12c ou posterior,

Como alternativa, você pode usar um token do banco de dados Oracle Cloud Infrastructure IAM para acessar uma instância do Autonomous AI Database com clientes suportados:

Observação: Se a sua instância do Autonomous AI Database estiver no Modo Restrito, apenas os usuários com o privilégio RESTRICTED SESSION, como ADMIN, poderão se conectar ao banco de dados.

Sobre a Conexão com um Autonomous AI Database em uma Instância de Infraestrutura Dedicada do Exadata Usando o Serviço IAM

Os usuários do IAM podem se conectar ao Autonomous AI Database na instância do Exadata Infrastructure Dedicado usando um verificador de senha de banco de dados do serviço IAM ou um token do serviço IAM.

O uso do verificador de senha do banco de dados do IAM é semelhante ao processo de autenticação de senha do Oracle Database. No entanto, em vez do verificador da senha (hash criptografado da senha) ser armazenado no Autonomous AI Database on Dedicated Exadata Infrastructure, o verificador é armazenado como parte do perfil do usuário Oracle Cloud Infrastructure (OCI) IAM.

O segundo método de conexão, o uso de um token do serviço IAM para o banco de dados, é mais moderno. O uso de acesso baseado em token é mais adequado para recursos de nuvem, como o Autonomous AI Database on Dedicated Exadata Infrastructure. O token se baseia na força que o ponto final do IAM pode impor. Isso pode ser autenticação multifator, que é mais forte do que o uso exclusivo de senhas. Outro benefício do uso de tokens é que o verificador de senha (que é considerado confidencial) nunca fica armazenado ou disponível na memória.

Conexões de Cliente que Usam um Verificador de Senha do Banco de Dados do IAM

Depois de configurar a autorização necessária para o usuário do IAM, esse usuário poderá fazer log-in usando o aplicativo cliente existente, como SQL*Plus ou SQLcl, sem configuração adicional.

O usuário do IAM informa o nome de usuário e a senha do banco de dados do IAM (não a senha da console do Oracle Cloud Infrastructure [OCI]) usando qualquer cliente de banco de dados suportado no momento. A única restrição é que a versão do cliente de banco de dados seja a do Oracle Database release 12.1.0.2 ou mais recente para usar as senhas do Oracle Database 12c. O cliente do banco de dados deve poder usar o verificador de senha 12C. O uso da criptografia do verificador 11G não é suportado com o IAM. Nenhuma configuração especial do cliente ou da ferramenta é necessária para que o usuário do IAM se conecte à instância do Autonomous AI Database on Dedicated Exadata Infrastructure.

Conexões de Cliente que Usam um Token

Para o acesso do token do Serviço IAM ao Autonomous AI Database on Dedicated Exadata Infrastructure, o aplicativo cliente ou ferramenta solicita um token de banco de Dados do Serviço IAM para o usuário do IAM.

O aplicativo cliente passará o token do banco de dados diretamente para o cliente do banco de dados por meio da API do cliente do banco de dados.

Se o aplicativo ou a ferramenta não tiverem sido atualizados para solicitar um token do IAM, o usuário do IAM poderá usar a CLI (interface de linha de comando) do Oracle Cloud Infrastructure (OCI) para solicitar e armazenar o token do banco de dados. Você pode solicitar um token de acesso (db-token) ao banco de dados usando as seguintes credenciais:

Quando os usuários do IAM fazem log-in no cliente com um log-in de barra / e o parâmetro OCI_IAM é configurado (sqlnet.ora, tnsnames.ora ou como parte de uma string de conexão), o cliente do banco de dados recupera o token do banco de dados de um arquivo. Se o usuário do IAM enviar um nome de usuário e uma senha, a conexão usará o acesso do verificador de banco de dados do IAM descrito para conexões de cliente que usam verificadores de senha de banco de dados do IAM. As instruções deste guia mostram como usar a CLI do OCI como auxiliar para o token de banco de dados. Se o aplicativo ou a ferramenta tiverem sido atualizados para trabalhar com o IAM, siga as instruções do aplicativo ou da ferramenta. Alguns casos de uso comuns incluem o seguinte: SQL*Plus no local, SQLcl no local, SQL*Plus no Cloud Shell ou aplicativos que usam wallets SEP.

Os seguintes tópicos explicam como:

Configurando uma Conexão de Cliente para o SQL*Plus que Usa uma Senha do Banco de Dados do IAM

Você pode configurar o SQL*Plus para usar uma senha do banco de dados do IAM.

Configurando uma Conexão do Cliente para o SQL*Plus que Usa um Token do Serviço IAM

Você pode configurar uma conexão de cliente para o SQL*Plus que usa um token do serviço IAM.

  1. Certifique-se de ter uma conta de usuário do serviço IAM.

  2. Verifique com um administrador do serviço IAM e um administrador do serviço Oracle Database para garantir que você tenha uma política que permita acessar o banco de dados no compartimento ou sua tenancy e que você esteja mapeado para um esquema global no banco de dados.

  3. Se seu aplicativo ou ferramenta não oferecer suporte à integração direta do serviço IAM, faça download, instale e configure a CLI do OCI. (Consulte Início Rápido da Interface de Linha de Comando do OCI.) Configure uma chave de API como parte da configuração da CLI do OCI e selecione valores padrão.

    1. Configure o acesso de chave da API para o usuário do serviço IAM.

    2. Recupere o db-token. Por exemplo:

      • Recuperando um db-token com uma API-key usando a interface da linha de comando do OCI (Oracle Cloud Infrastructure):

        oci iam db-token get
        
      • Recuperando um db-token com um token de segurança (ou sessão):

        oci iam db-token get --auth security_token
        

        Se o token de segurança tiver expirado, será exibida uma janela para que o usuário possa fazer log-in no OCI novamente. Isso gerará o token de segurança para o usuário. A CLI do OCI usará esse token atualizado para obter o db-token.

      • Recuperando um db-token com um token de delegação: Quando você faz log-in no cloud shell, o token de delegação é gerado automaticamente e colocado no diretório /etc. Para obter esse token, execute o seguinte comando no cloud shell:

        oci iam db-token get
        
      • Recuperando um token de instância usando a interface de linha de comando do OCI:

        oci iam db-token get --auth instance_principal
        
    3. O cliente do banco de dados também pode ser configurado para recuperar um token do banco de dados usando o nome do usuário e senha de banco de dados do serviço IAM do IAM.

      Consulte Conexões do Cliente que Usam um Token Solicitado por um Nome do Usuário e Senha do Banco de Dados do Serviço IAM para obter mais informações.

    Consulte Chave e OCIDs Necessários para obter mais informações.

  4. Certifique-se de estar usando as atualizações de versão mais recentes para o cliente Oracle Database versões 19c e 21c.

    Essa configuração só funciona com o cliente Oracle Database versão 19c ou 21c.

  5. Siga o processo existente para fazer download da wallet no Autonomous AI Database e, em seguida, siga as instruções para configurá-la para uso no SQL*Plus.

    1. Confirme se a correspondência de DN está ativada procurando SSL_SERVER_DN_MATCH=ON no arquivo sqlnet.ora.

    2. Configure o cliente de banco de dados para usar o token do serviço IAM adicionando TOKEN_AUTH=OCI_TOKEN ao arquivo sqlnet.ora. Como você usará os locais padrão para o arquivo de token do banco de dados, não será necessário incluir o local do token.

    Os valores TOKEN_AUTH e TOKEN_LOCATION nas strings de conexão tnsnames.ora têm precedência sobre as definições sqlnet.ora dessa conexão. Por exemplo, para a string de conexão, supondo que o token esteja no local padrão (~/.oci/db-token para Linux):

     (description=
       (retry_count=20)(retry_delay=3)
       (address=(protocol=tcps)(port=1522)
       (host=example.us-phoenix-1.oraclecloud.com))
       (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
       (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
          OU=Oracle BMCS US, O=Example Corporation,
          L=Redwood City, ST=California, C=US")
       (TOKEN_AUTH=OCI_TOKEN)))
    

Depois que a sequência de conexão for atualizada com o parâmetro TOKEN_AUTH, o usuário do IAM poderá fazer log-on na instância do Autonomous AI Database executando o comando a seguir para iniciar o SQL\*Plus. Você pode incluir o próprio descritor de conexão ou usar o nome do descritor do arquivo tnsnames.ora.

connect /@exampledb_high

Ou

connect /@(description=
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
     OU=Oracle BMCS US, O=Example Corporation,
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

O cliente de banco de dados já está configurado para obter um db-token porque o parâmetro TOKEN_AUTH já foi definido, por meio do arquivo sqlnet.ora ou em uma string de conexão. O cliente de banco de dados obtém a db-token e a assina usando a chave privada e, em seguida, envia o token ao Autonomous AI Database. Se um nome de usuário do IAM e uma senha de banco de dados do IAM forem especificados, em vez de uma barra /, o cliente de banco de dados estabelecerá conexão usando a senha, em vez de usar db-token.

Usar o Controlador de Instâncias para Acessar o Autonomous AI Database com Autenticação do Identity and Access Management (IAM)

Depois que o usuário ADMIN ativa o Oracle Cloud Infrastructure IAM no Autonomous AI Database, um aplicativo pode acessar o banco do dados por meio de um token do Oracle Cloud Infrastructure IAM usando um controlador de instância.

Consulte Acessando a API do Oracle Cloud Infrastructure com Controladores de Instâncias para obter mais informações.

Configurar Autenticação de Proxy

A autenticação de proxy permite que um usuário do IAM faça proxy em um esquema para tarefas como manutenção de aplicativos.

A autenticação de proxy geralmente é usada para autenticar o usuário real e, em seguida, autorizá-lo a usar um esquema com os privilégios e atribuições do esquema para gerenciar um aplicativo. Alternativas como o compartilhamento da senha do esquema do aplicativo são consideradas perigosas e não podem verificar qual usuário real executou uma ação.

Um caso de uso pode estar em um ambiente no qual um usuário do IAM designado que é um administrador de banco de dados de aplicativo pode se autenticar usando suas credenciais e, em seguida, fazer proxy para um usuário de esquema (por exemplo, hrapp). Essa autenticação permite que o administrador do IAM use os privilégios e atribuições hrapp como usuário hrapp para executar a manutenção do aplicativo e ainda use suas credenciais do IAM para autenticação. Um administrador de banco de dados de aplicativo pode acessar o banco de dados e, em seguida, fazer proxy em um esquema de aplicativo para gerenciar esse esquema.

Você pode configurar a autenticação de proxy para os métodos de autenticação de senha e de token.

Configurar Autenticação de Proxy para o Usuário do IAM

Para configurar a autenticação de proxy para um usuário do IAM, o usuário do IAM já deve ter um mapeamento para um esquema global (mapeamento exclusivo ou compartilhado). Um esquema separado para o usuário do IAM para proxy também deve estar disponível.

Depois de garantir que você tenha esse tipo de usuário, altere o usuário do banco de dados para permitir que o usuário do IAM faça proxy dele.

  1. Faça log-in na instância do Autonomous AI Database como um usuário que tenha os privilégios de sistema ALTER USER.

  2. Conceda permissão para que o usuário do IAM faça proxy para a conta de usuário do banco de dados local. Um usuário do IAM não pode ser referenciado no comando para que o proxy seja criado entre o usuário global do banco de dados (mapeado para o usuário do IAM) e o usuário do banco de dados de destino. No exemplo a seguir, hrapp é o esquema para o proxy e peterfitch_schema é o usuário global do banco de dados mapeado exclusivamente para o usuário peterfitch.

     ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
    

Nesse estágio, o usuário do IAM pode fazer log-in na instância do banco de dados usando o proxy. Por exemplo:

Para estabelecer conexão usando um verificador de senha:

CONNECT peterfitch[hrapp]@connect_string
Enter password: password

Para estabelecer conexão usando um token:

CONNECT [hrapp]/@connect_string

Validando a Autenticação de Proxy do Usuário do IAM

Você pode validar a configuração de proxy do usuário do IAM para métodos de autenticação de senha e token. 1. Faça log-in na instância do Autonomous AI Database como um usuário que tenha os privilégios do sistema CREATE USER e ALTER USER.

  1. Conecte-se como usuário do IAM e execute os comandos SHOW USER e SELECT SYS_CONTEXT. Por exemplo, suponha que você queira verificar a autenticação de proxy do usuário do IAM peterfitch quando ele fizer proxy para o usuário do banco de dados hrapp. Você precisará estabelecer conexão com o banco de dados usando os diferentes tipos de métodos de autenticação mostrados aqui, mas a saída dos comandos que você executar será a mesma para todos os tipos.

    • Para autenticação de senha:
CONNECT peterfitch[hrapp]/password!@connect_string
SHOW USER;

--The output should be USER is "HRAPP"
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;

--The output should be "PASSWORD_GLOBAL"
SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;

--The output should be "PETERFITCH_SCHEMA"
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;

--The output should be "HRAPP"

Usar um Link de Banco de Dados com Usuários Autenticados do Serviço IAM

Você pode usar um link para estabelecer conexão de uma instância do Autonomous AI Database com outra como um usuário Oracle Cloud Infrastructure IAM.

Você pode usar o link de banco de dados de usuário conectado ou fixo para estabelecer conexão com um Autonomous AI Database como usuário do Oracle Cloud Infrastructure IAM.

Observação: O link do banco de dados de usuário atual não é suportado para estabelecer conexão com um Autonomous AI Database como um usuário Oracle Cloud Infrastructure IAM.

Desativar a Autenticação do Identity and Access Management (IAM) no Autonomous AI Database

Descreve as etapas para desativar a autenticação externa de IAM para o Banco de Dados Autônomo de IA.

Você pode desativar os acessos do usuário do IAM na sua instância do Autonomous AI Database usando o comando ALTER SYSTEM, conforme mostrado abaixo:

ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

Se você também quiser atualizar do recurso o acesso ao IAM, ou seja, Autonomous Container Database ou Autonomous AI Database, talvez seja necessário remover ou modificar o grupo do IAM e as políticas configuradas para permitir acesso ao IAM por esses recursos.

Observações para Usar Ferramentas do Autonomous AI Database com Autenticação do IAM (Identity and Access Management)

Fornece observações sobre o uso de ferramentas do Autonomous AI Database com autenticação do serviço IAM ativada.