Conectar Usuários do IAM (Identity and Access Management) com o Oracle Exadata Database Service on Dedicated Infrastructure

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

Autenticação do OCI (Oracle Cloud Infrastructure) IAM (Identity and Access Management) com o Oracle Database

Aprenda a ativar uma instância do Oracle Database no Oracle Exadata Database Service on Dedicated Infrastructure para permitir o acesso do usuário com uma senha de banco de dados do Oracle Cloud Infrastructure IAM (usando um verificador de senha) ou tokens de SSO.

Sobre a Autenticação do OCI (Oracle Cloud Infrastructure) IAM (Identity and Access Management) com o Oracle Database

Os usuários do serviço IAM podem se conectar com a instância do banco de dados usando um verificador de senha de banco de dados do IAM ou um token do IAM.

O uso do verificador de senha de banco de dados do serviço IAM é semelhante ao processo de autenticação por senha de banco de dados. No entanto, em vez do verificador de senha (hash criptografado da senha) que está sendo armazenado no banco de dados, o verificador é armazenado como parte do perfil de usuário do 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 do acesso baseado em token é mais adequado para recursos de Nuvem, como Oracle Databases no Exadata Cloud 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.

Observação

O Oracle Database suporta a integração do Oracle DBaaS para o Oracle Cloud Infrastructure (OCI) IAM com domínios de identidades, bem como o IAM legado, que não inclui domínios de identidades. Usuários e grupos de domínios padrão e não padrão são suportados ao usar o serviço IAM com Domínios de Identidades.

O suporte para domínios personalizados não padrão só está disponível com o Oracle Database Release 19c, Versão 19.21 e superior (mas não com o Oracle Database Release 21c).

A integração do Oracle Cloud Infrastructure IAM com o Oracle Exadata Database Service on Dedicated Infrastructure é compatível com o seguinte:

  • Autenticação com um Verificador de Senha de Banco de Dados do OCI (Oracle Cloud Infrastructure) IAM (Identity and Access Management)
  • Autenticação Baseada em Token de SSO do OCI (Oracle Cloud Infrastructure) IAM (Identity and Access Management)

Para obter detalhes completos sobre a arquitetura para usar usuários do IAM no Oracle Exadata Database Service on Dedicated Infrastructure, consulte Autenticando e Autorizando Usuários do IAM para Bancos de Dados Oracle DBaaS no Oracle Database 19c Security Guide e no Oracle Database 23ai Security Guide.

Autenticação com um Verificador de Senha de Banco de Dados do OCI (Oracle Cloud Infrastructure) IAM (Identity and Access Management)

Você pode ativar uma instância do Oracle Database para permitir o acesso do usuário com uma senha de banco de dados do Oracle Cloud Infrastructure IAM (usando um verificador de senha).

Observação

Qualquer cliente de banco de dados com suporte do 12c ou superior pode ser usado para acesso por senha do banco de dados do IAM ao Oracle Database.

Uma senha de banco de dados do Oracle Cloud Infrastructure IAM permite que um usuário do IAM faça log-in em uma instância do Oracle Database porque os usuários do Oracle Database geralmente fazem log-in com um nome de usuário e uma 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 IAM com um verificador de senha, você pode fazer login no Oracle Database com qualquer cliente de banco de dados suportado.

Para acesso ao banco de dados do verificador de senha, você cria os mapeamentos para usuários do IAM e aplicativos do OCI para a instância do Oracle Database. As próprias contas de usuário do IAM são gerenciadas no IAM. As contas de usuário e os grupos de usuários podem estar no domínio padrão ou em um domínio personalizado não padrão.

Para obter mais informações sobre gerenciamento de senha de banco de dados do IAM, consulte Gerenciando Credenciais do Usuário.

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

Para acesso por token do IAM ao banco de dados, o aplicativo cliente ou a 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 tiver sido atualizado para solicitar um token do IAM, o usuário do IAM poderá usar a CLI do 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:

  • Tokens de segurança (com autenticação do IAM), tokens de delegação (no cloud shell do OCI) e API-keys, que são credenciais que representam o usuário do IAM para ativar a autenticação
  • Tokens de controlador de instâncias, que permitem que as instâncias sejam atores (ou controladores) autorizados para executar ações nos recursos do OCI após a autenticação
  • Token de controlador de recursos, que é uma credencial que permite que o aplicativo se autentique em outros serviços do OCI
  • Usando um nome de usuário do IAM e uma senha de banco de dados do IAM (só pode ser solicitada pelo cliente do banco de dados)

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. Se o usuário informar o parâmetro PASSWORD_AUTH=OCI_TOKEN, o driver do banco de dados usará o nome de usuário e a senha para estabelecer conexão diretamente com o IAM e solicitar um token do banco de dados. 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.

Há várias formas pelas quais um cliente de banco de dados pode obter um token de banco de dados do IAM:
  • Um aplicativo ou ferramenta cliente pode solicitar o token de banco de dados do IAM para o usuário e pode passar o token de banco de dados por meio da API do cliente. O uso da API para enviar o token substitui outras definições no cliente de banco de dados. O uso de tokens do IAM requer o cliente 19c mais recente do Oracle Database (pelo menos 19.16). Alguns clientes anteriores (19c e 21c) fornecem um conjunto limitado de recursos para acesso baseado em token. O cliente 21c do Oracle Database não é totalmente compatível com o recurso de acesso baseado em token do serviço IAM:
    • JDBC-thin em todas as plataformas
      • Consulte Support for IAM Token-Based Authentication e JDBC and UCP Downloads para obter mais informações.
    • SQL*Plus e Oracle Instant Client OCI-C no Linux:

      Consulte Identity and Access Management (IAM) Token -Based Authentication para obter mais informações.

    • Oracle Data Provider for .NET (ODP.NET) Core: clientes .NET (versão mais recente do Linux ou Windows). Os componentes de software .NET estão disponíveis para download gratuito nos seguintes sites:
      • Oracle Data access Components - .Downloads do .NET
      • NuGet Gallery
      • Visual Studio Code Marketplace
  • Se o aplicativo ou a ferramenta não oferecer suporte à solicitação de um token de banco de dados do IAM por meio da API do cliente, o usuário do IAM poderá primeiro usar a CLI (interface de linha de comando) do Oracle Cloud Infrastructure para recuperar o token de banco de dados do IAM e salvá-lo em um local de arquivo. Por exemplo, para usar o SQL*Plus e outros aplicativos e ferramentas que usam esse método de conexão, primeiro obtenha o token de banco de dados usando a CLI (Interface de Linha de Comando) do Oracle Cloud Infrastructure (OCI). Para obter mais informações, consulte db-token get. Se o cliente de banco de dados estiver configurado para tokens de banco de dados do IAM, quando um usuário fizer log-in com o formato de log-in de barra, o driver do banco de dados usará o token do banco de dados do IAM que foi salvo em um local de arquivo padrão ou especificado.
  • Alguns clientes do Oracle Database 23ai também podem obter um token diretamente do OCI IAM, em vez de usar a interface de linha de comando do OCI. Revise a documentação do cliente para ver quais clientes suportam essa integração nativa do IAM.
  • Um aplicativo ou ferramenta cliente pode usar um controlador de recursos ou um controlador de instâncias do Oracle Cloud Infrastructure IAM para obter um token de banco de dados do IAM e usá-lo para se autenticar em uma instância do Oracle Database. Para obter mais informações, consulte Mapping Instance and Resource Principals.
  • Os usuários do IAM e os aplicativos OCI podem solicitar um token de banco de dados do IAM com vários métodos, incluindo o uso de uma chave de API. Consulte Configurando uma Conexão do Cliente para o SQL*Plus que Usa um Token do Serviço IAM para obter um exemplo. Consulte Authenticating and Authorizing IAM Users for Oracle DBaaS Databases para obter uma descrição de outros métodos, como o uso de um token de delegação em um cloud shell do OCI.
Observação

Se o seu banco de dados estiver em Modo Restrito, somente DBAs com o privilégio RESTRICTED SESSION poderão estabelecer conexão com o banco de dados.

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. Se o usuário informar o parâmetro PASSWORD_AUTH=OCI_TOKEN, o driver do banco de dados utilizará o nome de usuário e a senha para estabelecer conexão diretamente com o IAM e solicitará um token do banco de dados.

Pré-requisitos para a Autenticação do OCI (Oracle Cloud Infrastructure) IAM (Identity and Access Management) no Oracle Database

Verifique os pré-requisitos para a autenticação do IAM (Identity and Access Management) em um Oracle Database.

Pré-requisitos para Autenticação do IAM no Oracle Database

Antes de usar a autenticação do IAM em bancos de dados no Exadata Cloud Infrastructure, você deve usar o serviço Networking para adicionar um gateway de serviço, uma regra de roteamento e uma regra de segurança de saída à VCN (Virtual Cloud Network) e às sub-redes nas quais seus recursos de banco de dados residem.

  1. Crie um gateway de serviço na VCN em que os recursos do banco de dados residem seguindo as instruções em Tarefa 1: Criar o gateway de serviço na documentação do OCI.
  2. Após a criação do gateway de serviço, adicione uma regra de roteamento e uma regra de segurança de saída a cada sub-rede (na VCN) na qual os recursos do banco de dados residem para que esses recursos possam usar o gateway para usar a autenticação do IAM:
    1. Vá para a página Detalhes da Sub-rede da sub-rede.
    2. Na guia Informações da Sub-rede, clique no nome da Tabela de Roteamento da sub-rede para exibir sua respectiva página Detalhes da Tabela de Roteamento.
    3. Na tabela de Regras de Roteamento existentes, verifique se já existe uma regra com as seguintes características:
      • Destino: Todos os Serviços IAD no Oracle Services Network
      • Tipo de Destino: Gateway de Serviço
      • Destino: O nome do gateway de serviço que você acabou de criar na VCN

      Se essa regra não existir, clique em Adicionar Regras de Roteamento e adicione uma regra de roteamento com essas características.

    4. Retorne à página Detalhes da Sub-rede da sub-rede.
    5. Na tabela Listas de Segurança da sub-rede, clique no nome da lista de segurança da sub-rede para exibir a página Detalhes da Lista de Segurança.
    6. No menu lateral, em Recursos, clique em Regras de Saída.
    7. Na tabela de Regras de Saída existentes, verifique se já existe uma regra com as seguintes características:
      • Sem Monitoramento de Estado: Não
      • Destino: Todos os Serviços IAD no Oracle Services Network
      • Protocolo IP: TCP
      • Intervalo de Portas de Origem: Tudo
      • Intervalo de Portas de Destino: 443
    8. Se essa regra não existir, clique em Adicionar Regras de Saída e adicione uma regra de saída com essas características.

Desativar Esquema de Autenticação Externa

Verifique os pré-requisitos para ativar o acesso do usuário do IAM ao Oracle Database.

Se o banco de dados estiver ativado para outro esquema de autenticação externo, verifique se você deseja usar o serviço IAM na instância do Oracle Database. Só pode haver um esquema de autenticação externo ativado em determinado momento.

Se você quiser usar o IAM e outro esquema de autenticação externo estiver ativado, primeiro desative o outro esquema de autenticação externo.

Configurar TLS para Usar Tokens do IAM

Ao enviar tokens do IAM do cliente de banco de dados para o servidor de banco de dados, estabeleça uma conexão TLS. A wallet de TLS com o certificado de banco de dados para a instância de serviço ExaDB-D deve ser armazenada no local WALLET_ROOT. Crie um diretório tls para que se pareça com: WALLET_ROOT/<PDB GUID>/tls.

Ao configurar o TLS entre o cliente de banco de dados e o servidor, há várias opções a serem consideradas.

  • Usando um certificado de servidor de banco de dados autoassinado em vez de um certificado de servidor de banco de dados assinado por uma autoridade de certificação comumente conhecida
  • TLS (TLS) unidirecional versus TLS mútuo ou bidirecional (mTLS)
  • Cliente com ou sem uma wallet

Certificado Autoassinado

O uso de um certificado autoassinado é uma prática comum para recursos de TI de uso interno, uma vez que você mesmo pode criá-los e é gratuito. O recurso (no nosso caso, o servidor de banco de dados) terá um certificado autoassinado para se autenticar no cliente de banco de dados. O certificado autoassinado e o certificado raiz serão armazenados na wallet do servidor de banco de dados. Para que o cliente de banco de dados possa reconhecer o certificado do servidor de banco de dados, também será necessária uma cópia do certificado raiz no cliente. Esse certificado raiz criado automaticamente pode ser armazenado em uma wallet no cliente ou instalado no armazenamento de certificados padrão do sistema cliente (somente Windows e Linux). Quando a sessão for estabelecida, o cliente de banco de dados verificará se o certificado enviado pelo servidor de banco de dados foi assinado pelo mesmo certificado raiz.

Uma Autoridade de Certificação Reconhecida

O uso de uma autoridade de certificação raiz comumente conhecida tem algumas vantagens, visto que o certificado raiz muito provavelmente já está no armazenamento de certificados padrão do sistema cliente. Não haverá etapa extra para o cliente armazenar o certificado raiz se ele for um certificado raiz comum. A desvantagem é que isso normalmente tem um custo associado.

TLS Unidirecional

Na sessão TLS padrão, somente o servidor fornece um certificado para o cliente autenticar-se. O cliente não precisa ter um certificado de cliente separado para autenticar-se no servidor (semelhante a como as sessões HTTPS são estabelecidas). Embora o banco de dados exija uma wallet para armazenar o certificado do servidor, a única coisa que o cliente precisa ter é o certificado raiz usado para assinar o certificado do servidor.

TLS Bidirecional (também chamado de TLS Mútuo, mTLS)

No mTLS, o cliente e o servidor têm certificados de identidade que são apresentados uns aos outros. Na maioria dos casos, o mesmo certificado raiz assinará esses dois certificados para que o mesmo certificado raiz possa ser usado com o servidor e o cliente de banco de dados para autenticar o outro certificado. O mTLS às vezes é usado para autenticar o usuário, visto que a identidade do usuário é autenticada pelo servidor de banco de dados por meio do certificado. Isso não é necessário para informar tokens do IAM, mas pode ser usado ao informá-los.

Cliente com uma Wallet

Uma wallet do cliente é obrigatória ao usar mTLS para armazenar o certificado do cliente. No entanto, o certificado raiz pode ser armazenado na mesma wallet ou no armazenamento de certificados padrão do sistema.

Um Cliente sem uma Wallet

Os clientes podem ser configurados sem uma wallet ao usar TLS sob estas condições: 1) O TLS unidirecional está sendo configurado onde o cliente não tem seu próprio certificado e 2) o certificado raiz que assinou o certificado do servidor de banco de dados está no armazenamento de certificados padrão do sistema. Muito provavelmente, o certificado raiz já estaria lá se o certificado do servidor fosse assinado por uma autoridade de certificação comum. Se for um certificado autoassinado, o certificado raiz precisará ser instalado no armazenamento de certificados padrão do sistema para evitar o uso de uma wallet do cliente.

Para obter detalhes sobre como configurar o TLS entre o cliente e o servidor de banco de dados, incluindo as opções descritas acima, consulte Configurando a Autenticação de Segurança da Camada de Transporte no Guia de Segurança do Oracle Database.

Se você optar por usar certificados autoassinados e tarefas adicionais relacionadas à wallet, consulte Gerenciando Elementos de PKI (Infraestrutura de Chave Pública) no Guia de Segurança do Oracle Database.

Ativando o Banco de Dados e os Clientes para a Integração do Serviço IAM

Siga o link apropriado abaixo para configurar usuários do IAM para acessar seu banco de dados.

Para obter detalhes completos sobre a arquitetura para usar usuários do IAM no Oracle Exadata Database Service on Dedicated Infrastructure, consulte Autenticando e Autorizando Usuários do IAM para Bancos de Dados Oracle DBaaS no Oracle Database 19c Security Guide e no Oracle Database 23ai Security Guide.