Observação:

Autenticar o Oracle Database 23ai com o Microsoft Entra ID

Introdução

O Oracle Database pode ser integrado ao Microsoft Entra ID (antigo Microsoft Azure Active Directory) para permitir acesso seguro e sem senha ao banco de dados. Com essa configuração, usuários e serviços podem se conectar ao banco de dados usando suas credenciais do Microsoft Entra ID por meio do Single Sign-On (SSO).

A autenticação é tratada por meio de um token de acesso OAuth2 emitido pelo ID Entra da Microsoft. Esse token, que inclui a identidade do usuário e os detalhes de acesso, é passado para o Oracle Database. O cliente de banco de dados valida o formato e a expiração do token antes de permitir o acesso, garantindo um processo de conexão seguro e simplificado.

Por que precisamos disso?

À medida que as organizações priorizam cada vez mais a segurança, o gerenciamento do acesso a dados confidenciais torna-se fundamental. O Oracle Database, em colaboração com o Microsoft Entra ID, permite autenticação segura sem senhas, aproveitando sistemas modernos de gerenciamento de identidades para controle de acesso contínuo, escalável e robusto. Essa integração oferece suporte a uma ampla variedade de implementações Oracle, incluindo Oracle Autonomous Database, Oracle Exadata e Oracle Base Database Service, garantindo acesso consistente e seguro em diferentes ambientes.

Clientes e Ferramentas de Banco de Dados

Aplicativos e ferramentas que suportam tokens de ID do Microsoft Entra podem autenticar usuários diretamente por meio do ID do Microsoft Entra e transmitir o token de acesso do banco de dados à instância do Oracle Database por meio da API do cliente. As ferramentas de banco de dados existentes, como SQL*Plus, podem ser configuradas para usar um token do Microsoft Entra ID armazenado em um arquivo. O token pode ser recuperado usando ferramentas auxiliares como Microsoft PowerShell, Azure CLI ou bibliotecas como Microsoft Authentication Library (MSAL) e salvo em um local de arquivo especificado. Posteriormente, o SQL*Plus faz referência a esse token ao estabelecer a conexão.

Entra fluxo de autenticação do usuário usando sqlplus

Observação: Este tutorial usa um script Python aproveitando o MSAL para adquirir tokens de segurança. Para obter mais informações, consulte Visão Geral da Biblioteca de Autenticação da Microsoft (MSAL).

Este tutorial o orienta por meio da configuração da autenticação do Microsoft Entra ID para o Oracle Base Database 23ai, incluindo a configuração do TLS. Consulte a documentação específica do seu tipo de banco de dados: local, Exadata, DBaaS ou Autônomo. Observe que o TLS é pré-configurado para o Autonomous Database; portanto, você pode ignorar essa etapa.

Público-alvo

Administradores do Oracle Database e administradores do Oracle Cloud Infrastructure Identity and Access Management (OCI IAM).

Objetivos

Pré-requisitos

Tarefa 1: Configurar o TLS para o Oracle Database 23ai

Tarefa 1.1: Preparar o Sistema Operacional (SO) para Configuração do TLS

  1. Faça log-in no servidor de banco de dados e alterne para o usuário root para configurar o diretório.

    [opc@db23aigrid ~]$ sudo su -
    
    [root@db23aigrid ~]# mkdir -p /etc/ORACLE/WALLETS/oracle
    
    [root@db23aigrid ~]# cd /etc/
    
    [root@db23aigrid etc]# chown -R oracle:oinstall ORACLE/
    
  2. Obtenha o nome do host como o usuário oracle.

    [root@db23aigrid etc]# su - oracle
    
    [oracle@db23aigrid admin]$ hostname -f
    

    Amostra de saída:

    db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com
    
  3. Conectar-se ao banco de dados.

    [oracle@db23aigrid admin]$ sqlplus "/as sysdba"
    
  4. Verifique o diretório raiz da wallet.

    SQL> show parameter wallet_root;
    

    Amostra de saída:

    NAME           TYPE      VALUE
    ----------     ------    ----------------------------------------------------
    wallet_root    string    /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad
    
  5. Verifique o nome e o GUID do Banco de Dados Plugável (PDB).

    SQL> show pdbs;
    

    Amostra de saída:

    CON_ID   CON_NAME      OPEN MODE      RESTRICTED
    -----    --------      ---------      ----------
    2        PDB$SEED      READ ONLY      NO
    
    3        DB23GRIDPDB   READ WRITE     NO
    
    SQL> select guid from v$containers where name = 'DB23GRIDPDB';
    

    Amostra de saída:

    GUID
    -- -----------------------------
    32435DD0A1EC55xxx0639400000A7225
    
  6. Crie diretórios locais para wallet e certificados.

    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/rootCA
    
    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/db_wallet
    
  7. Crie o diretório TLS do banco de dados no caminho raiz da wallet usando o GUID do PDB.

    [oracle@db23aigrid ~]$ mkdir -p /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DDxxxxxx7E0639400000A7225/tls
    
  8. Atualize .bashrc com variáveis de ambiente relacionadas ao TLS.

    [oracle@db23aigrid ~]$ vi ~/.bashrc
    

    Adicione o seguinte e ajuste os valores de acordo com seu ambiente.

    export DBUSR_SYSTEM=system
    export DBUSR_PWD=QAZxswedc123##     # Wallet and Database Administrator (sys) password
    
    export ORA_TLS_DIR=/etc/ORACLE/WALLETS/oracle
    export TLS_DIR=/opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DD0A1EC55E7E0639400000A7225/tls
    export ROOT_TLS_DIR=/home/oracle/wallet_tls/certificates/rootCA
    export DB_TLS_DIR=/home/oracle/wallet_tls/certificates/db_wallet
    
    export TLS_DN=CN=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,O=oracle,L=Austin,ST=Texas,C=US
    export TLS_SAN=DNS:db23aigrid,DNS:db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,
    IPV4Address:143.47.117.99
    
  9. Aplicar as alterações

    [oracle@db23aigrid ~]$ . ~/.bashrc
    

Tarefa 1.2: Configurar Wallet e Certificado TLS

  1. Crie e configure a wallet raiz.

    1. Crie o wallet raiz.

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${ROOT_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. Exiba o conteúdo da wallet; ela deve estar vazia.

      [oracle@db23aigrid ~]$ orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    3. Crie o certificado autoassinado para a wallet da CA raiz.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -keysize 2048 -sign_alg sha256 -self_signed -validity 3652 -pwd ${DBUSR_PWD} -addext_san $TLS_SAN
      
    4. O diretório agora deve ter arquivos cwallet.sso e ewallet.p12.

      ls -l ${ROOT_TLS_DIR}
      
    5. Exiba o conteúdo da wallet; ela deve ter um usuário e um certificado confiável.

      orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    6. Exporte o certificado confiável da CA raiz para uso na criação da wallet do banco de dados.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    7. Exiba o conteúdo do arquivo rootCA.crt.

      cat ${ROOT_TLS_DIR}/rootCA.crt
      
  2. Crie e configure a wallet do servidor (banco de dados).

    1. Crie a wallet do banco de dados.

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${DB_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. Adicione o certificado raiz confiável à wallet (obtenha-o do administrador do certificado).

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -trusted_cert -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    3. Crie uma chave privada e uma solicitação de certificado na wallet.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -keysize 2048 -dn $TLS_DN -pwd ${DBUSR_PWD}-addext_san $TLS_SAN
      
    4. Exporte a solicitação de certificado para assiná-la.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${DB_TLS_DIR} -dn $TLS_DN -request ${DB_TLS_DIR}/db23gridpdb.csr -pwd ${DBUSR_PWD}
      
    5. Exiba o conteúdo da wallet. Haverá uma entrada em Certificados Solicitados.

      orapki wallet display -wallet ${DB_TLS_DIR}
      
    6. Exiba o conteúdo do arquivo CSR (certificate ssigning request, solicitação de assinatura de certificado).

      cat ${DB_TLS_DIR}/db23gridpdb.csr
      
  3. Assine e importe o certificado do servidor.

    1. Assine o CSR usando a wallet raiz autoassinada.

      [oracle@db23aigrid ~]$ orapki cert create -wallet ${ROOT_TLS_DIR} -request ${DB_TLS_DIR}/db23gridpdb.csr -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -validity 3652 -sign_alg sha256 -pwd ${DBUSR_PWD}
      
    2. Exiba o certificado do usuário do servidor assinado.

      cat ${DB_TLS_DIR}/db23gridpdb-signed.crt
      
    3. Importe o certificado de usuário do servidor de banco de dados assinado para a wallet do banco de dados.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -user_cert -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -pwd ${DBUSR_PWD}
      
    4. Exiba o conteúdo da wallet. Certifique-se de que o certificado do usuário do servidor de banco de dados agora seja exibido em Certificados do Usuário. A wallet que você usará para o servidor de banco de dados e o listener agora está pronta para ser implantada para uso.

      orapki wallet display -wallet ${DB_TLS_DIR}
      
  4. Implante arquivos de wallet.

    1. Copie os arquivos da wallet do servidor de banco de dados.

      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${ORA_TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${ORA_TLS_DIR}
      
    2. Exporte o certificado.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
  5. Confie no sistema da CA raiz como o usuário root.

    1. Execute o comando [root@db23ailvm etc]# cp -v /home/oracle/wallet_tls/certificates/rootCA/rootCA.crt /etc/pki/catrust/source/anchors/.

    2. Execute o comando [root@db23ailvm etc]# update-ca-trust extract.

    3. Defina as permissões de arquivo apropriadas.

      cd /etc/ORACLE/WALLETS/
      
      chmod -R 755 oracle/
      

Tarefa 1.3: Configurar o Oracle para TLS Communication

  1. Edite sqlnet.ora para TLS unidirecional e anexe as linhas a seguir.

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi sqlnet.ora
    
    SSL_CLIENT_AUTHENTICATION = FALSE
    
  2. Edite tnsnames.ora e certifique-se de que as entradas de TCP e TCPS sejam adicionadas para o banco de dados do PDB.

    Ajuste os valores de acordo com seu ambiente:

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi tnsnames.ora
    
    DB23GRIDPDB=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=db23aigrid)(PORT=1521)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
    DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid)(PORT=1522)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    

Tarefa 1.4: Configurar Listener com TLS

Tarefa 1.5: Validar Conectividade de TLS

  1. Teste o TCP (não TLS).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcp
    
  2. Testar o TCPS (TLS ativado)

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcps
    

Tarefa 1.6: Configurar Host do Cliente para TLS

Observação: Pré-requisitos para esta tarefa.

Siga as etapas abaixo para configurar o host do cliente:

  1. Copie os arquivos de certificado e wallet do servidor de banco de dados. Você pode usar qualquer ferramenta de transferência de arquivos preferencial para mover esses arquivos do servidor de banco de dados para o cliente.

    cd /home/oracle/wallet_tls/certificates/
    
    tar -cvf rootCA.tar rootCA
    
    chmod 755 rootCA.tar
    
    cp rootCA.tar /tmp/
    
  2. Definir diretórios de cliente.

    [opc@bastion-server8-8 ~]$ sudo su - oracle
    
    [oracle@bastion-server8-8 ~]$ mkdir wallet_db23aigrid_tls
    
    [oracle@bastion-server8-8 ~]$ mkdir -p network/admin
    
    [oracle@bastion-server8-8 ~]$ export TNS_ADMIN=/home/oracle/network/admin
    
  3. Transfira os arquivos de certificado e wallet do servidor de banco de dados para a instância do cliente.

    [oracle@bastion-server8-8 ~]$ cp rootCA.tar wallet_db23aigrid_tls /
    
    [oracle@bastion-server8-8 ~]$ cd wallet_db23aigrid_tls /
    
    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ cp /tmp/rootCA.tar
    
  4. Extrair arquivos de certificado.

    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ tar -xvf rootCA.tar
    
  5. Configure tnsnames.ora.

    [oracle@bastion-server8-8 ~]$ cd ~/network/admin
    
    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi tnsnames.ora
    
       DB23GRIDPDB=
       (DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=143.47.117.99)(PORT=1521)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
       DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)(PORT=
       1522)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))
       (SECURITY = (SSL_SERVER_DN_MATCH=TRUE)))
    
  6. Configure sqlnet.ora.

    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi sqlnet.ora
    
       SSL_CLIENT_AUTHENTICATION = FALSE
       WALLET_LOCATION =
       (SOURCE =(METHOD = FILE)
       (METHOD_DATA =(DIRECTORY =/home/oracle/wallet_db23aigrid_tls/rootCA)))
    

Tarefa 1.7: Testar a Conexão da Instância do Cliente

  1. Teste o TCP (não TLS).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcp
    
  2. Teste o TCPS (TLS ativado).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcps
    

Tarefa 2: Configurar o Microsoft Azure e a Integração de Banco de Dados

Tarefa 2.1: Registrar Servidor de Banco de Dados no Microsoft Azure

  1. Faça log-in no portal do Microsoft Azure como administrador que tem privilégios do Microsoft Entra ID para registrar aplicativos.

  2. Na página Central de administração do diretório Ativo do Azure, selecione Microsoft Entra ID.

  3. Clique em Registros do aplicativo e em Novo registro.

  4. Digite as seguintes informações.

    • Nome: Digite BaseDB-Server.

    • Quem pode usar este aplicativo ou acessar esta API?: Selecione Contas somente neste diretório organizacional.

  5. Clique em Registrar.

  6. Em Aplicativo Registrado, clique em Expor uma API.

  7. Clique em Adicionar ao lado de URI do ID do Aplicativo e Salvar. Deixe os outros valores como padrão.

  8. Clique em Adicionar um escopo e especifique as informações a seguir.

    • Nome do escopo: Digite session:scope:connect.

    • Quem pode consentir?: Digite Admins e usuários.

    • Nome para exibição do consentimento do administrador: Selecione Estabelecer conexão com o banco de dados.

    • Descrição do consentimento do administrador: Selecione Estabelecer conexão com o banco de dados.

    • Nome para exibição do consentimento do usuário: Selecione Estabelecer conexão com o banco de dados.

    • Descrição do consentimento do usuário: Selecione Estabelecer conexão com o banco de dados.

    • Estado: Selecione Ativado.

    Clique em Adicionar escopo. Uma vez adicionado, certifique-se de copiar o valor do Escopo.

    Expor uma API

  9. Em Configuração de token, adicione Claim como upn com Token type como Access.

    Observação: Isso é necessário como parte da ativação do token v2 do Microsoft Entra ID. Para obter mais informações sobre tokens v2, consulte Ativando Tokens de Acesso do Microsoft Entra ID v2.

    Talvez você também precise alterar o manifesto do aplicativo no Microsoft Entra ID para obter um token v2.

    Pedido de indenização complementar

  10. Em Atribuições de aplicativo, adicione as seguintes atribuições de aplicativo.

    Adicionar atribuições do aplicativo

  11. Em Visão Geral, copie URI do ID do Aplicativo, ID do Diretório (tenant) e ID do Aplicativo (cliente).

  12. Navegue até Home, Aplicativos empresariais, BaseDB-Server e clique em Adicionar usuário/grupo para designar usuários.

  13. Em Usuários, selecione seu usuário. Ao gerar o token de acesso, esse usuário designado será usado para sign-on único.

  14. Em Selecionar uma atribuição, selecione pdb.users, clique em Selecionar e Designar.

  15. Repita as etapas 13 e 14 para o mesmo usuário e designe dba.role.

Tarefa 2.2: Registrar Cliente de Banco de Dados no Microsoft Azure

  1. Registre o aplicativo cliente de banco de dados com as informações a seguir.

    • Nome: Digite BaseDB-Client.

    • Tipos de Conta Suportados: Selecione Contas somente neste diretório organizacional.

    • URI de Redirecionamento: Digite Cliente/nativo público - <http://localhost>.

  2. Em Gerenciar, clique em Permissões de API e Adicionar uma permissão. Selecione APIs que minha organização usa, BaseDB-Server, Permissões delegadas, Permissão como session:scope:connect e clique em Adicionar permissões.

  3. Em Visão Geral, copie URI do ID do Aplicativo e ID do Diretório (tenant).

Tarefa 2.3: Configurar Servidor de Banco de Dados para o Microsoft Azure

Execute as consultas a seguir para configurar o Microsoft Azure AD como provedor de identidades e para criar usuários e atribuições globais de banco de dados.

  1. Verifique o provedor de identidades atual no banco de dados PDB.

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  2. Defina o Microsoft Azure como o provedor de identidades.

    ALTER SYSTEM SET IDENTITY_PROVIDER_TYPE=AZURE_AD SCOPE=BOTH;
    
  3. Valide o provedor de identidades atualizado.

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  4. Defina a configuração do provedor de identidades. Substitua application_id_uri, tenant_id e app_id por valores copiados na Tarefa 2.1.11.

    ALTER SYSTEM SET IDENTITY_PROVIDER_CONFIG =
    '{
       "application_id_uri": "api://b7ae5060-667c-47b7-83f8-71283df2a2f6" ,
       "tenant_id": "ef2b4271-9238-4dcd-8c56-d3e915e37c6f",
       "app_id": "b7ae5060-667c-47b7-83f8-71283df2a2f6"
    }' SCOPE=BOTH;
    
  5. Criar usuários globais e atribuição no banco de dados.

    CREATE USER allusers IDENTIFIED GLOBALLY AS 'AZURE_ROLE=pdb.users';
    CREATE USER hrapp IDENTIFIED GLOBALLY AS 'AZURE_ROLE=hr.app';
    CREATE ROLE dba_azure IDENTIFIED GLOBALLY AS 'AZURE_ROLE=dba.role';
    
  6. Conceda privilégios aos usuários e atribuições.

    GRANT CREATE SESSION TO allusers;
    GRANT CREATE SESSION TO hrapp;
    GRANT pdb_dba TO dba_azure;
    

Tarefa 2.4: Configurar o Utilitário Auxiliar para Gerar o Token de Acesso do Microsoft Azure

Nesta tarefa, faremos uso de um utilitário Python para gerar um token de acesso que seria salvo em um arquivo e, posteriormente, referido pelo SQL*Plus. Este utilitário requer a execução do módulo MSAL.

  1. Salve o utilitário Python aqui: Get-Token.py.

  2. No código Python a seguir, substitua o valor de scope pelo valor copiado na Tarefa 2.1.8. Da mesma forma, atualize os valores de client_id e tenant_id com os valores da Tarefa 2.2.3.

  3. Execute o código Python usando o comando a seguir.

    python ./get-token.py
    
  4. Se tudo estiver configurado corretamente, isso deverá acionar um redirecionamento do navegador para o portal do Microsoft Azure para autenticação do usuário. Na autenticação, um arquivo de token será gerado no diretório em que o comando Python foi executado, que contém o token de acesso. O Token de acesso e o Token de atualização também serão impressos na janela do terminal.

  5. (Opcional), Você pode validar o token gerado navegando aqui: jwt.io e colando a string de token no campo Codificado. O campo Decodificado exibe informações sobre a string de token.

Tarefa 2.5: Fazer log-in usando SQL*PLUS

  1. Teste o log-in do token do Microsoft Azure usando SQL*PLUS.

    sqlplus /nolog
    
    conn /@(description= (retry_count=20) (retry_delay=3) (address= (protocol=tcps) (port=1522) (host=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)) (connect_data=(service_name=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))(security=(SSL_SERVER_DN_MATCH=TRUE)(TOKEN_AUTH=OAUTH)(TOKEN_LOCATION=/home/oracle)))
    
  2. Verifique o usuário conectado.

    Observação: Depois de fazer log-in, você poderá executar as consultas a seguir para recuperar informações específicas da sessão do usuário.

    • A variável CURRENT_USER retorna o usuário atual que está ativo.
    • ALLUSERS é o usuário do esquema compartilhado que foi designado por meio das atribuições do aplicativo Microsoft Entra ID.
    • AUTHENTICATED_IDENTITY representa o usuário autenticado do Microsoft Entra ID.
    • ENTERPRISE_IDENTITY retorna o GUID do usuário autenticado do Microsoft Entra ID.
    • SESSION_ROLES retorna a lista combinada de atribuições concedidas localmente e concedidas por meio de mapeamentos globais por meio de atribuições do aplicativo Microsoft Entra ID.
    1. Execute a consulta a seguir para verificar o usuário atual.

      SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
      

      Saída:

      SYS_CONTEXT('USERENV','CURRENT_USER')
      
      
      ALLUSERS
      
    2. Execute a consulta a seguir para verificar o usuário autenticado.

      SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
      

      Saída:

      SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY')
      
      
      <anujtrip.ai@gmail.com>
      
    3. Execute a consulta a seguir para verificar o GUID do usuário autenticado.

      SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
      

      Saída:

      SYS_CONTEXT('USERENV','ENTERPRISE_IDENTITY')
      
      
      7eb35b90-dcxxx5-bc0b-48789368e9cf
      
    4. Execute a consulta a seguir para verificar as atribuições do aplicativo.

      SELECT * FROM SESSION_ROLES;
      

      Saída:

      ROLE
      
      DBA_AZURE
      
      PDB_DBA
      
      CONNECT
      

Próximas Etapas

Com a autenticação baseada em ID do Microsoft Entra implementada com sucesso, você pode alinhar funções de usuário e políticas de acesso por meio de governança de identidade centralizada. Aproveitando mapeamentos globais para usuários e atribuições de esquema compartilhado, você pode agilizar o controle de acesso e reduzir a complexidade administrativa. Além disso, é essencial monitorar as sessões do usuário e os padrões de acesso para melhorar a segurança e garantir a conformidade com as políticas organizacionais. Você também deve considerar estender essa integração a outros bancos de dados ou aplicativos para manter um gerenciamento de identidade consistente em toda a empresa.

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.