25 poin oleh GN⁺ 2024-05-28 | 8 komentar | Bagikan ke WhatsApp
  • 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

 
savvykang 2024-05-29

Di antara para pengembang, penggunaan authn dan authz alih-alih auth, lalu login dan permission pada dokumen atau controller/facade yang bersentuhan dengan pengguna, rasanya cukup masuk akal untuk disetujui. Namun, kalau sampai authn dan authz juga ingin dihapus, saya merasa tidak terlalu perlu sejauh itu.

 
gcback 2024-05-29

Seperti yang ditunjukkan dalam teks, penggunaan auth secara 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.

 
nemorize 2024-05-28

Masalahnya kalau Authentication dan Authorization sama-sama disingkat menjadi Auth,
seperti yang disebutkan di artikel, rasanya Authn dan Authz saja sudah cukup...
Kalau itu masih dianggap kurang jelas, menurut saya tidak masalah juga kalau diperpanjang sedikit menjadi Authenty dan Authory.

 
koxel 2024-05-28

Sistem izin juga punya bentuk permission, ada bentuk ACL juga, lalu kalau begitu mau dibedakan bagaimana..?
Terasa agak dipaksakan...

 
namarie32ilu 2024-05-28

Mungkin ini upaya untuk mengurangi biaya komunikasi dengan anggota tim non-developer, tapi rasanya agak terlalu berlebihan.

 
iolothebard 2024-05-28

Bukankah keduanya memang sengaja digabung lalu disebut auth?

 
kuber 2024-05-28

Ada authentication dan authorization, tapi kenapa harus repot-repot...

 
GN⁺ 2024-05-28
Komentar Hacker News
  • "Authorize" dan "Authenticate" adalah kata yang sangat baik dan telah digunakan sejak Abad Pertengahan. Makna kedua kata itu tidak banyak berubah.
  • Kedua kata ini memiliki perbedaan penting dalam sistem kriptografi. Mengganti istilah untuk mengurangi kebingungan tampaknya tidak akan banyak membantu.
  • Klaim bahwa nama "auth" menimbulkan kebingungan kurang meyakinkan. Mengganti istilah tampaknya tidak akan menyelesaikan masalah.
  • Sebaiknya gunakan singkatan "authn" dan "authz". Namun, menggunakan kata lengkap juga tidak masalah.
  • "Identity" dan "Access" Management (IAM) adalah istilah standar. Secara pribadi, saya lebih menyukai istilah "authnz".
  • "Login" tidak mencakup autentikasi berbasis token atau kunci. Akun layanan tidak melakukan login, tetapi tetap memerlukan autentikasi dan otorisasi.
  • Pembedaan antara Authn dan Authz tidak selalu jelas. Terkadang orang tampaknya lebih menyukai istilah yang terdengar keren daripada istilah yang jelas.
  • Tidak pernah ada masalah saat menggunakan istilah "auth" dalam sistem IAM. Saat membutuhkan ungkapan yang lebih spesifik, cukup gunakan frasa yang tepat.
  • "login" dan "permissions" tidak menangkap keseluruhan makna dan kompleksitas sistem. Autentikasi mencakup lebih banyak hal daripada login.
  • Autentikasi dan otorisasi saling berkaitan erat. Otorisasi tidak mungkin dilakukan tanpa autentikasi.
  • Login bukan pengganti yang tepat untuk istilah autentikasi. Ada kasus autentikasi yang tidak memerlukan login.
  • "auth" dapat berarti autentikasi dan otorisasi sekaligus. Karena kedua konsep itu sering digunakan bersama.
  • Autentikasi dan otorisasi adalah istilah standar di IT dan keamanan informasi. Untuk menghindari kebingungan, lebih baik gunakan kata lengkap.
  • "authn" dan "authz" cukup layak digunakan di kalangan teknis. Untuk masyarakat umum, lebih baik gunakan "login" dan "permissions".
  • Konsep serupa juga ada dalam kehidupan nyata. Misalnya, kartu identitas kerja memverifikasi identitas dan memberikan hak akses.
  • Otorisasi dan permission bukan hal yang sama. Permission adalah hak atau privilese yang belum ditetapkan kepada pengguna tertentu.
  • Otorisasi dapat memiliki dua makna. Proses memberikan hak kepada pengguna untuk melakukan tindakan tertentu, dan proses memverifikasinya.
  • "access control" dapat berarti kontrol akses saat runtime. Ini adalah pekerjaan yang dilakukan aplikasi setelah pengguna diautentikasi.
  • "authN" dan "authZ" cukup tepat dan mudah dipahami. Otorisasi selalu berkaitan dengan hubungan antara permission dan pengguna.