Compartir vía


Acceso a Config Server y Service Registry

Nota:

Los planes de Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retiro de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan de consumo estándar y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para obtener más información, consulte Migrar el plan de consumo y dedicado Azure Spring Apps Standard a Azure Container Apps.

Este artículo se aplica a:✅ Basic/Standard ❎ Enterprise

En este artículo se explica cómo acceder a Spring Cloud Config Server y Spring Cloud Service Registry administrado por Azure Spring Apps mediante el control de acceso basado en roles (RBAC) de Microsoft Entra.

Nota:

Las aplicaciones implementadas y que se ejecutan dentro del servicio Azure Spring Apps se conectan automáticamente con la autenticación y autorización basadas en certificados al acceder a los servicios administrados Spring Cloud Config Server y Service Registry. No es necesario seguir estas instrucciones para estas aplicaciones. La plataforma Azure Spring Apps administra totalmente los certificados relacionados, que se insertan automáticamente en la aplicación cuando se conectan a Config Server y Service Registry.

Asignación de roles a Microsoft Entra usuario/grupo, MSI o entidad de servicio

Asigne el rol al [usuario | grupo | entidad de servicio | identidad administrada] en el ámbito de [grupo de administración | suscripción | grupo de recursos | recurso].

Nombre de rol Descripción
Lector de Config Server de Azure Spring Apps Permite el acceso de lectura a Config Server de Azure Spring Apps.
Colaborador de Config Server de Azure Spring Apps Permite el acceso de lectura, escritura y eliminación en Config Server de Azure Spring Apps.
Lector del registro de servicios de Azure Spring Apps Permite el acceso de lectura en el registro de servicios de Azure Spring Apps.
Colaborador del registro de servicios de Azure Spring Apps Permite el acceso de lectura, escritura y eliminación en el registro de servicios de Azure Spring Apps.

Para acceder a los pasos detallados, vea Asignación de roles de Azure mediante Azure Portal.

Acceso a los puntos de conexión de Config Server y Service Registry

Una vez asignado el rol, el usuario asignado puede acceder a los puntos de conexión de Config Server y Service Registry de Spring Cloud mediante estos procedimientos:

  1. Obtén un token de acceso. Una vez asignado el rol a un usuario de Microsoft Entra, puede usar los siguientes comandos para iniciar sesión en la CLI de Azure con el usuario, la entidad de servicio o la identidad administrada para obtener un token de acceso. Para obtener más información, consulte Autenticación en la CLI de Azure.

    az login
    az account get-access-token
    
  2. Cree el extremo. Se admiten los puntos de conexión predeterminados de Config Server y del registro de servicios de Spring Cloud administrados por Azure Spring Apps.

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

    Nota:

    Si usa Microsoft Azure operado por 21Vianet, reemplace *.azuremicroservices.io por *.microservices.azure.cn. Para más información, consulte la sección Comprobación de puntos de conexión en Azure en la guía para desarrolladores de 21Vianet operado por Microsoft Azure.

  3. Acceda al punto de conexión creado con el token de acceso. Coloque el token de acceso en un encabezado para proporcionar autorización: --header 'Authorization: Bearer {TOKEN_FROM_PREVIOUS_STEP}'.

    Por ejemplo:

    a. Acceda a un punto de conexión como https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health para ver el estado de mantenimiento de Config Server.

    b. Acceda a un punto de conexión como https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps para ver las aplicaciones registradas en Service Registry de Spring Cloud (Eureka aquí).

    Si la respuesta es 401 Unauthorized, compruebe si el rol se ha asignado correctamente. El rol tardará varios minutos en entrar en vigor o en comprobar que el token de acceso no haya expirado.

Para más información sobre el punto de conexión del accionador, consulte Puntos de conexión listos para producción.

Para los puntos de conexión de Eureka, consulte Operaciones de REST de Eureka.

Para los puntos de conexión del servidor de configuración y la información detallada de la ruta de acceso, consulte ResourceController.java y EncryptionController.java.

Registro de aplicaciones de Spring Boot en Config Server y el registro de servicios de Spring Cloud administrados por Azure Spring Apps

Una vez asignado el rol, puede registrar aplicaciones de Spring Boot en Spring Cloud Config Server y el Registro de servicios administrados por Azure Spring Apps con autenticación de token de Microsoft Entra. Tanto Config Server como Service Registry admiten la plantilla de REST personalizada para insertar el token de portador para la autenticación.

Para más información, consulte los ejemplos de Acceso a Config Server administrado por Azure Spring Apps y Acceso al registro de servicios administrado por Azure Spring Apps. En las secciones siguientes se explican algunos detalles importantes de estos ejemplos.

En AccessTokenManager.java:

AccessTokenManager es responsable de obtener un token de acceso de Microsoft Entra ID. Configure la información de inicio de sesión de la entidad de servicio en el archivo application.properties e inicialice ApplicationTokenCredentials para obtener el token. Puede encontrar este archivo en ambos ejemplos.

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);

En CustomConfigServiceBootstrapConfiguration.java:

CustomConfigServiceBootstrapConfiguration implementa la plantilla REST personalizada para Config Server e inserta el token de Microsoft Entra ID como Authorizationencabezados. Este archivo se encuentra en el ejemplo de 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;
    }

}

En CustomRestTemplateTransportClientFactories.java:

Las dos clases anteriores son para la implementación de la plantilla de REST personalizada para Service Registry de Spring Cloud. La parte intercept es la misma que se mostró anteriormente para Config Server. Asegúrese de agregar a factory.mappingJacksonHttpMessageConverter() los convertidores de mensajes. Puede encontrar este archivo en el ejemplo de Service Registry de 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;
}

Si ejecuta aplicaciones en un clúster de Kubernetes, se recomienda usar una dirección IP para registrar Service Registry de Spring Cloud para el acceso.

eureka.instance.prefer-ip-address=true

Pasos siguientes