Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se cadastrar 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.
Usar o Microsoft Entra ID para Proteger o Gateway de API do OCI Usando OAuth e o OpenID Connect
Introdução
O Gateway de API do OCI (Oracle Cloud Infrastructure) é um serviço totalmente gerenciado sem servidor no OCI que pode ser usado para proteger pontos finais de API e aplicativos Web. Ele fornece muitas funcionalidades de segurança, como limitação de taxa, aplicação de autorização, roteamento dinâmico, aplicação de SSL etc. Vimos muitas solicitações de nossos clientes perguntando como os tokens Entra ID OAuth da Microsoft podem ser usados para proteger APIs em execução por trás do OCI API Gateway ou como podemos aproveitar os tokens Entra ID da Microsoft para autenticação no OCI API Gateway. Para obter mais informações sobre a autenticação do OCI API Gateway, consulte Validando tokens para adicionar autenticação e autorização a implantações de API.
Objetivos
- Integre o OCI API Gateway e o Microsoft Entra ID usando OAuth e o OpenID Connect (OIDC). Veremos como podemos usar o token Entra ID da Microsoft para autenticação com o OCI API Gateway de maneira segura.
Pré-requisitos
-
Acesso às tenancies do OCI e do Microsoft Entra ID.
-
Um JWT (JSON Web Token) do ID do Microsoft Entra, esse JWT pode ser recuperado usando Postman, curl ou qualquer outro cliente de API.
Tarefa 1: Configurar o ID do Microsoft Entra como um Provedor de Identidades OAuth (IdP)
No lado do Microsoft Entra ID, precisamos configurar dois aplicativos clientes no Microsoft Entra ID: um que será usado para autenticar no Microsoft Entra ID, outro aplicativo cliente será usado para expor uma API no Microsoft Entra ID e recuperaremos um token para essa API exposta usando o ID do cliente, segredo do primeiro aplicativo via Postman. Examinaremos esse token e usaremos os campos de público (aud) e emissor a serem importados na configuração do Gateway de API do OCI.
Para criar e configurar os dois aplicativos clientes no Microsoft Entra ID, siga estas etapas:
-
Para criar o primeiro aplicativo, abra o portal Entra ID da Microsoft, clique em Registros do Aplicativo e Novo Registro para registrar um novo aplicativo.
-
Especifique as seguintes informações e clique em Registrar.
- Nome: informe o nome do aplicativo.
- Tipos de conta suportados: Selecione Contas neste diretório organizacional apenas (Diretório Padrão apenas - Tenant único).
-
Clique em Expor uma API para expor isso aos aplicativos clientes adicionando o URI do ID do aplicativo e clique em Adicionar um escopo para adicionar o escopo. Para este tutorial, fornecemos valores de teste, conforme mostrado nas imagens a seguir, para expor uma API e adicionar um escopo.
Registrando a API da Web e expondo-a por meio de escopos, designando uma atribuição de aplicativo, você pode inserir acesso baseado em permissões a seus recursos para usuários autorizados e aplicativos clientes que acessam sua API.
Observação: Anote o URI do ID do aplicativo, que será usado posteriormente durante a captura de um token do Microsoft Entra ID.
-
Clique em Atribuições de aplicativo para adicionar uma atribuição de aplicativo, que é para o primeiro aplicativo.
-
Para criar o segundo aplicativo, abra o portal Entra ID da Microsoft, clique em Registros do Aplicativo e Novo Registro para registrar um novo aplicativo.
-
Especifique as seguintes informações e clique em Registrar.
- Nome: informe o nome do aplicativo.
- Tipos de conta suportados: Selecione Contas neste diretório organizacional apenas (Diretório Padrão apenas - Tenant único).
-
Anote o ID do Aplicativo (cliente), pois o usaremos como uma credencial na API de geração de token para obter um token para o primeiro aplicativo cliente exposto como uma API.
-
Clique em Certificados e segredos, Novo segredo do cliente, especifique as informações a seguir e clique em Adicionar.
- Descrição: Digite uma descrição curta do segredo.
- Expira: Selecione a expiração. Por padrão, a expiração do segredo é definida como seis meses.
Observação: Anote o segredo copiando o campo de valor.
O segredo entrará em par com o ID do aplicativo (cliente) acima.
-
Clique em Permissões de API e em Adicionar uma permissão para
Api_App
. Na seção Selecionar uma API, selecione APIs que minha organização usa e selecione a API que foi exposta ao configurar o primeiro aplicativo. -
Selecione Permissão do aplicativo e a permissão exposta e clique em Adicionar permissões.
-
Clique em Visão Geral, Pontos Finais e copie o URL do ponto final do token OAuth 2.0 (v1), que será usado para a emissão de tokens JWT.
-
Em Pontos Finais, capturaremos o URL de ponto final OpenID conhecido que contém o URI JWKS remoto.
Acabamos com a parte do Microsoft Entra ID e agora avançamos para configurar o OCI API Gateway. No entanto, antes de configurar o Gateway de API no OCI, coletaremos os detalhes necessários do JWT e do openid-configuration
do Microsoft Entra ID usando o Postman. Precisaremos coletar os detalhes abaixo:
- Emissor JWT: Isso pode ser obtido no campo token -
iss
do token. - Públicos-alvo Permitidos JWT: também é obtido do campo token -
aud
no token. - O URI JWKS remoto: está disponível no documento de Metadados do OpenID Connect. Este é o URI JWKS remoto:
https://login.microsoftonline.com/{tenant-id}/discovery/v2.0/keys
.
Obtenha um token de acesso do Microsoft Entra ID usando o Postman. Observe o valor do escopo; ele deve ser o URI do ID do aplicativo criado na seção Expor uma API do seu Api_App e adicione o /.default
ao final, conforme mostrado na imagem a seguir.
Use Postman para recuperar o token JWT do Microsoft Entra ID. Informe o URL da API de token https://login.microsoftonline.com/{tenant-id}/oauth2/token
ao substituir {tenant-id}
pelo ID do tenant do Azure. Envie uma solicitação e copie o valor access_token
.
Agora, podemos decodificar o token JWT para obter alguns valores, como o Emissor Permitido JWT e o Público Permitido JWT.
Usaremos o JWT (JSON Web Token) emitido pelo Microsoft Entra ID para a resposta padrão configurada no Gateway de API do OCI.
Tarefa 2: Configurar um Gateway de API do OCI
-
Vá para Gateway de API do OCI e, na seção Autenticação, selecione Autenticação Única e digite as informações a seguir.
- Tipo de autenticação:
OAuth 2.0/ OpenID Connect
. - Localização do token:
Header
. - Nome do cabeçalho do token JWT:
Authorization
. - Esquema de autenticação:
Bearer
.
- Tipo de autenticação:
-
Na seção Validação adicional de JWT, defina Emissores e Públicos-alvo permitidos. Como usamos a API de token v1, os emissores permitidos devem ser definidos como
https://sts.windows.net/{tenant-id}/
. Substitua{tenant-id}
pelo seu ID de tenant do Azure. Públicos permitidos devem conter o valor da reivindicaçãoaud
obtido na Tarefa 1. -
Na seção Tipo de validação, informe o URI JWKS obtido do ponto final OpenID conhecido do Microsoft Entra ID.
-
Para criar uma rota, especifique as seguintes informações e clique em Próximo.
- Caminho: Defina um caminho.
- Métodos: Selecione um método.
- Selecione Adicionar um único backend.
- Tipo de Backend: Selecione Resposta em estoque.
- Código de status: Informe o código de status.
- Corpo: Defina um corpo simples.
Observação: para fins de simplicidade, estamos expondo uma resposta padrão como o tipo de backend para o Gateway de API. Geralmente, isso seria uma API protegida por meio do Gateway de API; no entanto, a configuração da autenticação do OIDC do Microsoft Entra ID é semelhante.
-
Na seção Revisar, revise a implantação e clique em Criar. Aguarde até que a implantação esteja no estado
Active
e copie o URL do ponto final.
Use Postman para testar o ponto final da API segura. Informe o ponto final e sufoque-o com o caminho da rota. Adicione o cabeçalho Autorização, use o esquema Portador e cole o token JWT obtido do ID do Entra da Microsoft.
Sua implantação do OCI API Gateway agora está protegida com o Microsoft Entra ID.
Links Relacionados
Confirmação
- Autor - Aqib Javid Bhat (Engenheiro Sênior de Nuvem)
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.
Use Microsoft Entra ID to Secure OCI API Gateway Using OAuth and OpenID Connect
F94683-01
March 2024