Início Rápido: configurar o logon único para aplicativos usando o plano Enterprise dos Aplicativos Spring do Azure
Observação
Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de desativação de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.
O plano consumo e dedicado Standard será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.
Este artigo se aplica a: ❎ Básico/Standard ✅ Enterprise
Este início rápido mostra como configurar o logon único para aplicativos em execução no plano Enterprise dos Aplicativos Spring do Azure.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Uma licença do plano Enterprise dos Aplicativos Spring do Azure. Para obter mais informações, confira Plano Enterprise no Azure Marketplace.
- A CLI do Azure, versão 2.45.0 ou superior.
- Git.
- jq
- A extensão do plano Enterprise dos Aplicativos Spring do Azure. Use o comando a seguir para remover as versões anteriores e instalar a extensão do plano Enterprise mais recente. Se você instalou a extensão
spring-cloud
anteriormente, desinstale-a para evitar incompatibilidades de configuração e de versão.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Execute as etapas em Criar e implantar aplicativos nos Aplicativos Spring do Azure usando o plano Enterprise.
Preparar credenciais de logon único
Para configurar o logon único para o aplicativo, é necessário preparar as credenciais. As seções a seguir descrevem as etapas para usar um provedor existente ou para provisionar um registro de aplicativo com o Microsoft Entra ID.
Usar um provedor existente
Siga estas etapas para configurar o logon único usando um Provedor de Identidade existente. Se você estiver provisionando um registro de aplicativo do Microsoft Entra, vá para a seção a seguir, Criar e configurar um registro de aplicativo com o Microsoft Entra ID.
Configure seu provedor de identidade existente para permitir redirecionamentos de volta ao Gateway do Spring Cloud para VMware Tanzu e ao portal de API do VMware Tanzu. O Gateway do Spring Cloud tem apenas um URI para permitir o reingresso no gateway. O portal da API tem dois URIs para dar suporte à interface do usuário e à API subjacente. Os comandos a seguir recuperam esses URIs que você adiciona à configuração do provedor de logon único.
export GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') export PORTAL_URL=$(az spring api-portal show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') echo "https://${GATEWAY_URL}/login/oauth2/code/sso" echo "https://${PORTAL_URL}/oauth2-redirect.html" echo "https://${PORTAL_URL}/login/oauth2/code/sso"
Obtenha
Client ID
eClient Secret
para o provedor de identidade.Obtenha
Issuer URI
para seu provedor de identidade. Você deve configurar o provedor com um URI emissor, que é o URI que ele afirma como Identificador do Emissor. Por exemplo, se oissuer-uri
fornecido forhttps://example.com
, então uma solicitação de configuração do Provedor OpenID é feita parahttps://example.com/.well-known/openid-configuration
. Espera-se que o resultado seja uma resposta de configuração do Provedor OpenID.Observação
Você só pode usar servidores de autorização que dão suporte ao protocolo de descoberta OpenID Connect.
Obtenha
JWK URI
para seu provedor de identidade para uso posterior.JWK URI
normalmente assume a forma de${ISSUER_URI}/keys
ou${ISSUER_URI}/<version>/keys
. O aplicativo do Serviço de Identidade usa as JWK (Chaves Web JSON) públicas para verificar os JWT (Tokens Web JSON) emitidos pelo servidor de autorização do provedor de identidade de logon único.
Criar e configurar um registro de aplicativo com o Microsoft Entra ID
Para registrar o aplicativo com o Microsoft Entra ID, siga estas etapas. Se você estiver usando as credenciais de um provedor existente, vá para a seção a seguir, Implantar o aplicativo do Serviço de Identidade.
Use o seguinte comando para criar um registro de aplicativo com o Microsoft Entra ID e salvar a saída:
az ad app create --display-name <app-registration-name> > ad.json
Use o seguinte comando para recuperar a ID do aplicativo e coletar o segredo do cliente:
export APPLICATION_ID=$(cat ad.json | jq -r '.appId') az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
Use o seguinte comando para atribuir uma Entidade de Serviço ao registro do aplicativo:
az ad sp create --id ${APPLICATION_ID}
Use os seguintes comandos para recuperar as URLs para o Gateway do Spring Cloud e o portal da API e adicione as URLs de resposta necessárias ao Registro de Aplicativo do Active Directory.
export APPLICATION_ID=$(cat ad.json | jq -r '.appId') export GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') export PORTAL_URL=$(az spring api-portal show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') az ad app update \ --id ${APPLICATION_ID} \ --web-redirect-uris "https://${GATEWAY_URL}/login/oauth2/code/sso" "https://${PORTAL_URL}/oauth2-redirect.html" "https://${PORTAL_URL}/login/oauth2/code/sso"
Use o comando a seguir para recuperar o
Client ID
do aplicativo. Salve a saída para usar posteriormente neste início rápido.cat sso.json | jq -r '.appId'
Use o comando a seguir para recuperar o
Client Secret
do aplicativo. Salve a saída para usar posteriormente neste início rápido.cat sso.json | jq -r '.password'
Use o comando a seguir para recuperar
Issuer URI
. Salve a saída para usar posteriormente neste início rápido.export TENANT_ID=$(cat sso.json | jq -r '.tenant') echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
Recupere
JWK URI
da saída do comando a seguir. O aplicativo do Serviço de Identidade usa as JWK (Chaves Web JSON) públicas para verificar os JWT (Tokens Web JSON) emitidos pelo Active Directory.export TENANT_ID=$(cat sso.json | jq -r '.tenant') echo "https://login.microsoftonline.com/${TENANT_ID}/discovery/v2.0/keys"
Implantar o aplicativo do Serviço de Identidade
Para concluir a experiência de logon único, use as etapas a seguir para implantar o aplicativo do Serviço de Identidade. O aplicativo do Serviço de Identidade fornece apenas uma rota para ajudar a identificar o usuário.
Navegue até a pasta do projeto.
Use o seguinte comando para criar o aplicativo
identity-service
:az spring app create \ --resource-group <resource-group-name> \ --name identity-service \ --service <Azure-Spring-Apps-service-instance-name>
Use o seguinte comando para habilitar a configuração externalizada para o serviço de identidade, associando-se ao Serviço de Configuração de Aplicativo:
az spring application-configuration-service bind \ --resource-group <resource-group-name> \ --app identity-service \ --service <Azure-Spring-Apps-service-instance-name>
Use o seguinte comando para habilitar a descoberta e o registro de serviço para o serviço de identidade, associando-se ao Registro de Serviço:
az spring service-registry bind \ --resource-group <resource-group-name> \ --app identity-service \ --service <Azure-Spring-Apps-service-instance-name>
Use o seguinte comando para implantar o serviço de identidade:
az spring app deploy \ --resource-group <resource-group-name> \ --name identity-service \ --service <Azure-Spring-Apps-service-instance-name> \ --config-file-pattern identity/default \ --source-path apps/acme-identity \ --build-env BP_JVM_VERSION=17 \ --env "JWK_URI=<jwk-uri>"
Use o seguinte comando para rotear solicitações ao serviço de identidade:
az spring gateway route-config create \ --resource-group <resource-group-name> \ --name identity-routes \ --service <Azure-Spring-Apps-service-instance-name> \ --app-name identity-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/identity-service.json
Configurar o logon único para o Gateway do Spring Cloud
Você pode configurar o Gateway do Spring Cloud para autenticar solicitações usando o logon único. Para configurar o Gateway do Spring Cloud a fim de usar o logon único, siga estas etapas:
Use os seguintes comandos para configurar o Gateway do Spring Cloud a fim de usar o logon único:
export GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') az spring gateway update \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> \ --api-description "Fitness Store API" \ --api-title "Fitness Store" \ --api-version "v1.0" \ --server-url "https://${GATEWAY_URL}" \ --allowed-origins "*" \ --client-id <client-id> \ --client-secret <client-secret> \ --scope "openid,profile" \ --issuer-uri <issuer-uri>
Instrua o aplicativo de serviço de carrinho a usar o Gateway do Spring Cloud para autenticação. Use o seguinte comando para fornecer as variáveis de ambiente necessárias:
az spring app update \ --resource-group <resource-group-name> \ --name cart-service \ --service <Azure-Spring-Apps-service-instance-name> \ --env "AUTH_URL=https://${GATEWAY_URL}" "CART_PORT=8080"
Instrua o aplicativo de serviço de pedidos a usar o Gateway do Spring Cloud para autenticação. Use o seguinte comando para fornecer as variáveis de ambiente necessárias:
az spring app update \ --resource-group <resource-group-name> \ --name order-service \ --service <Azure-Spring-Apps-service-instance-name> \ --env "AcmeServiceSettings__AuthUrl=https://${GATEWAY_URL}"
Use o seguinte comando para recuperar a URL para o Gateway do Spring Cloud:
echo "https://${GATEWAY_URL}"
Você pode abrir a URL de saída em um navegador para explorar o aplicativo atualizado. Agora a função de Logon está em operação, permitindo que você adicione itens ao carrinho e faça pedidos. Depois de entrar, o botão de informações do cliente exibe o nome do usuário conectado.
Configurar o logon único para o portal da API
Você pode configurar o portal da API para VMware Tanzu para usar o logon único a fim de exigir a autenticação antes de explorar as APIs. Use os seguintes comandos para configurar o logon único para o portal da API:
export PORTAL_URL=$(az spring api-portal show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
az spring api-portal update \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--client-id <client-id> \
--client-secret <client-secret> \
--scope "openid,profile,email" \
--issuer-uri <issuer-uri>
Use os seguintes comandos para recuperar a URL do portal da API:
export PORTAL_URL=$(az spring api-portal show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
echo "https://${PORTAL_URL}"
Você pode abrir a URL de saída em um navegador para explorar as APIs do aplicativo. Você será direcionado para entrar antes de explorar as APIs.
Limpar os recursos
Se planejar continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não for mais necessário, exclua o grupo de recursos, que excluirá os recursos no grupo de recursos. Para excluir o grupo de recursos usando a CLI do Azure, use os seguintes comandos:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Próximas etapas
Prossiga para qualquer um dos seguintes inícios rápidos opcionais: