Apa itu XACML (Extensible Access Control Markup Language)?
Extensible Access Control Markup Language adalah bahasa kebijakan kontrol akses berbasis atribut atau bahasa berbasis XML, yang dirancang untuk mengekspresikan kebijakan keamanan dan permintaan akses ke informasi.
XACML dapat digunakan untuk layanan web, manajemen hak digital, dan aplikasi keamanan perusahaan. XACML kadang-kadang disebut sebagai Extensible Access Control Language.
Apa saja kasus penggunaan XACML?
XACML digunakan untuk mempromosikan interoperabilitas dan terminologi umum untuk implementasi kontrol akses, di mana atribut akses yang terkait dengan pengguna digunakan untuk memutuskan apakah pengguna dapat memiliki akses ke sumber daya tertentu.
Selain sebagai kontrol akses berbasis atribut, XACML juga dapat digunakan sebagai kontrol akses berbasis peran (RBAC). Namun, perlu dicatat bahwa XACML tidak menangani manajemen akses pengguna, persetujuan, atau kata sandi.
XACML hanya menyediakan hal-hal berikut:
- sebuah arsitektur kontrol akses yang berisi titik keputusan kebijakan (Policy Decision Point) dan titik penegakan kebijakan (Policy Enforcement Point); dan
- kebijakan otorisasi yang dapat menunjukkan berbagai kebijakan kontrol akses.
Bagaimana sejarah XACML?
Disahkan oleh Organization for the Advancement of Structured Information Standards (OASIS) pada Februari 2003, XACML 1.0 dikembangkan untuk menstandarkan kontrol akses melalui XML. Misalnya, dengan XACML, seorang pekerja dapat mengakses beberapa situs web afiliasi dengan satu login.
Spesifikasi XACML dikembangkan melalui upaya kolaboratif anggota OASIS termasuk IBM, Sun Microsystems, dan Entrust.
Versi terbaru adalah XACML 3.0, yang dirilis oleh OASIS pada Januari 2013.
OASIS-OPEN.ORG
Terminologi XACML
Berikut adalah istilah-istilah yang digunakan dalam kebijakan XACML.
Policy Administration Point (PAP). PAP adalah titik yang mengelola kebijakan otorisasi akses.
Policy Decision Point (PDP). Ini adalah titik di mana permintaan akses dievaluasi terhadap kebijakan otorisasi sebelum mengeluarkan keputusan akses.
Policy Enforcement Point (PEP). PEP adalah tempat permintaan akses pengguna dicegat untuk membuat permintaan keputusan ke PDP.
Alur tipikal dari permintaan XACML adalah sebagai berikut:
- Seorang pengguna mengirimkan permintaan yang dicegat di PEP.
- PEP mengonversi permintaan menjadi permintaan XACML.
- PEP mengirimkan permintaan ke PDP.
- PDP mengevaluasi permintaan otorisasi terhadap kebijakan akses yang telah dikonfigurasikan. Kebijakan tersebut dikelola di PAP. Jika perlu, nilai atribut dari Policy Information Points juga dapat diambil.
- Akhirnya, di PDP dibuat keputusan, yang akan berupa “Permit,” “Deny,” “NotApplicable,” atau “Indeterminate,” dan dikembalikan dalam bentuk boolean ke PEP.
Elemen kebijakan XACML
Berikut adalah ikhtisar tingkat tinggi dari berbagai elemen yang membentuk kebijakan XACML.
Struktur
Struktur XACML dibagi menjadi tiga bagian berikut:
- PolicySet
- Policy
- Rule (ruleID)
Atribut
Semua set kebijakan, permintaan, dan set aturan menggunakan sumber daya, subjek, lingkungan, dan tindakan. Ini biasanya dinyatakan dalam sintaks XACML sebagai “attributeID.”
- Subjek (access-subject) adalah entitas yang meminta akses.
- Sumber daya dapat berupa layanan, data, atau komponen sistem.
- Sebuah tindakan (action-ID) mengacu pada jenis akses yang diminta.
- Lingkungan mengacu pada elemen yang dapat memberikan informasi tambahan jika diperlukan.
Target
Bahasa XACML mendefinisikan target, yaitu kondisi untuk sumber daya, subjek, atau tindakan yang diperlukan untuk memenuhi persyaratan akses dan memberikan keputusan otorisasi.
Orientasi pengembang
Sejak pembuatannya, Komite Teknis XACML telah membuat profil baru untuk memfasilitasi integrasi pengembang, termasuk yang berikut:
- Profil REST dari XACML;
- Profil JSON dari XACML; dan
- Profil ALFA dari XACML.
Dengan profil-profil ini, integrasi otorisasi ke dalam aplikasi telah menjadi lebih mudah bagi tim pengembangan perangkat lunak.
XACML dan standar terkait
Ada beberapa bahasa kebijakan tambahan yang memiliki fungsi serupa dengan XACML.
XACML vs. Open Policy Agent
Mirip dengan XACML, Open Policy Agent (OPA) menyediakan titik keputusan kebijakan, bahasa kebijakan (Rego), dan otorisasi yang dieksternalisasi. Standar ini berfokus pada otorisasi infrastruktur dibandingkan dengan otorisasi yang berpusat pada API, yang dicakup oleh XACML.
XACML vs. SAML
XACML dirancang untuk bekerja bersama dengan Security Assertion Markup Language (SAML), standar lain dari OASIS. SAML mendefinisikan cara berbagi informasi autentikasi, seperti kata sandi pengguna dan tingkat izin keamanan, antar sistem keamanan.
Sebuah mesin aturan (rules engine)—yaitu program yang mengevaluasi aturan yang telah ditetapkan dan menyarankan tindakan yang sesuai—dengan kebijakan yang diekspresikan dalam XACML dapat membandingkan informasi autentikasi yang diberikan oleh SAML dengan kriteria yang telah ditentukan untuk memastikan hak akses pengguna.
Perkembangan terbaru
Dalam lingkungan keamanan modern, banyak organisasi kini menggunakan kombinasi XACML dan SAML dengan teknologi baru seperti OAuth 2.0 dan OpenID Connect untuk menyediakan kontrol akses yang lebih fleksibel dan berbasis identitas federatif. Selain itu, beberapa solusi berbasis cloud telah mulai mengintegrasikan XACML dengan framework Zero Trust untuk meningkatkan keamanan dalam arsitektur akses berbasis risiko.