Dostęp do serwera konfiguracji i rejestru usług

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ❌ Enterprise

W tym artykule wyjaśniono, jak uzyskać dostęp do serwera Spring Cloud Config Server i usługi Spring Cloud Service Registry zarządzanego przez usługę Azure Spring Apps przy użyciu kontroli dostępu opartej na rolach (RBAC) firmy Microsoft.

Uwaga

Aplikacje wdrożone i uruchomione w usłudze Azure Spring Apps są automatycznie połączone z uwierzytelnianiem opartym na certyfikatach i autoryzacją podczas uzyskiwania dostępu do zarządzanego serwera Spring Cloud Config Server i rejestru usług. Nie musisz przestrzegać tych wskazówek dla tych aplikacji. Powiązane certyfikaty są w pełni zarządzane przez platformę Azure Spring Apps i są automatycznie wstrzykiwane w aplikacji po nawiązaniu połączenia z serwerem konfiguracji i rejestrem usług.

Przypisywanie roli do użytkownika/grupy firmy Microsoft, tożsamości usługi zarządzanej lub jednostki usługi

Przypisz rolę do zakresu [user | group | service-principal | managed-identity] pod adresem [management-group | subscription | resource-group | resource-resource].

Nazwa roli opis
Czytelnik serwera konfiguracji usługi Azure Spring Apps Zezwalaj na dostęp do odczytu do serwera konfiguracji usługi Azure Spring Apps.
Współautor serwera konfiguracji usługi Azure Spring Apps Zezwalaj na dostęp do odczytu, zapisu i usuwania z serwera konfiguracji usługi Azure Spring Apps.
Czytelnik rejestru usługi Azure Spring Apps Zezwalaj na dostęp do odczytu do rejestru usługi Azure Spring Apps Service.
Współautor rejestru usługi Azure Spring Apps Zezwalaj na dostęp do odczytu, zapisu i usuwania z rejestru usługi Azure Spring Apps Service.

Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

Uzyskiwanie dostępu do punktów końcowych serwera konfiguracji i rejestru usług

Po przypisaniu roli osoba przypisana może uzyskać dostęp do serwera Spring Cloud Config Server i punktów końcowych usługi Spring Cloud Service Registry przy użyciu następujących procedur:

  1. Uzyskiwanie tokenu dostępu. Gdy użytkownik firmy Microsoft Entra ma przypisaną rolę, może użyć następujących poleceń, aby zalogować się do interfejsu wiersza polecenia platformy Azure przy użyciu użytkownika, jednostki usługi lub tożsamości zarządzanej w celu uzyskania tokenu dostępu. Aby uzyskać szczegółowe informacje, zobacz Uwierzytelnianie interfejsu wiersza polecenia platformy Azure.

    az login
    az account get-access-token
    
  2. Utwórz punkt końcowy. Obsługujemy domyślne punkty końcowe serwera Spring Cloud Config Server i rejestru Spring Cloud Service Registry zarządzanego przez usługę Azure Spring Apps.

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

    Uwaga

    Jeśli używasz platformy Microsoft Azure obsługiwanej przez firmę 21Vianet, zastąp ciąg *.azuremicroservices.io .*.microservices.azure.cn Aby uzyskać więcej informacji, zobacz sekcję Sprawdzanie punktów końcowych na platformie Azure na platformie Microsoft Azure obsługiwanych przez firmę 21Vianet — przewodnik dla deweloperów.

  3. Uzyskaj dostęp do złożonego punktu końcowego przy użyciu tokenu dostępu. Umieść token dostępu w nagłówku, aby zapewnić autoryzację: --header 'Authorization: Bearer {TOKEN_FROM_PREVIOUS_STEP}'.

    Na przykład:

    a. Uzyskaj dostęp do punktu końcowego, na przykład https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health , aby wyświetlić stan kondycji serwera konfiguracji.

    b. Uzyskaj dostęp do punktu końcowego, takiego jak https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps wyświetlanie zarejestrowanych aplikacji w usłudze Spring Cloud Service Registry (eureka tutaj).

    Jeśli odpowiedź to 401 Unauthorized, sprawdź, czy rola została pomyślnie przypisana. Wykonanie roli lub sprawdzenie, czy token dostępu nie wygasł, potrwa kilka minut.

Aby uzyskać więcej informacji na temat punktu końcowego siłownika, zobacz Produkcyjne gotowe punkty końcowe.

Aby uzyskać informacje o punktach końcowych Eureka, zobacz Eureka-REST-operations

Aby uzyskać szczegółowe informacje o punktach końcowych serwera konfiguracji i ścieżkach, zobacz ResourceController.java i EncryptionController.java.

Rejestrowanie aplikacji Spring Boot w programie Spring Cloud Config Server i rejestrze usług zarządzanym przez usługę Azure Spring Apps

Po przypisaniu roli możesz zarejestrować aplikacje Spring Boot na serwerze Spring Cloud Config Server i rejestrze usług zarządzanym przez usługę Azure Spring Apps przy użyciu uwierzytelniania tokenu entra firmy Microsoft. Zarówno serwer konfiguracji, jak i rejestr usług obsługują niestandardowy szablon REST w celu wstrzyknięcia tokenu elementu nośnego do uwierzytelniania.

Aby uzyskać więcej informacji, zobacz przykłady Access Azure Spring Apps managed Config Server (Dostęp do zarządzanego serwera konfiguracji usługi Azure Spring Apps) i Access Azure Spring Apps managed Service Registry (Uzyskiwanie dostępu do zarządzanego rejestru usług Azure Spring Apps). W poniższych sekcjach opisano niektóre ważne szczegóły w tych przykładach.

W AccessTokenManager.java:

AccessTokenManager jest odpowiedzialny za uzyskanie tokenu dostępu z identyfikatora Entra firmy Microsoft. Skonfiguruj informacje logowania jednostki usługi w pliku application.properties i zainicjuj ApplicationTokenCredentials , aby uzyskać token. Ten plik można znaleźć w obu przykładach.

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

W CustomConfigServiceBootstrapConfiguration.java:

CustomConfigServiceBootstrapConfiguration implementuje niestandardowy szablon REST dla serwera konfiguracji i wprowadza token z identyfikatora Entra firmy Microsoft jako Authorization nagłówki. Ten plik można znaleźć w przykładzie serwera konfiguracji.

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

}

W CustomRestTemplateTransportClientFactories.java:

Poprzednie dwie klasy służą do implementacji niestandardowego szablonu REST dla usługi Spring Cloud Service Registry. Część intercept jest taka sama jak w powyższym serwerze konfiguracji. Pamiętaj, aby dodać factory.mappingJacksonHttpMessageConverter() do konwerterów komunikatów. Ten plik można znaleźć w przykładzie spring Cloud Service Registry.

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

Jeśli używasz aplikacji w klastrze Kubernetes, zalecamy użycie adresu IP do zarejestrowania rejestru Spring Cloud Service Registry w celu uzyskania dostępu.

eureka.instance.prefer-ip-address=true

Następne kroki