Akses Layanan Config dan Layanan Registry

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk: ✔️ Basic/Standard ❌ Enterprise

Artikel ini menjelaskan cara mengakses Spring Cloud Config Server dan Spring Cloud Service Registry yang dikelola oleh Azure Spring Apps menggunakan kontrol akses berbasis peran (RBAC) Microsoft Entra.

Catatan

Aplikasi yang disebarkan dan dijalankan di dalam layanan Azure Spring Apps secara otomatis terhubung dengan autentikasi dan otorisasi berbasis sertifikat saat mengakses Server Konfigurasi Spring Cloud dan Registri Layanan yang dikelola. Anda tidak perlu mengikuti panduan ini untuk aplikasi ini. Sertifikat terkait dikelola sepenuhnya oleh platform Azure Spring Apps, dan secara otomatis dimasukkan ke dalam aplikasi Anda saat terhubung ke Server Konfigurasi dan Registri Layanan.

Menetapkan peran ke pengguna/grup Microsoft Entra, MSI, atau perwakilan layanan

Tetapkan peran ke ruang lingkup [pengguna | grup | kepala layanan | identitas-terkelola] di [grup-manajemen | berlangganan | kelompok sumber daya | sumber daya].

Nama peran Deskripsi
Pembaca Server Konfigurasi Azure Spring Apps Mengizinkan akses baca ke Konfigurasi Server Azure Spring Apps.
Kontributor Konfigurasi Server Azure Spring Apps Mengizinkan membaca, menulis, dan menghapus akses ke Konfigurasi Server Azure Spring Apps.
Pembaca Registri Layanan Azure Spring Apps Mengizinkan akses baca ke Registri Layanan Azure Spring Apps.
Kontributor Registri Layanan Azure Spring Apps Mengizinkan membaca, menulis, dan menghapus akses ke Registri Layanan Azure Spring Apps.

Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

Mengakses Server Config dan Titik Akhir Registri Layanan

Setelah peran ditetapkan, penerima hak dapat mengakses Server Spring Cloud Config dan titik akhir Registri Layanan Cloud Spring menggunakan prosedur berikut:

  1. Mendapatkan token akses. Setelah pengguna Microsoft Entra diberi peran, mereka dapat menggunakan perintah berikut untuk masuk ke Azure CLI dengan pengguna, perwakilan layanan, atau identitas terkelola untuk mendapatkan token akses. Untuk detailnya, lihat Mengautentikasi Azure CLI.

    az login
    az account get-access-token
    
  2. Membuat titik akhir. Kami mendukung titik akhir default dari Server Spring Cloud Config dan Spring Cloud Service Registry yang dikelola oleh Azure Spring Apps.

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

    Catatan

    Jika Anda menggunakan Microsoft Azure yang dioperasikan oleh 21Vianet, ganti *.azuremicroservices.io dengan *.microservices.azure.cn. Untuk informasi selengkapnya, lihat bagian Periksa titik akhir di Azure di panduan pengembang Microsoft Azure yang dioperasikan oleh 21Vianet.

  3. Akses titik akhir yang disusun dengan token akses. Tempatkan token akses di header untuk memberikan otorisasi: --header 'Authorization: Bearer {TOKEN_FROM_PREVIOUS_STEP}'.

    Misalnya:

    a. Akses titik akhir seperti https://SERVICE_NAME.svc.azuremicroservices.io/config/actuator/health untuk melihat status kesehatan Config Server.

    b. Akses titik akhir seperti https://SERVICE_NAME.svc.azuremicroservices.io/eureka/eureka/apps melihat aplikasi terdaftar di Spring Cloud Service Registry (Eureka di sini).

    Jika responsnya adalah 401 Unauthorized, periksa untuk melihat apakah peran berhasil ditetapkan. Diperlukan beberapa menit agar peran diterapkan atau memverifikasi bahwa token akses belum kedaluwarsa.

Untuk informasi selengkapnya tentang titik akhir aktuator, lihat Titik akhir siap produksi.

Untuk titik akhir Eureka, lihat Eureka-REST-operations

Untuk titik akhir server konfigurasi dan informasi jalur terperinci, lihat ResourceController.java dan EncryptionController.java.

Daftarkan aplikasi Spring Boot ke Spring Cloud Config Server and Service Registry yang dikelola oleh Azure Spring Apps

Setelah peran ditetapkan, Anda dapat mendaftarkan aplikasi Spring Boot ke Spring Cloud Config Server dan Service Registry yang dikelola oleh Azure Spring Apps dengan autentikasi token Microsoft Entra. Server Config dan Service Registry mendukung templat REST kustom untuk menyuntikkan token pembawa untuk autentikasi.

Untuk informasi lebih lanjut, lihat contoh Akses Server Konfigurasi terkelola Azure Spring Apps dan Akses Azure Spring Apps yang dikelola Registri Layanan Spring Cloud. Bagian berikut menjelaskan beberapa detail penting dalam sampel ini.

Di AccessTokenManager.java:

AccessTokenManager bertanggung jawab untuk mendapatkan token akses dari ID Microsoft Entra. Konfigurasikan informasi masuk kepala layanan di file application.properties dan inisialisasi ApplicationTokenCredentials untuk mendapatkan token. Anda dapat menemukan file ini di kedua sampel.

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

Di CustomConfigServiceBootstrapConfiguration.java:

CustomConfigServiceBootstrapConfiguration menerapkan templat REST kustom untuk Config Server dan menyuntikkan token dari ID Microsoft Entra sebagai Authorization header. Anda dapat menemukan file ini di sampel 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;
    }

}

Di CustomRestTemplateTransportClientFactories.java:

Dua kelas sebelumnya adalah untuk implementasi templat REST khusus untuk Spring Cloud Service Registry. Bagian intercept ini sama seperti di Server Config di atas. Pastikan untuk menambahkan factory.mappingJacksonHttpMessageConverter()ke pengonversi pesan. Anda dapat menemukan file ini di sampel 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;
}

Jika Anda menjalankan aplikasi di klaster Kubernetes, kami sarankan Anda menggunakan alamat IP untuk mendaftarkan Spring Cloud Service Registry untuk akses.

eureka.instance.prefer-ip-address=true

Langkah berikutnya