Episode ini membedah Keystone sebagai gerbang identitas OpenStack: domain, project, user, group, dan role sebagai fondasi RBAC, autentikasi token Fernet yang stateless dan ringan, serta integrasi federasi LDAP/AD, SAML, dan OIDC untuk single sign-on.

Dari enam core service yang kita kenal di episode 2, Keystone pantas mendapat episode sendiri. Mengapa? Karena tanpa Keystone, tidak ada satu pun service lain yang bisa diakses. Setiap request — dari CLI, dashboard, hingga service antar komponen — harus diautentikasi lebih dulu oleh Keystone. Dia bukan sekadar "login", melainkan fondasi keamanan seluruh cluster.
Episode 3 membedah Keystone dari konsep paling atas hingga bawah: perannya sebagai gerbang utama, model domain-project-user-group-role, token Fernet, RBAC policy, dan federasi dengan LDAP/AD/SAML/OIDC.
Ketika kalian menjalankan openstack server create, CLI pertama-tama meminta token dari Keystone. Token itu lalu dikirim bersama setiap request berikutnya. Service tujuan memverifikasi token ke Keystone sebelum memproses permintaan.
CLI/Dashboard → Keystone (minta token) → token diterbitkan
→ Nova API + token → Keystone (verifikasi) → prosesAlur ini menjamin dua hal: authentication (siapa yang meminta) dan authorization (boleh tidak melakukan aksi). Keduanya diatur oleh struktur identitas Keystone yang kita bahas berikutnya.
Mulai dari cakupan terbesar hingga terkecil: domain menaungi beberapa project, di dalam project ada user dan group, dan setiap user diberi role yang menentukan hak akses. Gabungan inilah yang menjadi dasar RBAC.
Domain adalah batas isolasi tertinggi, cocok untuk memisahkan entitas organisasi besar — misalnya domain mitra-a dan mitra-b di satu cloud. Setiap user, project, dan group berada di dalam satu domain. Default installation memakai domain Default; banyak deployment produksi menambahkan domain per organisasi untuk multi-tenancy tingkat atas.
openstack domain listProject — dulu disebut tenant — adalah unit isolasi resource. VM, network, volume, dan image yang dibuat berada di dalam satu project dan tidak terlihat project lain. Ini cara OpenStack menerapkan multi-tenancy: tim A dan tim B bisa berbagi satu cloud tanpa saling mengganggu.
openstack project create --domain default proyek-risetopenstack project create --domain default proyek-riset membuat project di dalam domain default. Setiap project punya kuota sendiri yang dibatasi admin.
User adalah identitas seseorang atau service (service account) yang bisa masuk ke cloud. Group mengumpulkan banyak user untuk memudahkan pemberian role sekaligus. Alih-alih memberi role ke 20 user satu per satu, kalian cukup memberi role ke satu group.
openstack user create --project proyek-riset --password rahasia1 budi
openstack group create tim-riset
openstack group add user tim-riset budiRole menentukan apa yang boleh dilakukan user di sebuah project. Tiga role bawaan yang paling sering dipakai:
| Role | Hak |
|---|---|
admin | Akses penuh manajemen resource dan project |
member | Mengelola resource di dalam project |
reader | Hanya baca, tanpa perubahan |
openstack role add --project proyek-riset --user budi memberSetelah openstack role add --project proyek-riset --user budi member, user budi bisa mengelola resource di project proyek-riset tapi tidak bisa menghapus project itu sendiri. Hak yang lebih ketat diatur lewat file policy.yaml — detail di episode 17.
Keystone menerbitkan token untuk setiap sesi autentikasi. Sejak rilis Kilo, format default adalah Fernet token: token yang dienkripsi dan stateless. Artinya, Keystone tidak perlu menyimpan token di database untuk memvalidasinya — semua informasi ada di dalam token itu sendiri.
openstack token issueOutput openstack token issue menampilkan token, project scope, dan waktu kedaluwarsa. Karena Fernet stateless, token sangat ringan untuk divalidasi — skala besar sekalipun tetap cepat. Token default berlaku beberapa jam, lalu user harus autentikasi ulang.
Token Fernet dienkripsi dengan kunci yang disimpan di fernet_keys. Untuk produksi multi-node, kunci ini harus disinkronkan antar node dan dirotasi berkala. Jika kunci hilang, semua token yang beredar menjadi tidak valid.
Perusahaan besar tidak ingin membuat user cloud satu per satu. Keystone bisa membaca identitas dari LDAP atau Active Directory sebagai identity backend. User yang sudah ada di AD langsung bisa masuk ke OpenStack tanpa dibuat ulang — keanggotaan group dan atribut ikut tersinkronisasi.
Untuk single sign-on (SSO), Keystone mendukung SAML dan OpenID Connect (OIDC). Dengan SAML, login dilakukan di IdP eksternal (misalnya Okta atau ADFS) lalu di-mapping ke project dan role OpenStack. Federasi ini mengubah OpenStack menjadi bagian dari ekosistem identitas perusahaan.
Info
Prinsip terpenting federasi: identitas dikelola di luar OpenStack, sedangkan authorization tetap ditentukan role dan policy di dalam OpenStack. Jangan pernah memberi role admin ke grup federasi tanpa mapping yang ketat.
Episode 3 membuat kalian memahami Keystone sebagai gerbang utama: struktur domain-project-user-group-role untuk RBAC, token Fernet yang stateless dan ringan, serta federasi LDAP/AD/SAML/OIDC untuk SSO. Keystone bukan sekadar login — dia adalah arsitektur identitas yang mengamankan multi-tenancy.
Inti yang harus dibawa pulang:
admin, member, dan reader adalah dasar RBAC bawaan.Di episode 4 selanjutnya kita akan membahas Glance (Image Service) dan Nova (Compute Service) — mengelola cloud image dengan format QCOW2, membuat instance pertama dengan CLI, memahami flavor, dan menjalankan operasi lifecycle seperti start, stop, reboot, resize, hingga snapshot. Inilah momen di mana kalian menciptakan VM pertama dari cloud.