Autenticar Usuários do Autonomous Database com o Kerberos
Você pode configurar o Autonomous Database on Dedicated Exadata Infrastructure para usar o protocolo de autenticação de rede do Kerberos para autenticar usuários do banco de dados. O Kerberos é um protocolo de autenticação forte de rede. Ele usa criptografia de chave secreta para ativar a autenticação forte fornecendo autenticação de usuário para servidor.
-
O suporte do Autonomous Database na Infraestrutura Dedicada do Exadata para o Kerberos fornece os benefícios da autenticação de sign-on único e centralizada dos usuários da Oracle. O Kerberos é um sistema de autenticação de terceiros confiável que depende de segredos compartilhados. Ele presume que o terceiro é seguro e fornece recursos de sign-on único, armazenamento de senha centralizado, autenticação de link de banco de dados e segurança aprimorada do PC. Ele faz isso por meio de um servidor de autenticação do Kerberos.
-
O sistema Kerberos é um conceito de ticket. O ticket é um conjunto de informações eletrônicas que identifica um usuário ou um serviço. Um ticket identifica você e seus privilégios de acesso à rede.
-
Na autenticação baseada no Kerberos, você envia de forma transparente uma solicitação de ticket para um KDC (Key Distribution Center). O Key Distribution Center autentica você e concede a você um ticket para acessar o banco de dados.
Componentes do Sistema de Autenticação do Kerberos
Fornece uma visão geral do sistema de autenticação do Kerberos.
-
Um realm estabelece um domínio administrativo de autenticação. Cada realm tem seu próprio banco de dados Kerberos que contém os usuários e os serviços desse domínio administrativo específico.
-
Os tickets são emitidos pelo KDC (Key Distribution Center). Os clientes apresentam os tickets ao Servidor de Banco de Dados para demonstrar a autenticidade da identidade. Cada ticket tem um tempo de expiração e de renovação.
-
Os keytabs armazenam chaves de longo prazo para um ou mais controladores. Um arquivo keytab é gerado chamando a ferramenta
kadmin.local
(para o MIT Key Distribution Center) ouktpass
(para o Active Directory Key Distribution Center). -
Os controladores são as entradas no banco de dados do Key Distribution Center. Cada usuário, host ou serviço recebe um controlador. O controlador é uma identidade exclusiva à qual o Key Distribution Center pode designar tickets.
-
O suporte a Kerberos no Autonomous Database usa esses valores para vários componentes que formam o nome de um controlador de serviços:
Componente do Controlador de Serviços | Valor no Autonomous Database |
---|---|
kinstance |
Você pode obter esse valor do atributo Use a seguinte consulta para obter o
Observação: Este será o valor do parâmetrohost encontrado na sequência de conexão TNS.
|
kservice |
No Autonomous Database, você tem duas opções para o valor
Depois que o Kerberos for ativado na sua instância do Autonomous Database, use a seguinte consulta para exibir o nome do serviço Kerberos:
|
REALM |
Qualquer realm suportado pelo KDC. REALM sempre deve estar em letras maiúsculas.
|
Para ativar a autenticação Kerberos para o seu Autonomous Database, você deve manter os arquivos de configuração Kerberos (krb.conf
) e arquivo de tabela de chaves (v5srvtab
) prontos. Para mais informações sobre esses arquivos e etapas para obtê-los, consulte Configurando Autenticação Kerberos.
Observações sobre a Autenticação do Kerberos no Autonomous Database
Antes de continuar com a autenticação do Kerberos no Autonomous Database on Dedicated Exadata Infrastructure, verifique as seguintes observações:
- Se você ativar a autenticação do Kerberos no Autonomous Database, ainda poderá usar a autenticação do banco de dados baseada em senha para seu banco de dados.
- Somente um método de autenticação externo pode ser usado para o seu Autonomous Database a qualquer momento. Ou seja, você só pode ter os esquemas de autenticação do Oracle Cloud Infrastructure (IAM), do Usuário Gerenciado Centralmente com Active Directory (CMU-AD), do Azure AD ou do Kerberos ativados a qualquer momento.
Observação:
A única exceção é que a autenticação do Kerberos pode ser configurada no topo do CMU-AD para fornecer a autenticação do CMU-AD Kerberos para usuários do Microsoft Active Directory. - Não há suporte para a autenticação do Kerberos nas seguintes ferramentas:
- Oracle Database API for MongoDB
- Oracle REST Data Services
- Oracle Machine Learning
- APEX
- Oracle Graph Studio
- Oracle Database Actions
- Você pode ativar a autenticação do Kerberos para autenticar o usuário ADMIN. Você poderá usar a funcionalidade Redefinir Senha na Console do OCI (Oracle Cloud Infrastructure) para redefinir a senha do usuário ADMIN e recuperar o acesso se um arquivo keytab corrompido fizer com que a autenticação do usuário ADMIN falhe.
- Há suporte para a autenticação do Kerberos com o protocolo TCP do Autonomous Database versão 19.27 ou posterior.
- Não há suporte para a autenticação do Kerberos com DB_LINKs e bancos de dados com o Autonomous Data Guard.
Ativar Autenticação no Kerberos no Autonomous Database
-
Como só pode haver um esquema de autenticação externo ativado para um Autonomous Database a qualquer momento, execute o procedimento
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
para desativar qualquer esquema de autenticação externo que já esteja ativado para seu banco de dados.Para executar o procedimento, você deve fazer log-in como usuário ADMIN ou ter o privilégioEXECUTE
emDBMS_CLOUD_ADMIN
.BEGIN DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION; END; /
-
Obtenha os arquivos de configuração do Kerberos:
krb.conf
e o arquivo de tabela de chaves de serviçov5srvtab
. Para obter mais informações sobre esses arquivos e etapas necessárias para obtê-los, consulte Configuring Kerberos Authentication no Oracle Database 19c Security Guide ou no Oracle Database 23ai Security Guide. -
Copie os arquivos de configuração do Kerberos
krb.conf
ev5srvtab
para um bucket no Armazenamento de Objetos.Observação:
A Oracle recomenda que você armazene os arquivos de configuração do Kerberos em um bucket privado no Armazenamento de Objetos.Se você estiver usando o Oracle Cloud Infrastructure Object Store, consulte Colocando Dados no Serviço Object Storage para obter detalhes sobre o upload de arquivos.
-
Para ativar o Kerberos como a autenticação externa do seu Autonomous Database, execute o procedimento
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION
e informe um URI de local com o argumento JSONparams
. Coloque os arquivos de configuraçãokrb.conf
ev5srvtab
no local de Armazenamento de Objetos especificado no parâmetrolocation_uri
.Por exemplo:BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type => 'KERBEROS', params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o', 'credential_name' value 'my_credential_name') ); END; /
Observação:
Para fornecer a autenticação do CMU-AD Kerberos para usuários do Microsoft Active Directory, você pode ativar a autenticação do Kerberos sobre o CMU-AD definindotype
comoCMU
no exemplo acima.Neste exemplo,
namespace-string
corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure ebucketname
corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.O
credential_name
que você usa nesta etapa são as credenciais do Armazenamento de Objetos.Se o
location_uri
for um URL pré-autenticado, não será necessário fornecer umcredential_name
.Isso cria um objeto de diretório chamado
KERBEROS_DIR
no banco de dados e usa a credencial para fazer download dos arquivos de configuração do Kerberos, do local de Armazenamento de Objetos para o objeto de diretório.É possível usar o parâmetrokerberos_service_name
para especificar o nome do serviço Kerberos. Por exemplo:BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type =>'KERBEROS', params => JSON_OBJECT( 'location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o', 'credential_name' value 'my_credential_name' 'kerberos_service_name' value 'oracle' )); END; /
- Depois de ativar a autenticação do Kerberos, remova a configuração
krb.conf
ev5srvtab
do Armazenamento de objetos. Você pode usar métodos locais de Armazenamento de Objetos para remover esses arquivos ou usarDBMS_CLOUD.DELETE_OBJECT
para excluir os arquivos do Armazenamento de Objetos.
Consulte Navegar até o Oracle Cloud Infrastructure Object Storage e Criar um Bucket para obter mais informações sobre o serviço Object Storage.
Consulte Procedimento ENABLE_EXTERNAL_AUTHENTICATION para obter mais informações.
Desativar a Autenticação do Kerberos no Autonomous Database
Antes de ativar qualquer outro esquema de autenticação externo no seu banco de dados, desative a autenticação do Kerberos executando o procedimento DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
.
EXECUTE
em DBMS_CLOUD_ADMIN
. BEGIN
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
Observação:
Para fornecer autenticação CMU-AD Kerberos para os usuários do Microsoft Active Directory, continue a configurar a autenticação CMU-AD sem desativar a autenticação do Kerberos.