- "auth" terimi hem kimlik doğrulama (authentication) hem de yetkilendirme (authorization) anlamına gelir
- Bu da kütüphane veya paket adlarında kafa karışıklığına yol açar
- "authn" ve "authz" terimleri net değildir ve anlaşılması zordur
Kimlik doğrulama ve yetkilendirme arasındaki fark
- Kimlik doğrulama (authentication): kullanıcının kim olduğunu doğrulama süreci
- Yetkilendirme (authorization): kullanıcının ne yapabileceğini belirleme süreci
- Bu iki kavram birbirinden farklıdır; birini çözmek diğer sorunu çözmez
"permissions" ve "login" kullanma önerisi
- Kimlik doğrulamayı "login", yetkilendirmeyi ise "permissions" olarak açıkça ayırmayı önerir
- "login" hem isim hem fiil olarak kullanılabilir
- İsim: sisteme erişmek için girilen bilgiler
- Fiil: sistemi kullanmak için giriş yapma eylemi
- "permissions" isim olarak kullanılır; fiil biçimi yerine "check permissions" kullanılır
Açık terim kullanmanın avantajları
- Yazılım mühendisliği dışındaki alanlardaki kişiler de bunu kolayca anlayabilir
- Daha iyi soyutlamaları mümkün kılar
- Kimlik doğrulama ile yetkilendirme ayrı modüller olarak tasarlanıp ayrıştırılabilir
GN⁺ görüşü
- Açık terim kullanımının önemi: Terimler net olduğunda iletişim daha akıcı olur ve yanlış anlamalar azalır.
- Soyutlamanın faydası: Kimlik doğrulama ile yetkilendirmeyi ayırmak, sistem tasarımını daha esnek hale getirir ve bakımını kolaylaştırır.
- Diğer terim kullanım örnekleri: "login" ve "permissions" dışında "access control" gibi terimler de değerlendirilebilir.
- Teknoloji benimsenirken dikkat edilmesi gerekenler: Yeni terimler benimsenirken ekip içinde yeterli tartışma ve uzlaşma gerekir.
- İlgili proje önerileri: Kimlik doğrulama ile yetkilendirmeyi ayıran temsilî projeler arasında OAuth ve OpenID Connect bulunur.
8 yorum
Geliştiriciler kendi aralarında
authyerineauthn,authzkullanırken, kullanıcıyla temas eden belge ya da controller/facade katmanlarındaloginvepermissionkullanılması bence kabul edilebilir. Ancakauthnveauthzterimlerini bile tamamen kaldıralım demekse buna gerçekten gerek var mı emin değilim.Metinde de işaret edildiği gibi,
authteriminin kimlik doğrulama ve yetkilendirme için iki anlamlı biçimde kullanılması gerçekten kafa karıştırıcıydı. Sadece geliştiriciler dışındaki alanlarla iletişim için de bunu daha genel terimlerle ayırmak, yerinde bir girişim gibi görünüyor.Sorun, hem Authentication hem de Authorization’ın kısaltmasının Auth olabilmesiyse,
metinde de belirtildiği gibi Authn ve Authz yeterli olurdu bence...
Bunun yeterince açık olmadığı düşünülüyorsa, biraz daha açıp Authenty ve Authory demek de fena olmazdı.
Yetki sisteminin bir de permission türü var, bir de ACL türü var; o zaman bunları nasıl ayırt edeceğiz..?
Biraz zorlama gibi duruyor...
Muhtemelen geliştirici olmayan ekip üyeleriyle iletişim maliyetini azaltma girişimidir, ama biraz fazla kaçmış.
İkisini bilerek birleştirip
authdemiyor muyuz zaten?Authentication ve authorization varken neden ille de...
Hacker News yorumu