Belajar Secret Management - Authentication Methods (Token, AppRole, Userpass, OIDC)
Episode 8 of 21

Belajar Secret Management - Authentication Methods (Token, AppRole, Userpass, OIDC)

Memahami bagaimana pengguna dan mesin mengidentifikasi diri ke OpenBao lewat auth method, membedakan tipe token service, batch, periodic, dan orphan, serta mengaktifkan userpass, SSO OIDC, dan AppRole untuk kebutuhan autentikasi yang berbeda.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Pada episode 7 kalian membuat policy yang menentukan hak akses. Namun policy tanpa identitas hanyalah aturan di atas kertas — dibutuhkan sesuatu yang membuktikan "siapa" kalian. Episode 8 ini membahas Authentication Methods: mekanisme bagi pengguna dan mesin untuk mengidentifikasi diri ke OpenBao dan memperoleh token yang membawa policy. Pilih auth method yang tepat, dan urusan login selesai dengan sendirinya.

Apa itu Authentication Method

Authentication method adalah pintu masuk ke OpenBao. Setiap auth method menghasilkan token yang membawa identitas dan policy. Enginenya diaktifkan dengan bao auth enable dan menempati path auth/<nama>.

Berikut perbandingan cepat auth method yang umum:

Auth MethodUntuk siapaIdentitasPerintah aktivasi
tokenSemuaTokenSudah aktif secara default
userpassManusiaUsername + passwordbao auth enable userpass
approleMesin / serviceRoleID + SecretIDbao auth enable approle
oidcManusia (SSO)Provider OIDCbao auth enable oidc
githubDeveloperToken GitHubbao auth enable github
oktaManusiaAkun Oktabao auth enable okta
azureMesin / manusiaAzure ADbao auth enable azure

Pada intinya, auth method mengubah kredensial eksternal menjadi token internal OpenBao. Setelah punya token, aturan selanjutnya ditentukan oleh policy dari episode 7.

Token Auth Method dan Tipe Token

Auth method token selalu ada dan tidak bisa dimatikan — bahkan login lewat auth method lain pun pada akhirnya mengeluarkan token. OpenBao memiliki empat tipe token dengan karakter yang berbeda:

Tipe TokenKarakteristikKapan dipakai
ServiceDefault, bisa diperpanjang, punya parentHampir semua kasus
BatchRingan, tanpa lease metadata, tidak bisa diperpanjangRequest volume tinggi, klien stateless
PeriodicTTL diperbarui otomatis oleh token root, tidak pernah habis selama aktifDaemon atau job berjalan panjang
OrphanTidak punya parent, tidak ikut tercabut saat parent di-revokeToken lintas sesi yang harus hidup mandiri

Token service bisa di-lookup, di-renew, dan di-revoke secara individual. Token batch sangat ringan sehingga cocok untuk beban tinggi, tetapi tidak membawa metadata lease dan tidak bisa diperbarui. Token periodic dipakai untuk proses yang berjalan terus-menerus, sementara orphan melindungi token dari efek samping pencabutan token induknya.

Contoh membuat berbagai tipe token:

Membuat berbagai tipe token
bao token create -policy=my-policy
bao token create -type=batch -policy=my-policy
bao token create -type=periodic -period=24h -policy=my-policy
bao token create -orphan -policy=my-policy

Human Auth Methods: userpass

Untuk manusia, auth method paling sederhana adalah userpass — login dengan username dan password. Aktifkan lalu buat penggunanya:

Mengaktifkan userpass dan membuat user
bao auth enable userpass
bao write auth/userpass/users/budi \
  password="sandiKuat123" \
  token_policies="my-policy"

bao auth enable userpass mengaktifkan engine di path auth/userpass. Setelah itu budi bisa login dengan bao login -method=userpass username=budi dan memasukkan password yang tadi dibuat — dan token yang didapat membawa policy my-policy.

SSO untuk Manusia: OIDC dan Sejenisnya

Untuk skala tim yang lebih besar, autentikasi manual satu per satu tidak praktis. Di sinilah SSO masuk. OpenBao mendukung OIDC secara native, plus integrasi dengan penyedia populer:

  • OIDC — standar modern berbasis OpenID Connect; cocok dengan Authelia, Authentik, Keycloak, dan provider sejenis.
  • GitHub — developer cukup login dengan token GitHub pribadinya.
  • Okta — akun perusahaan yang sudah terpusat di Okta.
  • Azure AD — identitas dari Microsoft Entra ID.

Alurnya serupa untuk semua penyedia: aktifkan engine, konfigurasikan client_id, client_secret, dan redirect_uri, lalu petakan klaim identitas ke policy. Setelahnya, pengguna login lewat browser dan token dikeluarkan secara otomatis. Satu akun SSO bisa membawa beberapa policy sekaligus — misalnya mapping dari group Okta ke policy tertentu.

Machine-to-Machine: AppRole

Untuk aplikasi dan microservice, tidak ada manusia yang terlibat — mesin yang harus login. Auth method approle adalah standar de facto untuk kebutuhan ini, menggunakan dua bagian kredensial:

  • RoleID — identitas statis yang mirip username; sering disimpan sebagai file konfigurasi.
  • SecretID — kredensial dinamis yang mirip password; dibuat satu per satu dan punya TTL sendiri.

Langkah penyiapannya:

Membuat AppRole untuk aplikasi
bao auth enable approle
bao write auth/approle/role/my-app \
  token_policies="my-policy" \
  secret_id_ttl="1h" \
  token_ttl="1h"
bao read auth/approle/role/my-app/role-id
bao write -f auth/approle/role/my-app/secret-id

Aplikasi menyimpan role_id dan secret_id, lalu melakukan login:

Login AppRole
bao write auth/approle/login \
  role_id="9c1f..." \
  secret_id="d4a8..."

Responsnya berupa token yang siap dipakai. Karena SecretID punya TTL, aplikasi yang baik login ulang secara berkala — konsep yang akan kembali kita pakai di episode 10 dan 11. Keunggulan AppRole: tidak ada password manusia, rotasi mudah, dan setiap aplikasi punya identitasnya sendiri yang bisa dicabut tanpa mengganggu aplikasi lain.

Important

Perlakukan secret_id seperti password: batasi TTL-nya, putar secara rutin, dan jangan pernah menuliskannya di kode atau repository. role_id boleh disimpan sebagai file konfigurasi, tetapi secret_id harus datang dari sumber rahasia — misalnya dari secret yang disimpan di OpenBao itu sendiri.

Penutup

Pada episode 8 ini kalian memahami auth method sebagai pintu masuk identitas: tipe-tipe token dari service sampai orphan, autentikasi manusia lewat userpass dan SSO OIDC, serta autentikasi machine-to-machine memakai AppRole dengan RoleID dan SecretID.

Inti yang harus dibawa pulang:

  • Token adalah identitas, policy adalah hak — keduanya selalu berpasangan.
  • Pilih tipe token sesuai beban — batch untuk beban tinggi, periodic untuk daemon panjang.
  • AppRole untuk mesin, userpass atau OIDC untuk manusia — sesuaikan dengan siapa yang login.
  • SecretID harus berumur pendek — TTL ketat dan rotasi rutin mencegah penyalahgunaan.

Di episode 9 berikutnya, kita mengikuti jejak secret dinamis setelah ia lahir: Lease Management — apa itu Lease ID dan TTL, bagaimana memperpanjangnya, dan bagaimana mencabut akses seketika saat kebocoran terjadi.

Belajar Secret Management - Authentication Methods (Token, AppRole, Userpass, OIDC) | Belajar Secret Management dengan OpenBao