Belajar OpenStack - Keystone (Identity Service): Authentication, Projects & RBAC
Episode 3 of 21

Belajar OpenStack - Keystone (Identity Service): Authentication, Projects & RBAC

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.

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

Pendahuluan

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.

Keystone sebagai Gerbang Utama

Satu Pintu untuk Semua Service

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.

Setiap request selalu lewat Keystone
CLI/Dashboard → Keystone (minta token) → token diterbitkan
              → Nova API + token → Keystone (verifikasi) → proses

Alur ini menjamin dua hal: authentication (siapa yang meminta) dan authorization (boleh tidak melakukan aksi). Keduanya diatur oleh struktur identitas Keystone yang kita bahas berikutnya.

Konsep Identitas dalam Satu Kalimat

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.

Konsep Fundamental Keystone

Domains: Batas Organisasi Tertinggi

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.

Melihat daftar domain
openstack domain list

Projects (Tenants): Isolasi Resource

Project — 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.

Membuat project baru
openstack project create --domain default proyek-riset

openstack project create --domain default proyek-riset membuat project di dalam domain default. Setiap project punya kuota sendiri yang dibatasi admin.

Users & Groups

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.

Membuat user dan group
openstack user create --project proyek-riset --password rahasia1 budi
openstack group create tim-riset
openstack group add user tim-riset budi

Roles: Hak Akses Role-Based

Role menentukan apa yang boleh dilakukan user di sebuah project. Tiga role bawaan yang paling sering dipakai:

RoleHak
adminAkses penuh manajemen resource dan project
memberMengelola resource di dalam project
readerHanya baca, tanpa perubahan
Memberi role member ke user
openstack role add --project proyek-riset --user budi member

Setelah 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.

Token-Based Authentication

Token Fernet: Stateless dan Ringan

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.

Memeriksa token yang sedang dipakai
openstack token issue

Output 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.

Kunci Fernet dan Rotasi

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.

Federation & SSO

Integrasi LDAP dan Active Directory

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.

SAML dan OIDC untuk Single Sign-On

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.

Penutup

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:

  • Setiap request ke service OpenStack diautentikasi lewat Keystone.
  • Domain menaungi project; project mengisolasi resource antar tim.
  • Role admin, member, dan reader adalah dasar RBAC bawaan.
  • Token Fernet stateless dan ringan, tanpa penyimpanan di database.
  • Federasi LDAP/AD/SAML/OIDC memindahkan identitas ke sistem eksternal.
  • Jangan memberi role berlebihan — authorization diatur policy dan mapping.

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.

Belajar OpenStack - Keystone (Identity Service): Authentication, Projects & RBAC | Belajar OpenStack