Share via


Acessar o Servidor de Configuração e o Registro de Serviço

Nota

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

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:

  1. 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
    
  2. 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.

  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. 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 o caminho, 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

Próximos passos