Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Integrar o Oracle Autonomous Database ao Microsoft Entra ID
Introdução
O Oracle Autonomous Database pode ser integrado ao Microsoft Entra ID (ME-ID - anteriormente conhecido como Azure Active Directory (Azure AD)). Os usuários e aplicativos ME-ID podem fazer log-in com credenciais ME-ID Single Sign On (SSO) para obter um token de acesso ME-ID OAuth2 e acessar o banco de dados.
Isso é feito com um token de acesso OAuth2 ME-ID que o usuário ou o aplicativo solicita primeiro do ME-ID. Esse token de acesso OAuth2 contém as informações de identidade do usuário e acesso ao banco de dados e é enviado ao banco de dados.
Público-alvo
Profissionais e Administradores do IAM.
Objetivos
- Configure o Autonomous Database para usar o token de acesso OAuth2 do Microsoft Entra ID e permitir que os usuários acessem um Autonomous Database com credenciais SSO ME-ID.
Pré-requisitos
-
Integrando o Oracle Autonomous Database ao Microsoft Entra ID
-
Autonomous Database provisionado no OCI.
-
Tenancy de Domínios de Identidade do OCI IAM com privilégio de Administrador.
-
Qualquer ferramenta do Oracle Database para testar a conexão do Autonomous Database, consulte Estabelecer Conexão com o Autonomous Database Usando Ferramentas do Oracle Database. Neste tutorial, estamos usando a Interface de Linha de Comando do SQL*Plus no Sistema Windows Nova Instalação do Oracle Client.
-
Uma conta existente do Microsoft Azure com privilégio de Administrador.
Tarefa 1: Registrar o Oracle Autonomous Database no Registro do Aplicativo Microsoft Azure
-
Acesse o portal do Microsoft Azure como pelo menos um Administrador de Aplicativos em Nuvem.
-
Navegue até Home, Azure Active Directory, Registros de Aplicativos e Registre um aplicativo. Informe Nome como
ADB-DB
e clique em Registrar. O aplicativo foi criado. -
Clique em URI do ID do Aplicativo: Adicionar, Editar o URI do ID do Aplicativo e substitua api: pelo nome do domínio da tenancy, conforme mencionado, e clique em Salvar.
-
URI do ID do Aplicativo:
<tenancy_domain_name>/appid
-
-
Clique em Adicionar um escopo e insira os detalhes a seguir e clique em Adicionar escopo.
-
Nome do escopo:
session:scope:connect
-
Quem pode consentir?:
Admins and users
-
Nome para exibição do consentimento do administrador:
connect to database
-
Descrição do consentimento do administrador:
connect to database
-
Nome para exibição do conteúdo do usuário:
connect to database
-
Descrição do conteúdo do usuário:
connect to database
-
Estado:
Enabled
-
-
Clique em Visão Geral, Atribuições de aplicativo, Criar atribuição de aplicativo, informe os detalhes a seguir e clique em Aplicar.
-
Nome para exibição:
pdb.users
-
Tipos de membro permitidos:
Users/Groups
-
Valor:
pdb.users
-
Descrição:
all user access
-
Deseja ativar essa atribuição de aplicativo?:
Enabled
-
-
Clique em Atribuições de aplicativo, Criar atribuição de aplicativo, informe os detalhes a seguir e clique em Aplicar.
-
Nome para exibição:
dba.role
-
Tipos de membro permitidos:
Users/Groups
-
Valor:
dba.role
-
Descrição:
dba global role
-
Deseja ativar essa atribuição de aplicativo?:
Enabled
-
-
Clique em Atribuições de aplicativo, Criar atribuição de aplicativo, informe os detalhes a seguir e clique em Aplicar
-
Nome para exibição:
hr.app
-
Tipos de membro permitidos:
Applications
-
Valor:
hr.app
-
Descrição:
application
-
Deseja ativar essa atribuição de aplicativo?:
Enabled
-
-
Navegue até Home, Aplicativos empresariais, ADB-DB, Designar Usuários e Grupos.
-
Em Adicionar Atribuição, selecione Usuários e selecione seu usuário. Ao gerar o token de acesso, esse usuário designado será usado no Single-Sign On.
-
Em Selecionar uma atribuição, selecione pdb.users.
-
Clique em Selecionar.
-
Clique em Designar.
-
-
Em Adicionar Atribuição, selecione Usuários e selecione seu usuário. Ao gerar o token de acesso, esse usuário designado será usado no Single-Sign On.
-
Em Selecionar uma atribuição, selecione dba.role.
-
Clique em Selecionar.
-
Clique em Designar.
-
Tarefa 2: Criar Registro do Aplicativo Cliente
-
Navegue até Home, Registros de aplicativos, Registre um aplicativo, informe os seguintes detalhes e clique em Registrar.
-
Nome:
ADB-Client
. -
Tipos de Conta Suportados:
Accounts in this organizational directory only
. -
URI de Redirecionamento:
Public client/native - http://localhost
.
-
-
Navegue até Permissões de API e clique em Adicionar uma permissão. Em Solicitar Permissões de API, selecione APIs que minha organização usa, ADB-DB, Permissões delegadas e permissão como
session:scope:connect
e clique em Adicionar permissões. -
Clique em Expor uma API, URI do ID do Aplicativo: Adicionar, Editar o URI do ID do Aplicativo e substitua api: pelo nome do domínio da tenancy.
Tarefa 3: Estabelecer Conexão com o Banco de Dados SQL
-
Navegue até o Oracle Autonomous Database e clique na lista drop-down Ações do banco de dados, selecione SQL e informe as consultas a seguir.
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
Observação:
identity_provider_type
está definido atualmente comoNONE
. -
Execute o Procedimento de Banco de Dados para definir o provedor de identidades como Azure AD.
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;
-
Execute a consulta SQL novamente para verificar o provedor de identidades.
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
Observação:
identity_provider_type
agora está emAzure AD
. -
Crie Usuários -
allusers
,hrapp
e Função -dba_azure
.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';
-
Conceda Criar Sessão a -
allusers
ehrapp
.GRANT CREATE SESSION TO allusers;
GRANT CREATE SESSION TO hrapp;
GRANT pdb_dba TO dba_azure;
Tarefa 4: Navegar até o Portal do Azure
-
Abra o Portal do Azure e navegue até Home, Registros de aplicativos e ADB-Client. Copie o ID do Aplicativo (cliente) e o ID do Diretório (tenant).
-
Abra o portal do Azure e navegue até Home, Registros de aplicativos e ADB-DB. Copie o Escopo.
Tarefa 5: Obter o Token de Acesso da Microsoft usando a biblioteca MSAL Python
-
Consulte o script Python para obter o Token de Acesso usando o fluxo AuthZ. Consulte Obter tokens de ID Entra da Microsoft usando a biblioteca MSAL Python.
-
Substitua
Client_id
,Tenant_id
eScope
no script obtido na Tarefa 4.
Tarefa 6: Executar o Script Python
-
Abra PowerShell. Verifique a versão do Python e a versão do
pip
.python --version
pip --version
-
Execute o script Python usando o comando a seguir. Você será redirecionado para o Portal do Microsoft Azure, onde você precisa se autenticar.
python ./get-token-for-user.py
-
Quando a autenticação estiver concluída, você será redirecionado para PowerShell e o Token de Acesso será gerado.
-
Salve o Token de Acesso em sua máquina local, forneça o nome como token e salve como tipo de arquivo
All Types
. -
Conecte-se usando a string de conexão conforme seu ambiente. Substitua o hostname e o access-token-path de acordo com o
TNS.ora
na wallet.conn /@(description= (retry_count-20) (retry_delay=3) (address= (protocol=tcps) (port=1522) (host-adb. us-ashburn-1.oraclecloud. com)) (connect_data=(<hostname>))(security-(ss1_server_dn_match-yes)(TOKEN_AUTH-OAUTH)(TOKEN_LOCATION-"<access-token-path>")))
Agora você se conectou com sucesso ao banco de dados.
-
Execute as consultas SQL a seguir uma por uma e observe a saída para validar o Usuário e as Atribuições.
sqlplus /nolog
SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
SELECT * FROM SESSION_ROLES;
exit
Você testou com sucesso a conexão com o Autonomous Database usando o Token de Acesso ME-ID OAuth.
Links Relacionados
Agradecimentos
- Autores - Indiradarshni Balasundaram, Alex Kovuru, Anuj Tripathi
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.
Integrate Oracle Autonomous Database with Microsoft Entra ID
F90208-01
December 2023
Copyright © 2023, Oracle and/or its affiliates.