Acessar o Config Server e o Registro do Serviço

Observação

Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos como capturas de tela, vídeos e diagramas.

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 pelo Azure Spring Apps usando o RBAC (controle de acesso baseado em função) 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 ao 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. Depois que um usuário do Microsoft Entra recebe a função, ele pode usar os comandos a seguir 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 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 obter mais informações, consulte 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 ê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 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

Depois que a função for atribuída, você poderá registrar aplicativos Spring Boot no Spring Cloud Config Server e no Service Registry gerenciados pelo Azure Spring Apps com autenticação de token 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 Config Server e injeta o token do Microsoft Entra ID como Authorization cabeçalhos. 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