- Istilah "auth" memiliki dua makna: autentikasi (authentication) dan otorisasi (authorization)
- Hal ini menimbulkan kebingungan pada nama library atau package
- Istilah "authn" dan "authz" tidak jelas dan sulit dipahami
Perbedaan antara autentikasi dan otorisasi
- Autentikasi (authentication): proses memverifikasi siapa pengguna itu
- Otorisasi (authorization): proses menentukan apa yang boleh dilakukan pengguna
- Kedua konsep ini berbeda, dan menyelesaikan salah satunya tidak berarti masalah yang lain ikut terselesaikan
Usulan menggunakan "permissions" dan "login"
- Diusulkan untuk membedakan autentikasi secara jelas sebagai "login", dan otorisasi sebagai "permissions"
- "login" dapat digunakan sebagai bentuk kata benda maupun kata kerja
- Kata benda: informasi yang dimasukkan untuk mengakses sistem
- Kata kerja: tindakan masuk ke sistem untuk menggunakannya
- "permissions" digunakan sebagai kata benda, dan untuk bentuk verbal digunakan "check permissions"
Keuntungan menggunakan istilah yang jelas
- Orang dari bidang lain selain software engineering juga dapat memahaminya dengan mudah
- Memungkinkan abstraksi yang lebih baik
- Sistem dapat dirancang dengan memisahkan autentikasi dan otorisasi ke dalam modul yang terpisah
Pendapat GN⁺
- Pentingnya penggunaan istilah yang jelas: Jika istilah jelas, komunikasi menjadi lebih lancar dan kesalahpahaman dapat dikurangi.
- Manfaat abstraksi: Memisahkan autentikasi dan otorisasi membuat desain sistem lebih fleksibel dan lebih mudah dirawat.
- Contoh penggunaan istilah lain: Selain "login" dan "permissions", istilah seperti "access control" juga layak dipertimbangkan.
- Hal yang perlu dipertimbangkan saat mengadopsi istilah: Saat memperkenalkan istilah baru, diperlukan diskusi dan kesepakatan yang memadai di dalam tim.
- Rekomendasi proyek terkait: Contoh proyek representatif yang memisahkan autentikasi dan otorisasi antara lain OAuth dan OpenID Connect.
8 komentar
Di antara para pengembang, penggunaan
authndanauthzalih-alihauth, lalulogindanpermissionpada dokumen atau controller/facade yang bersentuhan dengan pengguna, rasanya cukup masuk akal untuk disetujui. Namun, kalau sampaiauthndanauthzjuga ingin dihapus, saya merasa tidak terlalu perlu sejauh itu.Seperti yang ditunjukkan dalam teks, penggunaan
authsecara ambigu untuk autentikasi dan otorisasi memang membingungkan. Memisahkannya dengan istilah yang lebih umum agar komunikasi dengan bidang lain selain pengembang murni menjadi lebih mudah tampaknya merupakan upaya yang patut diapresiasi.Masalahnya kalau
AuthenticationdanAuthorizationsama-sama disingkat menjadiAuth,seperti yang disebutkan di artikel, rasanya
AuthndanAuthzsaja sudah cukup...Kalau itu masih dianggap kurang jelas, menurut saya tidak masalah juga kalau diperpanjang sedikit menjadi
AuthentydanAuthory.Sistem izin juga punya bentuk permission, ada bentuk ACL juga, lalu kalau begitu mau dibedakan bagaimana..?
Terasa agak dipaksakan...
Mungkin ini upaya untuk mengurangi biaya komunikasi dengan anggota tim non-developer, tapi rasanya agak terlalu berlebihan.
Bukankah keduanya memang sengaja digabung lalu disebut auth?
Ada authentication dan authorization, tapi kenapa harus repot-repot...
Komentar Hacker News