Skip to content

M09 · Bab 4± 55 menitDraf AI

OAuth2 dan OpenID Connect

Tujuan belajar

  • Menjelaskan empat peran OAuth2 (resource owner, client, authorization server, resource server)
  • Memilih flow yang tepat — Authorization Code + PKCE untuk aplikasi pengguna, Client Credentials untuk server-ke-server
  • Membedakan access token dan ID token OIDC, serta scope dan role
  • Menjalankan Keycloak lewat Docker dan menghubungkan resource server Spring dengan issuer-uri
  • Memetakan role Keycloak (realm_access.roles) menjadi authority Spring Security

Prasyarat: JWT untuk API

Kuis

6 soal · lulus bila minimal 70% benar

1.Aplikasi mobile toko online ingin pengguna login lewat Keycloak lalu memanggil API pesanan. Flow OAuth2 mana yang tepat?
2.Apa output program yang menghitung code_challenge S256 dari verifier dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk (vektor uji RFC 7636), bila dijalankan dua kali?
3.Layanan billing perlu memanggil API inventory setiap malam tanpa ada pengguna yang login. Flow apa yang dipakai?
4.Frontend mengirim ID token OIDC ke API pesanan sebagai bearer token, dan resource server menolaknya dengan 401. Penyebab paling mungkin?
5.Resource server memakai issuer-uri: http://localhost:8180/realms/tokoku. Saat dijalankan di Docker Compose, aplikasi diubah memakai http://keycloak:8080/realms/tokoku, sementara token tetap didapat pengguna lewat localhost:8180. Semua request kini 401. Kenapa?
6.Token Keycloak berisi realm_access.roles: [ADMIN], tetapi hasRole("ADMIN") selalu ditolak 403 dengan konfigurasi o.jwt(Customizer.withDefaults()). Apa yang kurang?

Jawab semua soal dulu (0/6)