Access Yapılandırma Sunucusu ve Hizmet Kayıt Defteri

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ❌ Kurumsal

Bu makalede, Microsoft Entra rol tabanlı erişim denetimi (RBAC) kullanılarak Azure Spring Apps tarafından yönetilen Spring Cloud Config Server ve Spring Cloud Service Registry'ye nasıl erişilebileceğini açıklar.

Not

Azure Spring Apps hizmetinde dağıtılan ve çalıştırılan uygulamalar, yönetilen Spring Cloud Config Sunucusu ve Hizmet Kayıt Defteri'ne erişirken otomatik olarak sertifika tabanlı kimlik doğrulaması ve yetkilendirme ile bağlanır. Bu uygulamalar için bu yönergeleri izlemeniz gerekmez. İlgili sertifikalar Azure Spring Apps platformu tarafından tamamen yönetilir ve Config Server ve Service Registry'ye bağlanıldığında uygulamanıza otomatik olarak eklenir.

Microsoft Entra kullanıcı/grubu, MSI veya hizmet sorumlusuna rol atama

Rolü [management-group | subscription | resource-group | resource] kapsamındaki [user | group | service-principal | managed-identity] öğesine atayın.

Rol adı Açıklama
Azure Spring Apps Yapılandırma Sunucusu Okuyucusu Azure Spring Apps Config Server'a okuma erişimine izin verin.
Azure Spring Apps Yapılandırma Sunucusu Katkıda Bulunanı Azure Spring Apps Config Server'a okuma, yazma ve silme erişimine izin verin.
Azure Spring Apps Service Kayıt Defteri Okuyucusu Azure Spring Apps Service Registry'ye okuma erişimine izin verin.
Azure Spring Apps Service Kayıt Defteri Katkıda Bulunanı Azure Spring Apps Service Registry'ye okuma, yazma ve silme erişimine izin verin.

Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.

Access Yapılandırma Sunucusu ve Hizmet Kayıt Defteri Uç Noktaları

Rol atandıktan sonra, atanan aşağıdaki yordamları kullanarak Spring Cloud Config Server ve Spring Cloud Service Registry uç noktalarına erişebilir:

  1. Erişim belirteci alma. Bir Microsoft Entra kullanıcısına rol atandıktan sonra, erişim belirteci almak üzere kullanıcı, hizmet sorumlusu veya yönetilen kimlikle Azure CLI'da oturum açmak için aşağıdaki komutları kullanabilir. Ayrıntılar için bkz . Azure CLI kimliğini doğrulama.

    az login
    az account get-access-token
    
  2. Uç noktayı oluşturma. Azure Spring Apps tarafından yönetilen Spring Cloud Config Server ve Spring Cloud Service Registry'nin varsayılan uç noktalarını destekliyoruz.

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

    Not

    21Vianet tarafından sağlanan Microsoft Azure kullanıyorsanız değerini ile *.microservices.azure.cndeğiştirin*.azuremicroservices.io. Daha fazla bilgi için 21Vianet geliştirici kılavuzu tarafından sağlanan Microsoft Azure'da Azure'da uç noktaları denetleme bölümüne bakın.

  3. Oluşturulan uç noktaya erişim belirteci ile erişin. Yetkilendirme sağlamak için erişim belirtecini üst bilgi içine yerleştirin: --header 'Authorization: Bearer {TOKEN_FROM_PREVIOUS_STEP}'.

    Örneğin:

    a. Config Server'ın sistem durumunu görmek için gibi https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health bir uç noktaya erişin.

    b. Spring Cloud Service Registry'de kayıtlı uygulamaları görmek gibi https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps bir uç noktaya erişin (eureka burada).

    Yanıt ise 401 Unauthorized, rolün başarıyla atanmış olup olmadığını denetleyin. Rolün geçerlilik kazanması veya erişim belirtecinin süresinin dolmadığını doğrulaması birkaç dakika sürer.

Aktüatör uç noktası hakkında daha fazla bilgi için bkz . Üretime hazır uç noktalar.

Eureka uç noktaları için bkz . Eureka-REST-operations

Yapılandırma sunucusu uç noktaları ve ayrıntılı yol bilgileri için bkz . ResourceController.java ve EncryptionController.java.

Spring Boot uygulamalarını Azure Spring Apps tarafından yönetilen Spring Cloud Config Server ve Service Registry'ye kaydetme

Rol atandıktan sonra Spring Boot uygulamalarını Microsoft Entra belirteci kimlik doğrulamasıyla Azure Spring Apps tarafından yönetilen Spring Cloud Config Server ve Service Registry'ye kaydedebilirsiniz. Hem Yapılandırma Sunucusu hem de Hizmet Kayıt Defteri, kimlik doğrulaması için taşıyıcı belirteci eklemek üzere özel REST şablonunu destekler.

Daha fazla bilgi için bkz . Access Azure Spring Apps yönetilen Yapılandırma Sunucusu ve Access Azure Spring Apps yönetilen Hizmet Kayıt Defteri. Aşağıdaki bölümlerde bu örneklerdeki bazı önemli ayrıntılar açıklanmaktadır.

AccessTokenManager.java:

AccessTokenManager , Microsoft Entra Id'den erişim belirteci almaktan sorumludur. Application.properties dosyasında hizmet sorumlusunun oturum açma bilgilerini yapılandırın ve belirteci almak için başlatınApplicationTokenCredentials. Bu dosyayı her iki örnekte de bulabilirsiniz.

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

CustomConfigServiceBootstrapConfiguration.java:

CustomConfigServiceBootstrapConfiguration Yapılandırma Sunucusu için özel REST şablonunu uygular ve Microsoft Entra Id'den belirteci üst bilgi olarak Authorization ekler. Bu dosyayı Yapılandırma Sunucusu örneğinde bulabilirsiniz.

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

}

CustomRestTemplateTransportClientFactories.java:

Önceki iki sınıf Spring Cloud Service Registry için özel REST şablonunun uygulanmasına yöneliktir. Bu intercept bölüm yukarıdaki Yapılandırma Sunucusu ile aynıdır. İleti dönüştürücülerine eklediğinizden factory.mappingJacksonHttpMessageConverter() emin olun. Bu dosyayı Spring Cloud Service Registry örneğinde bulabilirsiniz.

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

Uygulamaları kubernetes kümesinde çalıştırıyorsanız, Spring Cloud Service Registry'yi erişim için kaydetmek için bir IP adresi kullanmanızı öneririz.

eureka.instance.prefer-ip-address=true

Sonraki adımlar