Acessar o Servidor de Configuração e o Registro de Serviço
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado 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 obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Este artigo aplica-se a:✅ Basic/Standard ❎ Enterprise
Este artigo explica como acessar o Spring Cloud Config Server e o Spring Cloud Service Registry gerenciados pelo Azure Spring Apps usando o RBAC (controle de acesso baseado em função) do Microsoft Entra.
Nota
Os aplicativos implantados e em execução dentro do serviço Azure Spring Apps são automaticamente conectados com autenticação e autorização baseadas em certificado ao acessar o Spring Cloud Config Server e o Service Registry gerenciados. Não é necessário seguir estas orientações para estas aplicações. Os certificados relacionados são totalmente gerenciados pela plataforma Azure Spring Apps e são injetados automaticamente em seu aplicativo quando conectados ao Config Server e ao Service Registry.
Atribuir função ao usuário/grupo do Microsoft Entra, MSI ou entidade de serviço
Atribua a função ao escopo [user | group | service-principal | managed-identity] em [management-group | subscription | resource-group | resource].
Nome da função | Description |
---|---|
Azure Spring Apps Config Server Reader | Permitir acesso de leitura ao Azure Spring Apps Config Server. |
Azure Spring Apps Config Server Contributor | Permitir leitura, gravação e exclusão de acesso ao Azure Spring Apps Config Server. |
Azure Spring Apps Service Registry Reader | Permita acesso de leitura ao Registro do Serviço do Azure Spring Apps. |
Azure Spring Apps Service Registry Contributor | Permitir leitura, gravação e exclusão de acesso ao Registro do Serviço do Azure Spring Apps. |
Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.
Acessar o servidor de configuração e os pontos de extremidade do registro de serviço
Depois que a função é atribuída, o cessionário pode acessar o Spring Cloud Config Server e os pontos de extremidade do Spring Cloud Service Registry usando os seguintes procedimentos:
Obtenha um token de acesso. Depois que um usuário do Microsoft Entra recebe a função, ele pode usar os seguintes comandos para entrar na CLI do Azure com usuário, entidade de serviço ou identidade gerenciada para obter um token de acesso. Para obter detalhes, consulte Autenticar a CLI do Azure.
az login az account get-access-token
Componha o ponto final. Suportamos os pontos de extremidade padrão do Spring Cloud Config Server e do Spring Cloud Service Registry gerenciados pelo Azure Spring Apps.
- 'https://SERVICE_NAME.svc.azuremicroservices.io/eureka/{path}'
- 'https://SERVICE_NAME.svc.azuremicroservices.io/config/{path}'
Nota
Se estiver a utilizar o Microsoft Azure operado pela 21Vianet, substitua
*.azuremicroservices.io
por*.microservices.azure.cn
. Para obter mais informações, consulte a seção Verificar pontos de extremidade no Azure no guia do desenvolvedor do Microsoft Azure operado pela 21Vianet.Acesse o ponto de extremidade composto com o token de acesso. Coloque o token de acesso em um cabeçalho para fornecer autorização:
--header 'Authorization: Bearer {TOKEN_FROM_PREVIOUS_STEP}'
.Por exemplo:
a. Acesse um ponto de extremidade como
https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health
ver o status de integridade do Config Server.b. Aceda a um ponto de extremidade como
https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps
ver as aplicações registadas no Spring Cloud Service Registry (Eureka aqui).Se a resposta for
401 Unauthorized
, verifique se a função foi atribuída com êxito. Levará vários minutos para que a função entre em vigor ou para verificar se o token de acesso não expirou.
Para obter mais informações sobre o ponto de extremidade do atuador, consulte Pontos de extremidade prontos para produção.
Para os pontos finais Eureka, ver Eureka-REST-operations
Para obter pontos de extremidade do servidor de configuração e informações detalhadas sobre caminhos, consulte ResourceController.java e EncryptionController.java.
Registrar aplicativos do Spring Boot no Spring Cloud Config Server e no Service Registry gerenciado pelo Azure Spring Apps
Depois que a função for atribuída, você poderá registrar aplicativos Spring Boot no Spring Cloud Config Server e no Service Registry gerenciado pelo Azure Spring Apps com autenticação de token Microsoft Entra. O Config Server e o Service Registry suportam o modelo REST personalizado para injetar o token do portador para autenticação.
Para obter mais informações, consulte os exemplos Access Azure Spring Apps managed Config Server e Access Azure Spring Apps managed Service Registry. As seções a seguir explicam alguns detalhes importantes nesses exemplos.
Em AccessTokenManager.java:
AccessTokenManager
é responsável por obter um token de acesso do Microsoft Entra ID. Configure as informações de entrada da entidade de serviço no arquivo application.properties e inicialize ApplicationTokenCredentials
para obter o token. Você pode encontrar esse arquivo em ambos os exemplos.
prop.load(in);
tokenClientId = prop.getProperty("access.token.clientId");
String tenantId = prop.getProperty("access.token.tenantId");
String secret = prop.getProperty("access.token.secret");
String clientId = prop.getProperty("access.token.clientId");
credentials = new ApplicationTokenCredentials(
clientId, tenantId, secret, AzureEnvironment.AZURE);
Em CustomConfigServiceBootstrapConfiguration.java:
CustomConfigServiceBootstrapConfiguration
implementa o modelo REST personalizado para o Config Server e injeta o token do Microsoft Entra ID como Authorization
cabeçalhos. Você pode encontrar esse arquivo no exemplo Config Server.
public class RequestResponseHandlerInterceptor implements ClientHttpRequestInterceptor {
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
String accessToken = AccessTokenManager.getToken();
request.getHeaders().remove(AUTHORIZATION);
request.getHeaders().add(AUTHORIZATION, "Bearer " + accessToken);
ClientHttpResponse response = execution.execute(request, body);
return response;
}
}
Em CustomRestTemplateTransportClientFactories.java:
As duas classes anteriores são para a implementação do modelo REST personalizado para o Spring Cloud Service Registry. A intercept
parte é a mesma que no Config Server acima. Certifique-se de adicionar factory.mappingJacksonHttpMessageConverter()
aos conversores de mensagem. Você pode encontrar esse arquivo no exemplo de Registro do Spring Cloud Service.
private RestTemplate customRestTemplate() {
/*
* Inject your custom rest template
*/
RestTemplate restTemplate = new RestTemplate();
restTemplate.getInterceptors()
.add(new RequestResponseHandlerInterceptor());
RestTemplateTransportClientFactory factory = new RestTemplateTransportClientFactory();
restTemplate.getMessageConverters().add(0, factory.mappingJacksonHttpMessageConverter());
return restTemplate;
}
Se você estiver executando aplicativos em um cluster Kubernetes, recomendamos que use um endereço IP para registrar o Spring Cloud Service Registry para acesso.
eureka.instance.prefer-ip-address=true