Configurar Aplicações no Oracle Identity Cloud Service
Para que a autenticação funcione de forma adequada, você deve usar a mesma instância do Oracle Identity Cloud Service que protege seu Oracle Fusion Applications Cloud Service e Oracle PaaS ( Oracle Visual Builder ) ou aplicativo HTML5 personalizado. No Oracle Identity Cloud Service, você precisa criar uma aplicação a ser usada para a autenticação do cliente.
Neste cenário, separamos os assuntos do Oracle Functions mais Oracle API Gateway da interação entre as entidades do Oracle Functions e do Oracle Fusion Applications Cloud Service, protegendo ambos usando o Oracle Identity Cloud Service como entidades separadas, em vez de usar o mesmo Aplicativo Oracle Identity Cloud Service para ambos.
Em geral, as aplicações de extensão Oracle SaaS escritas por clientes da Oracle executam alguma lógica complexa. Por exemplo, um cenário comum é obter dados do Oracle Fusion Applications Cloud Service, processá-los de alguma forma e retornar dados para o Oracle Fusion Applications Cloud Service para outro alvo, como um banco de dados.
Consequentemente, temos aqui uma arquitetura com duas aplicações do Oracle Identity Cloud Service:
- Uma aplicação que protege o Oracle Functions como recurso e como um cliente confiável do Oracle Fusion Applications Cloud Service.
- Uma aplicação que protege a instância do Oracle Fusion Applications Cloud Service como um recurso.
As instruções deste artigo vão orientá-lo durante o processo de criação e configuração do primeiro desses aplicativos, para proteger o Oracle Functions. O segundo dos dois aplicativos já deverá existir: você era solicitado a criar e configurar um aplicativo para ativar a federação entre o Oracle Fusion Applications Cloud Service e o Oracle PaaS.
Esta configuração permite que você configure diferentes regras ou políticas para acessar Funções que não sejam as regras ou políticas de um Cliente Confiável para alcançar o Oracle Fusion Applications Cloud Service. Nesta configuração, o token de acesso de entrada ao Gateway de API só requer acesso autorizado ao Oracle Functions para chamar o recurso Função, mas não necessariamente precisa ter as mesmas concessões necessárias para acessar a instância do Oracle Fusion Applications Cloud Service. O aplicativo Oracle Visual Builder requer um Aplicativo Oracle Identity Cloud Service associado que gerará o token de acesso para acessar o Gateway de API. Este Aplicativo Oracle Identity Cloud Service será o cliente do Recurso de Gateway de Funções/API.
As trocas de tokens mostradas no diagrama de arquitetura fornecem uma camada de proteção adicional para propagar a identidade para o caso de uma Função ser um cliente de um Recurso Oracle Fusion Applications Cloud Service, que é semelhante ao processo de asserção do Oracle WebLogic OAuth com o Oracle Identity Cloud Service usado nas extensões SaaS mais antigas suportadas, como aquelas que usam o Oracle Java Cloud Service.
Isso pode significar que, em determinados casos de uso, o aplicativo Oracle Identity Cloud Service usado para gerar o token do Oracle Functions só pode ter escopos de recursos para Funções, mas não para o Oracle Fusion Applications Cloud Service. Nesse caso, o Oracle Functions não terá a capacidade de reutilizar o token para chamar o Oracle Fusion Applications Cloud Service, mas é válido para atingir o Oracle Functions. Portanto, você pode implementar fluxos lógicos nos quais alguns usuários ou grupos de Funções não têm acesso, enquanto outros não têm, com base na lógica de negócios, atribuições de usuário e privilégios ou em outros critérios.
Em outros casos de uso, o Oracle Functions pode incluir código para solicitar um token de acesso ao Oracle Fusion Applications Cloud Service usando os certificados e o usuário transmitido na solicitação do Gateway de API.
Criar um Aplicativo para o Oracle Functions no Oracle Identity Cloud Service
No Oracle Identity Cloud Service, você precisa criar uma aplicação confidencial para usar para a autenticação do cliente Oracle Functions.
Na mesma instância do Oracle Identity Cloud Service que você federau com sua instância do Oracle Fusion Applications Cloud Service, crie um aplicativo confidencial e certifique-se de que a configuração do cliente esteja configurada para que ela permita as concessões Credenciais do Cliente, Asserção JWT e Proprietário do Recurso.
Preparar e Testar o Seu Aplicativo Oracle Identity Cloud Service
Configure a aplicação Confidencial do Oracle Identity Cloud Service para se conectar à aplicação correspondente à sua instância do Oracle Fusion Applications Cloud Service e, em seguida, teste a aplicação.
curl --location --request GET 'https://<your fusion instance>.<domain>.com/fscmRestApi/resources/11.13.18.05/expenses' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <JWT_TOKEN>'
Essa consulta curl deve retornar dados de Despesas.Configurar o Aplicativo Oracle Functions Oracle Identity Cloud Service como Cliente Confiável
Você precisa de um certificado a ser usado pela aplicação Oracle Identity Cloud Service como um Cliente Confiável para fazer solicitações OAuth ao seu Oracle Functions. É possível gerar um certificado autoassinado para uso durante o desenvolvimento, se você ainda não tiver um certificado disponível.
O script fornecido genSelfSignedKeypair.sh
pode ser usado para gerar uma chave se você ainda não tiver uma. Execute o script especificando os valores de alias de tenant e chave. Neste exemplo, fornecemos o mytenant como o nome do tenant e fnassertionkey como o apelido da chave.
Importar Informações da Área de Armazenamento de Chaves para o Oracle Cloud Infrastructure Vault
O processo de asserção com o Oracle Functions exigirá o uso da área de armazenamento de chaves e das senhas importadas. Para obter a melhor segurança e evitar o uso de senhas e segredos, você pode aproveitar o Oracle Cloud Infrastructure Vault.
O serviço Oracle Cloud Infrastructure Vault permite criptografar e armazenar dados confidenciais de forma segura. Você pode armazenar suas senhas de chave pública e de armazenamento de chaves em um Vault e depois fazer referência a ela usando o Oracle Cloud Infrastructure SDK no seu Oracle Functions Backend para executar a associação. Você também pode criptografar e armazenar com segurança o arquivo JKS.
Na seção Antes de Começar desse playbook de solução, você era solicitado a configurar o ambiente do Oracle Functions, como usando os Guias de Início Rápido. A configuração do Guia de Início Rápido solicita a criação de uma Política de Funções no nível de Compartimento raiz. No exemplo a seguir, essa política se chama FnTenancyPolicy
. Você precisa adicionar mais instruções à política para permitir que o Oracle Functions acesse o Vaults associado a essa política. O nome do Grupo para o Oracle Functions a ser usado deve ser aquele criado ao configurar a tenancy no Guia de Início Rápido. Neste exemplo, fnGroup1
é o Grupo de usuários que podem usar o Oracle Functions.
Configure o Aplicativo Oracle Visual Builder no Oracle Identity Cloud Service
As aplicações Oracle Visual Builder têm uma Aplicação Oracle Identity Cloud Service associada, que é automaticamente configurada como Cliente Confiável. Você precisa configurar essa aplicação para que ela possa ser usada como um cliente do Recurso Oracle Functions.
Como parte da interação mostrada na arquitetura proposta, um aplicativo do Oracle Visual Builder associado a uma instância do Oracle Identity Cloud Service, federado com o Oracle Fusion Applications Cloud Service e conectado ao Oracle Functions, precisa ser capaz de gerar um token de acesso que possa atingir o Gateway de API e os Recursos do Oracle Functions (conforme definido pelo Escopo). Você deve configurar seu aplicativo Oracle Visual Builder no Oracle Identity Cloud Service para defini-lo como um cliente do Recurso que estende a funcionalidade do SaaS adicionando o escopo do novo aplicativo Oracle Functions criado.
Quando você cria um novo aplicativo no Oracle Visual Builder, um aplicativo Oracle Identity Cloud Service é criado automaticamente. Por exemplo, se você criar uma aplicação chamada TestSaaSExtensionFN
, poderá navegar para a console do Oracle Identity Cloud Service e listar aplicações e encontrar uma aplicação chamada TestSaaSExtensionFN
.