Desenvolva um Aplicativo Java com o Oracle Identity Cloud Service
Entenda o fluxo de autenticação e saiba como o exemplo do aplicativo Cotações do Cliente implementa a integração com o Oracle Identity Cloud Service usando servlets Java.
Entender o Fluxo de Autenticação
O fluxo de processo a seguir descreve as etapas no fluxo de autenticação e a comunicação entre um aplicativo de Cotas do Cliente de exemplo e o Oracle Identity Cloud Service.
-
O usuário acessa o aplicativo Cotações do Cliente (
https://localhost:8181/cquotes
) e clica em Fazer Login com o Identity Cloud Service. -
O aplicativo Cotações do Cliente prepara uma solicitação de código de autorização no seguinte formato:
-
URL:
https://example.identity.oraclecloud.com/oauth2/v1/authorize?client_id=clientid&response_type=code&redirect_uri=https://localhost:8181/cquotes/return&scope=openid
-
Parâmetros:
-
client_id
: O ID exclusivo do Aplicativo de Cotações do Cliente registrado no Oracle Identity Cloud Service. -
response_type
: A resposta esperada do Oracle Identity Cloud Service. Nesta etapa, é o código de autorização. -
redirect_uri
: O URL para o qual o código de autorização é enviado depois que o usuário conclui a autenticação e a autorização com o Oracle Identity Cloud Service. -
scope
: Controla quais dados o aplicativo Cotações do Cliente pode acessar e processar em nome do usuário. Como o OpenID Connect é usado, o escopo éopenid
.
-
-
-
O aplicativo Cotações do Cliente redireciona o usuário para o URL do código de autorização do Oracle Identity Cloud Service que foi gerado na Etapa 2.
-
O Oracle Identity Cloud Service recebe a solicitação de código de autorização do aplicativo Cotações do Cliente (identificado por seu
client_id
). -
O Oracle Identity Cloud Service verifica se o usuário já está autenticado. Em caso afirmativo, o Oracle Identity Cloud Service ignora o processo de acesso. Caso contrário, o Oracle Identity Cloud Service iniciará o processo de acesso e exibirá a página Acessar.
-
O usuário envia as credenciais de acesso para o Oracle Identity Cloud Service para validação. O processo de acesso do Oracle Identity Cloud Service aplica a política de senha até que as credenciais de acesso sejam validadas com sucesso.
-
Se o processo de acesso for bem-sucedido, o Oracle Identity Cloud Service redirecionará o usuário de volta para o aplicativo Cotações do Cliente usando o seguinte URL de redirecionamento:
-
URL:
-
https://localhost:8181/cquotes/return?code=code
-
-
Parâmetro:
-
code
: O código de autorização criado pelo Oracle Identity Cloud Service.
-
-
-
O aplicativo Cotações do Cliente extrai o código de autorização da solicitação.
-
O aplicativo Cotações do Cliente se comunica diretamente com o Oracle Identity Cloud Service para trocar o código de autorização por um token de acesso do usuário usando o seguinte URL e cabeçalhos:
-
URL:
https://example.identity.oraclecloud.com/oauth2/v1/token?grant_type=authorization_code&code=code
-
Cabeçalhos de Solicitação:
-
Authorization=Basic
(client_id:client_secret, codificado em 64 bits) -
Accept=*/*
-
-
Parâmetros:
-
grant_type
: Como você está usando umauthorization_code
para solicitar um token de acesso do Oracle Identity Cloud Service, o tipo de concessão deve serauthorization_code
. -
code
: O código de autorização recebido do Oracle Identity Cloud Service, depois que o usuário acessa com sucesso.
-
-
Lista de cabeçalhos:
-
Autorização: O aplicativo confiável
client_id
eclient_secret
(codificado em 64 bits) no formato:client_id:client_secret
. -
Aceitar: O tipo de resposta que o aplicativo Cotações do Cliente espera
.
-
-
-
O Oracle Identity Cloud Service valida a solicitação e retorna o seguinte JSON Web Token (JWT) para o aplicativo Cotações do Cliente:
-
Conteúdo JWT:
-
access_token
: Contém informações sobre o usuário. O aplicativo Cotações do Cliente pode usar esse token ao fazer chamadas de API do Oracle Identity Cloud Service em nome do usuário. O conteúdoaccess_token
depende do escopo solicitado durante o processo de autenticação. -
id_token
: O token principal no OpenID Connect e é usado para autorizar o ponto final comscope=openid
. Oid_token
contém as informações de identificação (por exemplo, nome e e-mail) sobre o usuário. Essas informações podem ser usadas pelo aplicativo cliente para vários fins, incluindo verificação e exibição de conteúdo. Um legítimo (verificado pelo cliente com base em uma assinatura do provedor do OpenID Connect) e ativoid_token
informa ao aplicativo que o usuário autenticou e tem um token válido.
-
-
-
O aplicativo Cotações do Cliente processa o token JWT (
id_token
) e extrai as informações do usuário retornadas pelo Oracle Identity Cloud Service, como nome e e-mail. -
O aplicativo Cotações do Cliente exibe a home page contendo informações sobre o usuário, como nome e e-mail.
Entender o Código do aplicativo Java
O aplicativo de Cotas do Cliente de exemplo usa a tecnologia de servlet.
-
com.example.servlet.AccessResourceServlet
: Inicia o fluxo de autenticação redirecionando o usuário para o Oracle Identity Cloud Service para solicitar um código de autorização. -
com.example.servlet.ReturnServlet
: Trata o URL de redirecionamento do Oracle Identity Cloud Service, recebe o código de autorização e usa a classecom.example.utils.OICOAuthClient
para trocar o código de autorização por um token de identidade e um token de acesso. -
com.example.servlet.LogoutServlet
: Encerra a sessão do usuário do aplicativo, mas não desconecta o usuário do Oracle Identity Cloud Service.
-
com.example.utils.OICOAuthClient
: Cria os pontos finais de URL para a API REST do Oracle Identity Cloud Service, processa solicitações, analisa respostas do Oracle Identity Cloud Service e adiciona informações do usuário à sessão HTTP do aplicativo. -
com.example.utils.HttpUtil
: Trata a comunicação HTTP com pontos finais da API REST do Oracle Identity Cloud Service. Toda a comunicação diretamente do aplicativo Cotações do Cliente com o Oracle Identity Cloud Service é feita por meio da classejava.net.HttpURLConnection
.