Conexões de IAM de Controle do Acesso com Base na Atribuição
Este tópico fornece instruções para o gerenciamento de TI sobre como preparar um aplicativo integrado ao domínio que permite o Controle de Acesso Baseado em Atribuição usando reivindicações personalizadas do JWT (JSON Web Token). Isso permitirá que os usuários do domínio façam log-in no banco de dados usando suas credenciais de domínio, em vez da senha do esquema.
Este capítulo permite que os usuários do domínio se autentiquem no banco de dados com suas credenciais de domínio, em vez de usar a senha específica do esquema.
- Criar atributos personalizados para usuários
- Atribuir função personalizada
- Criar um aplicativo integrado de domínio
- Definir a Reivindicação Personalizada
- Ativar Log-in do Serviço IAM para o Esquema do Autonomous Database
- Criar um arquivo de conexão
Usaremos o domínio
Default
neste capítulo, mas você poderá selecionar qualquer domínio de sua preferência.
Criar atributos personalizados para usuários
- Navegue até: Identidade → Domínios → Padrão. Clique na guia Gerenciamento de esquema e selecione Atributos do usuário.
- Clique em Adicionar Atributo em Atributos do usuário.
- Na caixa de diálogo Adicionar Atributos, especifique os seguintes campos:
- Nome para exibição: ORDS RBAC
- Nome:rbac_ords
- Descrição:Controle de Acesso Baseado em Atribuição para ORDS
- Tipo de dados: Array de Strings
Você pode deixar o restante dos campos no estado padrão.
Clique em Adicionar. Você adicionou o atributo personalizado.
- Procure o atributo recém-adicionado digitando Personalizado no campo de pesquisa. Você exibirá o atributo ORDS RBAC na lista.
Clique em Editar atributo.
- Copie e anote o valor de FQN (Nome Totalmente Qualificado).
Neste exemplo, FQN é urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords.
Atribuir função personalizada
- Navegue até: Identidade → Domínios → Padrão. Clique na guia Gerenciamento de Usuários e selecione seu nome de usuário na lista de usuários exibidos.
Clique em Editar usuário. Role para baixo até o campo Other Information e digite SQL Developer, SODA Developer em ORDS RBAC.
Para obter mais informações sobre atribuições ORDS, consulte este capítulo sobre Sobre Atribuições de Usuário do Oracle REST Data Services.
Depois de adicionar as funções, clique em Salvar alterações.
Criar um aplicativo integrado de domínio
Desenvolveremos um aplicativo integrado dentro do domínio que emitirá um token JWT após o login.
- Navegue até: Identidade → Domínios → Padrão. Clique na guia Aplicativos integrados e selecione Adicionar aplicativo.
- Clique em Aplicativo Confidencial e selecione Iniciar Workflow.
- Na caixa de diálogo Adicionar Aplicativo Confidencial, especifique os seguintes campos:
- Nome: Informe o nome do aplicativo confidencial. Por exemplo, Spreadsheet-Addin RBAC.
- Descrição: Informe a descrição. Por exemplo, Aplicativo Integrado para o controle de acesso baseado em função de suplemento de planilha.
Clique em Submeter.
Você exibirá a página de aplicativo Spreadsheet-Addin RBAC recém-adicionada.
- Clique em Editar configuração OAuth na guia configuração OAuth da página Spreadsheet-Addin RBAC.
- Em Resource Server Configuration, selecione Configurar este aplicativo como um servidor de recursos agora.
- Em Configurar APIs de aplicativos que precisam ser protegidas por OAuth, selecione 3600 como expiração do token de acesso (segundos).
- No campo Público-alvo principal, digite ssaddin/.
- Clique em Adicionar escopos e adicione rbac Escopo.
- Em Configuração do Cliente, especifique os seguintes campos:
- Selecione Configurar este aplicativo como cliente agora.
- Selecione Implícito em Tipos de concessão permitidos.
- Digite o seguinte valor no campo URL de Redirecionamento:
https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
- Informe o seguinte valor no campo URL de Pós-logout:
https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
Clique em Submeter.Observação
Certifique-se de Ativar o aplicativo.
Definir Reivindicação Personalizada
Para incluir funções de usuário no JWT, devemos mapear o atributo personalizado estabelecido na primeira seção para o JWT usando uma Reivindicação Personalizada.
Para isso, precisamos criar um Aplicativo Integrado temporário adicional e anexar a reivindicação personalizada por meio dele.
Criar aplicativo integrado do domínio de Identidades
- Navegue até: Identidade → Domínios → Padrão.
- Clique na guia Aplicativos integrados e selecione Adicionar aplicativo.
- Clique em Aplicativo confidencial e selecione Iniciar workflow.
- Informe o nome do aplicativo: Aplicativo integrado do domínio de identidades
- Digite Descrição: Este é um aplicativo integrado ao domínio.
Clique em Submeter.
- Na página Aplicativo integrado do domínio de identidades, selecione a guia configuração do OAuth.
- Clique em Editar configuração OAuth na Configuração do servidor de recursos. Na caixa de diálogo Editar configuração OAuth, especifique os seguintes campos:
- Em Configuração do cliente, selecione o valor padrãoConfigurar este aplicativo como cliente agora.
- Em Autorização, selecione Credenciais de cliente. Mantenha o restante das configurações em seu estado padrão.
- Selecione Adicionar funções de aplicativo.
- Na caixa de diálogo Adicionar atribuições de aplicativo, clique em Administrador do Domínio de Identidadese selecione Adicionar.
- Depois de adicionar atribuições de Aplicativo, clique em Enviar.
- Ativar o aplicativo.
Observação
Certifique-se de fazer uma observação do ID do Cliente e do Segredo do Cliente na seção Informações Gerais do Aplicativo Integrado.
Criar nova reivindicação para o token JWT
Exigimos que CLIENT ID
, CLIENT SECRET
e DOMAIN URL
recuperem um novo token de acesso para o Aplicativo Administrador do Domínio de Identidades.
Temos o CLIENT ID
e o CLIENT SECRET
do aplicativo integrado de domínio que você criou na etapa anterior.
O DOMAIN URL
pode ser encontrado na página de domínio em Informações de domínio.
Execute o comando a seguir e substitua os valores (CLIENT ID)
, (CLIENT SECRET)
e (DOMAIN URL)
pelos seus valores.
export ACCESS_TOKEN=$(curl -s -i -u"(CLIENT ID):(CLIENT SECRET)" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST (DOMAIN URL)/oauth2/v1/token -d
"grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" | tail -n +1 | grep -o
'"access_token":"[^"]*' | cut -d'"' -f4)
Client ID
: 123a1234e1234567aa12345a1abcdefg1Client Secret
: idcscs-12a1a123-a123-1234-1234-e1a05aabc123Domain URL
: https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443
export ACCESS_TOKEN=$(curl -s -i -u"123a1234e1234567aa12345a1abcdefg1: idcscs-12a1a123-a123-1234-1234-e1a05aabc123" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443/oauth2/v1/token -d "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" |
tail -n +1 | grep -o '"access_token":"[^"]*' | cut -d'"'
-f4)
echo $ACCESS_TOKEN
A imagem abaixo exibe como os comandos acima aparecem no shell do Bash.
Exibe a saída que consiste em várias linhas (mais de 10) contendo caracteres alfanuméricos.
(ROLE CLAIM NAME)
como ssaddin.role e (MODIFIED FQN)
como urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords:
Use o FQN
da etapa 1 e substitua o ":" final por um ".".
Por exemplo, o FQN
da etapa 1 é:
urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords
Portanto, o MODIFIED FQN
deve ser:
urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords
curl -i -X POST (DOMAIN URL)/admin/v1/CustomClaims -H"Cache-Control: no-cache" -H"Accept:application/json" -H"Content-Type:application/json" -H"Authorization: Bearer $ACCESS_TOKEN" -d '{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
],
"name": "(ROLE CLAIM NAME)",
"value": "$user.(MODIFIED FQN).*",
"expression": true,
"mode": "always",
"tokenType": "AT",
"allScopes": false,
"scopes": [
"ssaddin/rbac"
]
}'
Substitua o
Domain URL
pelo seu valor real no código acima.
Você verá o seguinte como saída:HTTP/1.1 201 Created
.
Ativar Log-in no IAM do RBAC para o Esquema do Autonomous Database
- Na Planilha SQL, na guia Navegador, selecione
ORDS_METADATA
na lista drop-down Esquema. - Selecione
Packages
na lista drop-down Tipo de objeto. - Digite
ORDS_SECURITY
no campo Pesquisar. A função de pesquisa recupera todas as entradas que começam comORDS_SECURITY
. - Expanda o pacote
ORDS_SECURITY
. - Clique com o botão direito do mouse em
CREATE_JWT_PROFILE
e clique emRUN
. Isso abre uma caixa de diálogoRUN CODE
.Na caixa de diálogo Run Code…, especifique os seguintes valores de campo:- P_ISSUER- https://identity.oraclecloud.com/. Este campo deve ser um valor não nulo e deve ser preenchido em uma única vírgula.
- P_AUDIÊNCIA-ssaddin/. Este campo deve ser um valor não nulo.
- P_JWK_URL- Anexe o URL DO DOMÍNIO ao /admin/v1/SigningCert/jwk. Deve ser um valor não nulo que comece com https:// e identifique a chave de verificação pública fornecida pelo servidor de autorização em um formato JWK (JSON Web Key).
Você pode exibir o URL do Domínio na guia Informações do Domínio presente no menu Domínios do menu de navegação Identidade e Segurança da console do OCI.
- P_DESCRIPTION- Informe a descrição deste perfil. Por exemplo, "Confluência de Demonstração RBAC JWT".
- P_ALLOWED_AGE-"0"
- P_ALLOWED_SKEW-"0"
- P_ROLE_CLAIM_NAME- "ssaddin.role"
Clique em Inserir código na planilha.
Execute o procedimento. de
Você exibirá "PL/SQL procedure successfully completed." no painel de saída.
Criar um arquivo de conexão
-
Clique na opção Adicionar no cabeçalho do painel Conexões para adicionar uma conexão. Isso abre uma caixa de diálogo Adicionar nova conexão.
- Especifique os seguintes campos na caixa de diálogo Adicionar nova conexão:
- Nome da conexão: Informe o nome da conexão.
- URL do Autonomous Database: Informe o URL do Autonomous Database ao qual você deseja se conectar. Copie todo o URL da interface do usuário Web do Autonomous Database. Por exemplo, informe ou copie o seguinte link "https://<hostname>-<databasename>.adb.<region>.oraclecloudapps.com/" para estabelecer conexão com o banco de dados.
- Nome do Esquema: Informe o mesmo esquema que você usa para Ativar Log-in do Serviço IAM para o Esquema do Autonomous Database.
- Selecione o tipo de conexão: IAM do OCI
- URL do Domínio: Informe o URL do Domínio na guia de informações do domínio.
- Selecione o tipo de IAM RBAC.
- Escopo do Serviço IAM:
ssaddin/rbac
Após a criação da conexão, você poderá compartilhá-la com outros usuários desse domínio.
Tópico principal: A Ferramenta de Análise de Dados