Access Config Server och Service Registry
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
Den här artikeln gäller för: ✔️ Basic/Standard ❌ Enterprise
Den här artikeln beskriver hur du kommer åt Spring Cloud Config Server och Spring Cloud Service Registry som hanteras av Azure Spring Apps med hjälp av rollbaserad åtkomstkontroll i Microsoft Entra (RBAC).
Kommentar
Program som distribueras och körs i Azure Spring Apps-tjänsten kopplas automatiskt upp med certifikatbaserad autentisering och auktorisering vid åtkomst till den hanterade Spring Cloud Config Server och Service Registry. Du behöver inte följa den här vägledningen för dessa program. De relaterade certifikaten hanteras helt av Azure Spring Apps-plattformen och matas automatiskt in i ditt program när de är anslutna till Config Server och Service Registry.
Tilldela rollen till Microsoft Entra-användare/grupp, MSI eller tjänstens huvudnamn
Tilldela rollen till [användare | grupp | tjänsthuvudnamn | hanterad identitet] i [hanteringsgrupp | prenumeration | resursgrupp | resurs] omfång.
Rollnamn | beskrivning |
---|---|
Azure Spring Apps-konfigurationsserverläsare | Tillåt läsåtkomst till Azure Spring Apps Config Server. |
Azure Spring Apps-konfigurationsserverdeltagare | Tillåt läs-, skriv- och borttagningsåtkomst till Azure Spring Apps Config Server. |
Registerläsare för Azure Spring Apps-tjänsten | Tillåt läsåtkomst till Azure Spring Apps Service Registry. |
Azure Spring Apps Service Registry-deltagare | Tillåt läs-, skriv- och borttagningsåtkomst till Azure Spring Apps Service Registry. |
Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.
Åtkomstkonfigurationsserver och tjänstregisterslutpunkter
När rollen har tilldelats kan den tilldelade personen komma åt Spring Cloud Config Server och Spring Cloud Service Registry-slutpunkterna med hjälp av följande procedurer:
Hämta en åtkomsttoken. När en Microsoft Entra-användare har tilldelats rollen kan de använda följande kommandon för att logga in på Azure CLI med användaren, tjänstens huvudnamn eller hanterade identitet för att hämta en åtkomsttoken. Mer information finns i Autentisera Azure CLI.
az login az account get-access-token
Skriv slutpunkten. Vi stöder standardslutpunkterna för Spring Cloud Config Server och Spring Cloud Service Registry som hanteras av Azure Spring Apps.
- 'https://SERVICE_NAME.svc.azuremicroservices.io/eureka/{path}'
- 'https://SERVICE_NAME.svc.azuremicroservices.io/config/{path}'
Kommentar
Om du använder Microsoft Azure som drivs av 21Vianet ersätter
*.azuremicroservices.io
du med*.microservices.azure.cn
. Mer information finns i avsnittet Kontrollera slutpunkter i Azure i utvecklarhandboken för Microsoft Azure som drivs av 21Vianet.Få åtkomst till den sammansatta slutpunkten med åtkomsttoken. Placera åtkomsttoken i en rubrik för att ge auktorisering:
--header 'Authorization: Bearer {TOKEN_FROM_PREVIOUS_STEP}'
.Till exempel:
a. Få åtkomst till en slutpunkt som
https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health
om du vill se hälsostatusen för konfigurationsservern.b. Få åtkomst till en slutpunkt som
https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps
om du vill se registrerade appar i Spring Cloud Service Registry (Eureka här).Om svaret är
401 Unauthorized
kontrollerar du om rollen har tilldelats. Det tar flera minuter innan rollen börjar gälla eller för att verifiera att åtkomsttoken inte har upphört att gälla.
Mer information om aktuatorslutpunkten finns i Produktionsklara slutpunkter.
För Eureka-slutpunkter, se Eureka-REST-operations
Information om konfigurationsserverslutpunkter och detaljerad sökväg finns i ResourceController.java och EncryptionController.java.
Registrera Spring Boot-appar till Spring Cloud Config Server och Service Registry som hanteras av Azure Spring Apps
När rollen har tilldelats kan du registrera Spring Boot-appar till Spring Cloud Config Server och Service Registry som hanteras av Azure Spring Apps med Microsoft Entra-tokenautentisering. Både Config Server och Service Registry stöder anpassad REST-mall för att mata in ägartoken för autentisering.
Mer information finns i exemplen Access Azure Spring Apps managed Config Server and Access Azure Spring Apps managed Service Registry. I följande avsnitt beskrivs några viktiga detaljer i de här exemplen.
I AccessTokenManager.java:
AccessTokenManager
ansvarar för att hämta en åtkomsttoken från Microsoft Entra-ID. Konfigurera inloggningsinformationen för tjänstens huvudnamn i filen application.properties och initiera ApplicationTokenCredentials
för att hämta token. Du hittar den här filen i båda exemplen.
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);
I CustomConfigServiceBootstrapConfiguration.java:
CustomConfigServiceBootstrapConfiguration
implementerar den anpassade REST-mallen för Config Server och matar in token från Microsoft Entra ID som Authorization
rubriker. Du hittar den här filen i Config Server-exemplet.
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;
}
}
I CustomRestTemplateTransportClientFactories.java:
De föregående två klasserna är till för implementeringen av den anpassade REST-mallen för Spring Cloud Service Registry. Delen intercept
är densamma som i konfigurationsservern ovan. Se till att lägga factory.mappingJacksonHttpMessageConverter()
till i meddelandekonverterarna. Du hittar den här filen i Spring Cloud Service Registry-exemplet.
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;
}
Om du kör program i ett Kubernetes-kluster rekommenderar vi att du använder en IP-adress för att registrera Spring Cloud Service Registry för åtkomst.
eureka.instance.prefer-ip-address=true