Compartilhar via


Acesse o Config Server e o Registro do Serviço

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 artigo explica como acessar o Spring Cloud Config Server e o Spring Cloud Service Registry gerenciados pelos Aplicativos Spring do Azure usando o controle de acesso baseado em função (RBAC) do Microsoft Entra.

Observação

Aplicativos implantados e em execução dentro do serviço Azure Spring Apps são conectados automaticamente com autenticação e autorização baseadas em certificado ao acessar o Registro de Serviço e o Config Server do Spring Cloud. Você não precisa seguir estas diretrizes para esses aplicativos. 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 Registro de Serviço.

Atribuir função a usuário/grupo do Microsoft Entra, MSI ou entidade de serviço

Atribua a função ao [usuário | grupo | entidade de serviço | identidade gerenciada] no escopo [grupo de gerenciamento | assinatura | grupo de recursos | recurso].

Nome da função Descrição
Leitor do Config Server do Azure Spring Apps Permita acesso de leitura ao Config Server do Azure Spring Apps.
Colaborador do Config Server do Azure Spring Apps Permita acesso de leitura, gravação e exclusão ao Config Server do Azure Spring Apps.
Leitor do Registro de Serviço do Azure Spring Apps Permita acesso de leitura ao Registro de Serviço do Azure Spring Apps.
Colaborador do Registro de Serviço do Azure Spring Apps Permita acesso de leitura, gravação e exclusão ao Registro de Serviço do Azure Spring Apps.

Para ver as etapas detalhadas, confira Atribuir funções do Azure usando o portal do Azure.

Acesse o Config Server e Pontos de Extremidade do Registro do Serviço

Depois que a função for atribuída, o destinatário poderá acessar o Config Server do Spring Cloud e os pontos de extremidade do registro de serviço do Spring Cloud usando os seguintes procedimentos:

  1. Obtenha um token de acesso. Após um usuário do Microsoft Entra ser atribuído à função, ele poderá usar os seguintes comandos para se conectar ao CLI do Azure com o usuário, entidade de serviço ou identidade gerenciada para obter um token de acesso. Para obter detalhes, consulte Autenticar CLI do Azure.

    az login
    az account get-access-token
    
  2. Componha o ponto de extremidade. Damos suporte aos pontos de extremidade padrão do Config Server do Spring Cloud e do Registro de Serviço do Spring Cloud gerenciados pelo Azure Spring Apps.

    • 'https://SERVICE_NAME.svc.azuremicroservices.io/eureka/{path}'
    • 'https://SERVICE_NAME.svc.azuremicroservices.io/config/{path}'

    Observação

    Se você estiver usando o Microsoft Azure operado pela 21Vianet, substitua *.azuremicroservices.io por *.microservices.azure.cn. Para mais informações, confira a seção Verificar pontos de extremidade no Azure no guia do desenvolvedor do Microsoft Azure operado pela 21Vianet.

  3. 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. Acessar um ponto de extremidade como https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health para ver o status de integridade do Config Server.

    b. Acessar um ponto de extremidade como https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps para ver os aplicativos registrados no registro de serviço do Spring Cloud (aqui, Eureka).

    Se a resposta for 401 Unauthorized, verifique se a função foi atribuída com sucesso. Levará vários minutos para que a função entre em vigor ou para verificar se o token de acesso não expirou.

Para saber mais sobre o ponto de extremidade do atuador, confira Pontos de extremidade prontos para produção.

Para pontos de extremidade Eureka, confira Eureka-REST-operations

Para obter pontos de extremidade do servidor de configuração e informações detalhadas de caminho, confira ResourceController.java e EncryptionController.java.

Registrar aplicativos Spring Boot no Registro de Serviço e no Config Server do Spring Cloud gerenciados pelo Azure Spring Apps

Após a função ser atribuída, você poderá registrar aplicativos Spring Boot no Spring Cloud Config Server e no Service Registry gerenciados pelos Aplicativos Spring do Azure com autenticação de token do Microsoft Entra. O Config Server e o Registro de Serviço dão suporte ao modelo REST personalizado para injetar o token de portador para autenticação.

Para saber mais, confira as amostras Acesso ao Config Server gerenciado pelo Azure Spring Apps e Acesso ao Registro de Serviço gerenciado pelo Azure Spring Apps. As seções a seguir explicam alguns detalhes importantes nessas amostras.

Em AccessTokenManager.java:

AccessTokenManager é responsável por obter um token de acesso do Microsoft Entra ID. Configure as informações de login da entidade de serviço no arquivo application.properties e inicialize ApplicationTokenCredentials para obter o token. Você pode encontrar esse arquivo em ambas as amostras.

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 Servidor de Configuração e injeta o token do Microsoft Entra ID como cabeçalhos Authorization. Você pode encontrar este arquivo na amostra do 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;
    }

}

No CustomRestTemplateTransportClientFactories.java:

As duas classes anteriores são para a implementação do modelo REST personalizado para o Registro de Serviço do Spring Cloud. A parte intercept é igual ao Config Server acima. Adicione factory.mappingJacksonHttpMessageConverter() aos conversores de mensagem. Você pode encontrar este arquivo na amostra do Registro de Serviço do Spring Cloud.

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 de Kubernetes, recomendamos o uso de um endereço IP para registrar o Registro de Serviço do Spring Cloud para acesso.

eureka.instance.prefer-ip-address=true

Próximas etapas