Zugreifen auf den Konfigurationsserver und die Dienstregistrierung
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für:✅ Basic/Standard ❎ Enterprise
In diesem Artikel erfahren Sie, wie Sie mithilfe der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Microsoft Entra auf Spring Cloud Config Server und Spring Cloud Service Registry zugreifen, die von Azure Spring Apps verwaltet werden.
Hinweis
Anwendungen, die im Azure Spring Apps-Dienst bereitgestellt und ausgeführt werden, werden automatisch mit der zertifikatbasierten Authentifizierung und Autorisierung vernetzt, wenn sie auf den verwalteten Spring Cloud-Konfigurationsserver (Config Server) und die -Dienstregistrierung zugreifen. Sie müssen diese Anleitung für diese Anwendungen nicht befolgen. Die zugehörigen Zertifikate werden vollständig von der Azure Spring Apps-Plattform verwaltet und automatisch in Ihre Anwendung eingefügt, wenn eine Verbindung mit Config Server und der Dienstregistrierung besteht.
Zuweisen einer Rolle zu einem Microsoft Entra-Benutzer, zu einer Microsoft Entra-Gruppe, zu einer MSI oder zu einem Dienstprinzipal
Weisen Sie die Rolle dem/r [user | group | service-principal | managed-identity] mit dem Umfang [management-group | subscription | resource-group | resource] zu.
Rollenname | Beschreibung |
---|---|
Azure Spring Apps Config Server-Leser | Gewährt Lesezugriff auf den Azure Spring Apps Config Server. |
Azure Spring Apps Config Server-Mitwirkender | Gewährt Lese-, Schreib- und Löschzugriff auf den Azure Spring Apps Config Server. |
Azure Spring Apps Service Registry-Leser | Gewährt Lesezugriff auf die Azure Spring Apps Service Registry. |
Azure Spring Apps Service Registry-Mitwirkender | Gewährt Lese-, Schreib- und Löschzugriff auf die Azure Spring Apps Service Registry. |
Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Zugreifen auf Config Server- und Service Registry-Endpunkte
Nach dem Zuweisen der Rolle kann deren Empfänger auf die Spring Cloud Config Server- und Spring Cloud Service Registry-Endpunkte mithilfe des folgenden Verfahrens zugreifen:
Rufe ein Zugriffstoken ab. Nachdem einem Microsoft Entra-Benutzer die Rolle zugewiesen wurde, kann er sich mithilfe der folgenden Befehle bei der Azure CLI mit Benutzeranmeldeinformationen, einem Dienstprinzipal oder einer verwalteten Identität anmelden, um ein Zugriffstoken zu erhalten. Ausführliche Informationen finden Sie unter Anmelden mit der Azure CLI.
az login az account get-access-token
Erstellen Sie den Endpunkt. Wir unterstützen die Standardendpunkte von Spring Cloud Config Server und Spring Cloud Service Registry, die von Azure Spring Apps verwaltet werden.
- 'https://SERVICE_NAME.svc.azuremicroservices.io/eureka/{path}'
- 'https://SERVICE_NAME.svc.azuremicroservices.io/config/{path}'
Hinweis
Wenn Ihre Microsoft Azure-Instanz von 21Vianet betrieben wird, ersetzen Sie
*.azuremicroservices.io
durch*.microservices.azure.cn
. Weitere Informationen finden Sie im Abschnitt Überprüfen von Endpunkten in Azure im Entwicklerhandbuch zu Microsoft Azure, betrieben von 21Vianet.Greifen Sie mit dem Zugriffstoken auf den erstellten Endpunkt zu. Fügen Sie das Zugriffstoken in einen Header ein, um die Autorisierung zu ermöglichen:
--header 'Authorization: Bearer {TOKEN_FROM_PREVIOUS_STEP}'
.Zum Beispiel:
a. Greifen Sie auf einen Endpunkt wie
https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health
zu, um den Integritätsstatus von Config Server anzuzeigen.b. Greifen Sie auf einen Endpunkt wie
https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps
zu, um die registrierten Apps in Spring Cloud Service Registry (in diesem Fall Eureka) anzuzeigen.Wenn die Antwort
401 Unauthorized
lautet, überprüfen Sie, ob die Rolle erfolgreich zugewiesen wurde. Es dauert einige Minuten, bis die Rolle wirksam wird. Sie können auch überprüfen, ob das Zugriffstoken abgelaufen ist.
Weitere Informationen zum Aktuatorendpunkt finden Sie unter Produktionsbereite Endpunkte.
Informationen zu Eureka-Endpunkten finden Sie unter Eureka-REST-Vorgänge.
Informationen zu Konfigurationsserverendpunkten und ausführlichen Pfadinformationen finden Sie unter ResourceController.java und EncryptionController.java.
Registrieren von Spring Boot-Apps bei Spring Cloud Config Server und der Service Registry, die von Azure Spring Apps verwaltet werden
Nachdem die Rolle zugewiesen wurde, können Sie Spring Boot-Apps bei Spring Cloud Config Server und Service Registry registrieren, die von Azure Spring Apps mit Microsoft Entra-Tokenauthentifizierung verwaltet werden. Sowohl Config Server als auch die Service Registry unterstützen benutzerdefinierte REST-Vorlagen zum Einfügen des Bearertokens für die Authentifizierung.
Weitere Informationen finden Sie in den Beispielen Zugreifen auf den von Azure Spring Apps verwalteten Config Server und Zugreifen auf die von Azure Spring Apps verwaltete Service Registry. In den folgenden Abschnitten werden einige wichtige Details in diesen Beispielen erläutert.
In AccessTokenManager.java:
AccessTokenManager
ist für das Abrufen eines Zugriffstokens aus Microsoft Entra ID verantwortlich. Konfigurieren Sie die Anmeldeinformationen des Dienstprinzipals in der Datei application.properties, und initialisieren Sie ApplicationTokenCredentials
, um das Token abzurufen. Sie finden diese Datei in beiden Beispielen.
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);
In CustomConfigServiceBootstrapConfiguration.java:
CustomConfigServiceBootstrapConfiguration
implementiert die benutzerdefinierte REST-Vorlage für Config Server und fügt das Token aus Microsoft Entra ID als Authorization
-Header ein. Sie finden diese Datei im Config Server-Beispiel.
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;
}
}
In CustomRestTemplateTransportClientFactories.java:
Die vorherigen beiden Klassen dienen zur Implementierung der benutzerdefinierten REST-Vorlage für Spring Cloud Service Registry. Der intercept
-Teil ist mit dem in Config Server weiter oben identisch. Achten Sie darauf, den Nachrichtenkonvertern factory.mappingJacksonHttpMessageConverter()
hinzuzufügen. Sie finden diese Datei im Spring Cloud Service Registry-Beispiel.
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;
}
Wenn Sie Anwendungen in einem Kubernetes-Cluster ausführen, wird empfohlen, eine IP-Adresse zu verwenden, um Spring Cloud Service Registry für den Zugriff zu registrieren.
eureka.instance.prefer-ip-address=true