Configurar Autenticação de Proxy do IAM

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.

Sobre como Configurar a Autenticação de Proxy do IAM

Os usuários do IAM podem estabelecer conexão com o Oracle DBaaS usando autenticação de proxy.

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 a 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 Database como um usuário que tenha 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; por isso, o proxy deve ser 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 de banco de dados para 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

Validar 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 Database como um usuário que tenha os privilégios de sistema CREATE USER e ALTER USER.
  2. 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. Execute as consultas a seguir depois de fazer proxy para o banco de dados usando um usuário do IAM. Dependendo de como você autentica e acessa o banco de dados, você obterá valores diferentes para essas consultas.
    • Para autenticação de senha, supondo que o usuário do IAM esteja no domínio padrão:
      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_PROXY"
      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"
    • Para autenticação de token, para um usuário que está em um domínio não padrão, sales_domain:
      CONNECT [hrapp]/@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP"
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "TOKEN_GLOBAL_PROXY"
      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"