

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menerapkan otentikasi berbasis Microsoft Entra ID dalam aplikasi mainframe modern AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani dan Rimpy Tewani, Amazon Web Services*

## Ringkasan
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-summary"></a>

**catatan**  
AWS Mainframe Modernization Layanan (Managed Runtime Environment experience) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Aplikasi mainframe yang dimodernisasi dengan menggunakan pola refactoring, seperti yang oleh [AWS Mainframe Modernization Refactor with AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), memerlukan integrasi mekanisme otentikasi yang cermat ke dalam arsitektur aplikasi baru. Integrasi ini biasanya ditujukan sebagai kegiatan pasca-modernisasi. Tugas dapat menjadi kompleks dan sering melibatkan migrasi atau eksternalisasi sistem otentikasi yang ada untuk menyelaraskan dengan standar keamanan modern dan praktik cloud-native. Pengembang perlu mempertimbangkan cara menerapkan otentikasi secara efektif saat mereka bekerja dalam batasan lingkungan runtime dan pustaka aplikasi yang dimodernisasi. Setelah modernisasi, AWS menyediakan cara untuk memudahkan Anda mengintegrasikan kode modern AWS Blu Age Anda dengan identitas dan sistem manajemen akses seperti Amazon [Cognito dan](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) (sebelumnya dikenal sebagai Azure AD).

Pola ini menjelaskan cara menerapkan mekanisme otentikasi dalam aplikasi modern Anda ketika penyedia otentikasi adalah Microsoft Entra ID, tanpa menghabiskan waktu untuk penelitian dan uji coba. Pola ini menyediakan:
+ Pustaka Angular yang teruji lapangan dan relevan dari Microsoft Authentication Library (MSAL) dan dokumentasi Microsoft Entra ID lainnya yang penting untuk implementasi otentikasi. 
+ Konfigurasi yang diperlukan pada AWS Blu Age Runtime untuk mengaktifkan Spring Security dengan menggunakan 2.0. OAuth 
+ Pustaka yang menangkap identitas pengguna yang diautentikasi dan meneruskannya ke Blu Age AWS Runtime.
+ Langkah-langkah keamanan yang kami rekomendasikan untuk diterapkan.
+ Kiat pemecahan masalah untuk masalah yang umum ditemui dengan pengaturan Microsoft Entra ID.

**catatan**  
Pola ini menggunakan pustaka OAuth ekstensi AWS Blu Age, yang disediakan untuk pelanggan sebagai bagian dari keterlibatan [Layanan AWS Profesional](https://aws.amazon.com/professional-services/) mereka. Perpustakaan ini bukan bagian dari AWS Blu Age Runtime.

## Prasyarat dan batasan
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Prasyarat**
+ Aplikasi modern yang diproduksi oleh alat refactoring modernisasi mainframe AWS Blu Age. Pola ini digunakan [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)sebagai contoh aplikasi mainframe open source.
+ Perpustakaan OAuth ekstensi AWS Blu Age, yang disediakan oleh tim AWS Blu Age selama keterlibatan Anda dengan Layanan [AWS Profesional](https://aws.amazon.com/professional-services/).
+ Aktif Akun AWS untuk menyebarkan dan menguji aplikasi modern.
+ Keakraban dengan file konfigurasi AWS Blu Age dan dasar-dasar Microsoft Entra ID.

**Batasan**
+ Pola ini mencakup otentikasi OAuth 2.0 dan alur otorisasi berbasis token dasar. Skenario otorisasi lanjutan dan mekanisme kontrol akses berbutir halus tidak dalam cakupan.
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**

Pola ini dikembangkan dengan menggunakan:
+ AWS Blu Age Runtime versi 4.1.0 (polanya juga berfungsi dengan versi yang lebih baru yang kompatibel ke belakang)
+ Pustaka MSAL versi 3.0.23
+ Kit Pengembangan Java (JDK) versi 17
+ Versi sudut 16.1

## Arsitektur
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-architecture"></a>

**Tumpukan teknologi sumber**

Dalam lingkungan mainframe yang khas, otentikasi diimplementasikan melalui profil pengguna. Profil ini mengidentifikasi pengguna ke sistem, menentukan siapa yang dapat masuk, dan menentukan fungsi mana yang dapat dilakukan pengguna pada sumber daya sistem. Profil pengguna dikelola oleh petugas keamanan atau administrator keamanan.

**Tumpukan teknologi target**
+ ID Microsoft Entra
+ Backend berbasis Java Spring Boot yang dimodernisasi
+ AWS Blu Age Runtime
+ Keamanan Musim Semi dengan OAuth 2.0
+ Aplikasi satu halaman sudut (SPA)

**Arsitektur target**

AWS Blu Age runtime mendukung otentikasi OAuth berbasis 2.0 secara default, sehingga pola menggunakan standar itu untuk melindungi backend. APIs

Diagram berikut menggambarkan aliran proses.

**catatan**  
Diagram mencakup Amazon Aurora sebagai contoh modernisasi basis data meskipun Aurora tidak termasuk dalam langkah-langkah untuk pola ini.

![\[Alur proses untuk otentikasi berbasis Entra ID untuk aplikasi AWS Blu Age.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


di mana:

1. Pengguna mencoba mengautentikasi dengan Microsoft Entra ID.

1. Microsoft Entra ID mengembalikan token refresh, akses, dan ID yang digunakan aplikasi dalam panggilan berikutnya.

1. Pencegat MSAL menyertakan token akses di `Authorization` header permintaan HTTPS untuk memanggil AWS Blu Age Runtime.

1. `extension-oauth`Pustaka AWS Blu Age mengekstrak informasi pengguna dari header dengan menggunakan file konfigurasi AWS Blu Age Runtime (`application-main.yml`) dan menempatkan informasi ini dalam `SharedContext` objek sehingga logika bisnis dapat menggunakannya.
**catatan**  
`SharedContext`adalah komponen runtime yang disediakan oleh AWS Blu Age yang mengelola konteks aplikasi dan informasi status di seluruh aplikasi modern. Untuk informasi selengkapnya tentang komponen dan pembaruan AWS Blu Age Runtime, lihat [catatan rilis AWS Blu Age di dokumentasi](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html). AWS Mainframe Modernization Untuk informasi selengkapnya tentang `application-main.yml` file, lihat [Mengatur konfigurasi untuk AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) dalam dokumentasi. AWS Mainframe Modernization 

1.  AWS Blu Age Runtime memeriksa apakah token ada. 

   1. Jika token ada, ia memeriksa validitas token dengan berkomunikasi dengan Microsoft Entra ID. 

   1. Jika token tidak ada, AWS Blu Age Runtime mengembalikan kesalahan dengan kode status HTTP 403.

1. Jika token valid, AWS Blue Age Runtime memungkinkan logika bisnis untuk melanjutkan. Jika token tidak valid, AWS Blu Age Runtime mengembalikan kesalahan dengan kode status HTTP 403.

**OAuth Alur kerja 2.0**

Untuk diagram tingkat tinggi alur kerja OAuth 2.0, lihat dokumentasi [Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

## Alat
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools"></a>

**Layanan AWS**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)menyediakan alat dan sumber daya untuk membantu Anda merencanakan dan mengimplementasikan migrasi dan modernisasi dari mainframe ke lingkungan runtime AWS terkelola. Anda dapat menggunakan fitur refactoring layanan ini, yang disediakan oleh AWS Blu Age, untuk mengonversi dan memodernisasi aplikasi mainframe lama Anda.

**catatan**  
AWS Mainframe Modernization Layanan (Managed Runtime Environment experience) tidak lagi terbuka untuk pelanggan baru. Untuk kemampuan yang mirip dengan AWS Mainframe Modernization Service (Managed Runtime Environment experience) jelajahi AWS Mainframe Modernization Service (Self-Managed Experience). Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS Mainframe Modernization ketersediaan](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Repositori kode**

 CardDemo Aplikasi telah diperbarui untuk menunjukkan integrasi dengan Microsoft Entra ID. Anda dapat mengakses kode dari [GitHub repositori untuk pola ini](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app).

**Konfigurasi backend**

Pola ini memerlukan perubahan pada file `application-main.yml`**** konfigurasi untuk mengaktifkan Spring Security dengan menggunakan OAuth 2.0 pada aplikasi backend.  `.yml`File terlihat seperti ini:

```
gapwalk-application.security: enabled
gapwalk-application:
  security: 
    identity: oauth
    issuerUri: ${issuerUrl}
    claim:
      claims:
        -
          claimName: upn
          claimMapValue: username
spring:
  autoconfigure:
    exclude:
     - org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration
     - org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration
  security:
    oauth2:
      client:
        registration: 
          azure:
            client-id: {clientId}
            client-secret: ${clientSecret}
            provider: azure
            authorization-grant-type: authorization_code
            redirect-uri: ${redirectUri}
            scope: openid
           
        provider:
          azure:
            authorization-uri: ${gapwalk-application.security.issuerUri}/oauth2/v2.0/authorize
            token-uri:  ${gapwalk-application.security.issuerUri}/oauth2/v2.0/token
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
```

**AWS Pustaka filter OAuth ekstensi Blu Age**

Perpustakaan OAuth ekstensi AWS Blu Age disediakan oleh tim AWS Blu Age selama keterlibatan Anda dengan Layanan [AWS Profesional](https://aws.amazon.com/professional-services/).

Pustaka ini membaca `claim.claims` konfigurasi dalam `application-main.yml` fie yang ditampilkan di blok kode sebelumnya. Konfigurasi ini adalah daftar. Setiap item dalam daftar memberikan dua nilai: `claimName` dan`claimMapValue`. `claimName`merupakan nama kunci dalam JSON Web Token (JWT) yang dikirim oleh frontend, dan `claimMapValue` merupakan nama kunci dalam. `SharedContext` Misalnya, jika Anda ingin menangkap ID pengguna di backend, atur `claimName` ke nama kunci di JWT yang menyimpan `userId` yang disediakan oleh Microsoft Entra ID, dan atur `claimMapValue` ke nama kunci untuk mengambil ID pengguna dalam kode backend.

Misalnya, jika Anda mengatur `UserId``claimMapValue`, Anda dapat menggunakan kode berikut untuk mengekstrak ID pengguna:

```
SharedContext.get().getValue("userId", [UserId]);
```

## Praktik terbaik
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Dalam penerapan pola ini, pertimbangkan pertimbangan keamanan penting berikut.

**penting**  
Pola ini memberikan dasar untuk integrasi otentikasi. Kami menyarankan Anda menerapkan langkah-langkah keamanan selain yang dibahas di bagian ini berdasarkan persyaratan bisnis Anda sebelum Anda menyebarkannya ke produksi.
+ **AWS keamanan konfigurasi.**Pindahkan nilai konfigurasi sensitif dari `application-main.yml` ke AWS Secrets Manager. Misalnya, konfigurasikan properti berikut dengan menggunakan Secrets Manager:

  ```
  security:
      oauth2:
        client:
          registration: 
            azure:
              client-id: {clientId}
              client-secret: ${clientSecret}
  ```

  Untuk informasi selengkapnya tentang cara menggunakan Secrets Manager untuk mengonfigurasi parameter AWS Blu Age, lihat [Rahasia AWS Blu Age Runtime di dokumentasi](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html). AWS Mainframe Modernization 
+ **Perlindungan lingkungan runtime.** Konfigurasikan lingkungan aplikasi modern dengan kontrol AWS keamanan yang tepat:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Pencatatan Amazon.** Pertimbangkan untuk menambahkan file`logback-spring.xml to src/main/resources`:

  ```
  <configuration> 
   <appender name="CLOUDWATCH" class="com.amazonaws.services.logs.logback.CloudWatchAppender">  
     <logGroup>/aws/bluage/application</logGroup> 
     <logStream>${AWS_REGION}-${ENVIRONMENT}</logStream> 
     <layout> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </layout> 
   </appender> 
  
   <root level="INFO"> 
   <appender-ref ref="CLOUDWATCH"/> 
   </root> 
  </configuration>
  ```

  Untuk informasi tentang mengaktifkan penelusuran dengan CloudWatch, lihat [Mengaktifkan jejak untuk mencatat korelasi dalam dokumentasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html). CloudWatch 
+ **Konfigurasi dan penanganan token.** Konfigurasikan masa pakai token di Microsoft Entra ID agar selaras dengan persyaratan keamanan Anda. Tetapkan token akses untuk kedaluwarsa dalam 1 jam dan refresh token untuk kedaluwarsa dalam 24 jam. Dalam konfigurasi AWS Blu Age Runtime (`application-main.yml`), pastikan validasi JWT dikonfigurasi dengan benar dengan URI penerbit dan nilai audiens yang tepat dari pendaftaran aplikasi Entra ID Anda.

  Saat token kedaluwarsa dan di-refresh:

  1. Pencegat kesalahan aplikasi Angular menangani respons 401 dengan mendapatkan token baru melalui MSAL.

  1. Token baru dikirim dengan permintaan berikutnya.

  1.  OAuth Filter AWS Blu Age Runtime memvalidasi token baru dan secara otomatis memperbarui `SharedContext` dengan informasi pengguna saat ini. Ini memastikan bahwa logika bisnis terus memiliki akses ke konteks pengguna yang valid melalui `SharedContext.get().getValue()` panggilan.

  Untuk informasi selengkapnya tentang komponen AWS Blu Age Runtime dan pembaruannya, lihat catatan rilis [AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Keamanan Runtime AWS Blu Age.** `oauth2-ext`Pustaka yang disediakan oleh AWS Blu Age harus ditempatkan di lokasi direktori bersama yang benar (`{app-server-home}/shared/`) dengan izin file yang tepat. Verifikasi bahwa pustaka berhasil mengekstrak informasi pengguna JWTs dengan memeriksa populasi `SharedContext` objek di log Anda.
+ **Konfigurasi klaim khusus.** Dalam`application-main.yml`, tentukan klaim yang Anda butuhkan dari Microsoft Entra ID secara eksplisit. Misalnya, untuk menangkap email dan peran pengguna, tentukan:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Penanganan kesalahan.** Tambahkan penanganan kesalahan untuk mengatasi kegagalan otentikasi di aplikasi Angular Anda; misalnya:

  ```
  @Injectable()
  export class AuthErrorInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
      return next.handle(request).pipe(
        catchError((error: HttpErrorResponse) => {
          if (error.status === 401) {
            // Handle token expiration
            this.authService.login();
          }
          if (error.status === 403) {
            // Handle unauthorized access
            this.router.navigate(['/unauthorized']);
          }
          return throwError(() => error);
        })
      );
    }
  }
  ```
+ **Konfigurasi batas waktu sesi.** Konfigurasikan pengaturan batas waktu sesi di AWS Blu Age Runtime dan Microsoft Entra ID. Misalnya, tambahkan kode berikut ke `application-main.yml` file Anda:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Anda harus menerapkan MsalGuard fitur untuk semua rute yang dilindungi untuk mencegah akses yang tidak sah. Contoh:

  ```
  const routes: Routes = [
      { path: '', redirectTo: '/transaction-runner', pathMatch: 'full' },
      { path: 'transaction-runner', component: TransactionRunnerComponent, canActivate:guards },
      { path: 'user-info', component: UserInfoComponent, canActivate:guards },
      { path: 'term/:transid/:commarea', component: TermComponent, canActivate:guards },
  	{ path: 'code', component: TransactionRunnerComponent  }
  ];
  ```

  Rute yang tidak memiliki MsalGuard perlindungan akan dapat diakses tanpa otentikasi, berpotensi mengekspos fungsionalitas sensitif. Pastikan bahwa semua rute yang memerlukan otentikasi menyertakan penjaga dalam konfigurasinya.

## Epik
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-epics"></a>

### Mengatur ID Microsoft Entra
<a name="set-up-a-microsoft-entra-id"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan akun Microsoft Azure untuk membuat ID Entra. | Untuk opsi dan instruksi, lihat [situs web Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Pengembang aplikasi | 
| Siapkan ID Microsoft Entra di aplikasi Anda. | [Untuk mempelajari cara menambahkan otentikasi Microsoft Entra ID B2C (Azure AD B2C) ke Angular SPA Anda, lihat dokumentasi Microsoft.](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components) Secara khusus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Pengembang aplikasi | 

### Kloning repositori dan terapkan kode Blu Age Anda AWS
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning GitHub repositori untuk mendapatkan kode Angular yang diperlukan untuk otentikasi. | Jalankan perintah berikut untuk mengkloning [GitHub repositori](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) yang disediakan dengan pola ini ke direktori kerja lokal Anda saat ini:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Pengembang aplikasi | 
| Terapkan kode modern AWS Blu Age di server Tomcat untuk mengimplementasikan otentikasi. | Untuk mengatur lingkungan lokal yang mencakup Tomcat dan server pengembangan Angular, ikuti langkah-langkah instalasi yang disediakan oleh tim AWS Blu Age sebagai bagian dari keterlibatan pelanggan Anda dengan Layanan AWS Profesional. | Pengembang aplikasi | 

### Bangun solusi otentikasi
<a name="build-the-authentication-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Aktifkan keamanan AWS Blu Age Runtime untuk melindungi titik akhir AWS Blu Age REST API. | Konfigurasikan `application-main.yml` file yang digunakan AWS Blu Age Runtime sebagai berikut. Untuk contoh file ini, lihat bagian [Repositori kode](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) sebelumnya dalam pola ini.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Pengembang aplikasi | 
| Masukkan kode contoh dari lingkungan lokal Anda ke dalam basis kode Angular modern Blu Age Anda. | Untuk informasi tentang cara memasukkan contoh ke dalam basis kode Angular modern AWS Blu Age Anda, lihat bagian [repositori Kode sebelumnya](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) dalam pola ini. | Pengembang aplikasi | 
| Tempatkan `oauth2-ext` perpustakaan di direktori bersama. | **Tempatkan `oauth2-ext` perpustakaan di direktori**** bersama server aplikasi sehingga aplikasi modern **AWS **Blu Age Anda dapat menggunakannya.**Jalankan perintah berikut:<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Pengembang aplikasi | 

### Menyebarkan solusi otentikasi
<a name="deploy-the-authentication-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan aplikasi frontend. | Jalankan perintah berikut untuk memulai aplikasi frontend secara lokal:<pre>npm install <br />ng serve --ssl<br />npm start</pre>Menambahkan `--ssl` flag ke `ng serve` perintah memastikan bahwa server pengembangan menggunakan HTTPS, yang lebih aman daripada protokol lain dan memberikan simulasi lingkungan produksi yang lebih baik. | Pengembang aplikasi | 
| Mulai aplikasi backend. | Mulai server Tomcat di Eclipse. | Pengembang aplikasi | 

### Uji aplikasi
<a name="test-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji fungsionalitas login. | Akses aplikasi yang digunakan secara lokal di `http://localhost:4200` untuk memverifikasi bahwa pengguna diminta untuk mengonfirmasi identitas mereka.HTTP digunakan di sini untuk tujuan demonstrasi. Dalam produksi atau lingkungan lain yang dapat diakses publik, Anda harus menggunakan HTTPS untuk keamanan. Bahkan untuk pengembangan lokal, kami menyarankan Anda mengatur HTTPS jika memungkinkan.Prompt login Microsoft akan muncul, dan pengguna yang dikonfigurasi di Microsoft Entra ID harus diizinkan untuk mengakses aplikasi. | Pengembang aplikasi | 
| Uji header otorisasi dalam permintaan. | Langkah-langkah berikut menggunakan [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)aplikasi sebagai contoh. Langkah-langkah pengujian untuk aplikasi modern lainnya akan bervariasi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Pengembang aplikasi | 
| Uji fungsionalitas logout. | Pilih **Keluar** untuk keluar, dan coba akses aplikasi lagi. Ini harus menyajikan prompt login baru. | Pengembang aplikasi | 

## Pemecahan masalah
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Token yang dikeluarkan oleh Microsoft Entra ID tidak kompatibel dengan keamanan Spring Boot OAuth 2.0. | Untuk penyelesaian masalah ini, lihat [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) di OAuth blog. | 
| Pertanyaan umum terkait token. | [Untuk memecahkan kode dan melihat konten token JWT, gunakan situs web https://jwt.io/.](https://jwt.io/) | 

## Sumber daya terkait
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Untuk informasi tentang refactoring aplikasi Anda dengan menggunakan AWS Blu Age, lihat dokumentasi.AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Untuk memahami cara kerja OAuth 2.0, lihat situs [web OAuth 2.0](https://oauth.net/2/).
+ Untuk gambaran umum tentang Microsoft Authentication Library (MSAL), lihat dokumentasi [Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Untuk informasi tentang profil pengguna pada sistem AS/400, lihat [IBM i (AS400) tutorial](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ [Untuk alur otentikasi OAuth 2.0 dan OpenID Connect (OIDC) di platform identitas Microsoft, lihat dokumentasi Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)