Yetkilendirmeye karşı Yetkilendirme


626

Web uygulamaları bağlamındaki fark nedir? "Auth" kısaltmasını çok görüyorum. Anlama gelmektedir yetkilendirme -entication veya kimlik doğrulama -orization? Yoksa ikisi de mi?


51
şunu unutmayın: kimlik doğrulama kimlik bilgilerini, yetkilendirme izinleri denetler.
Onur Yıldırım

1
Siteler arası kopya: serverfault.com/q/57077
Kyll

Son zamanlarda authnkimlik doğrulama ve authzyetkilendirme için gördüğüm kısaltmalar için
jdf

Yanıtlar:


865

Kimlik doğrulama , birisinin gerçekten iddia ettiği kişi olduğunu tespit etme sürecidir.

Yetkilendirme , kimin ne yapmasına izin verildiğini belirleyen kuralları ifade eder. Örneğin, Usama sadece okuma yetkisi verirken, Adam veritabanları oluşturma ve silme yetkisine sahip olabilir.

İki kavram tamamen dik ve bağımsızdır, ancak her ikisi de güvenlik tasarımının merkezinde yer alır ve ikisinden birini doğru bir şekilde elde edememek, uzlaşma yolunu açar.

Web uygulamaları açısından, çok kabaca konuşmak gerekirse, kimlik doğrulaması, bir kullanıcıyı oturum açmış olarak tanıyıp tanımadığınızı görmek için giriş kimlik bilgilerini kontrol ettiğinizde ve yetkilendirme, erişim kontrolünüzde kullanıcının görüntülemesine, düzenlemesine, silmesine izin verip vermediğinize baktığınız zamandır. veya içerik oluşturun.


32
Tanımlar iyi görünüyor, ancak kesinlikle bağımsız görünmüyorlar. Tanımlandığı gibi, yetkilendirme aynı zamanda kimlik doğrulamayı da ima etmez mi? Adam olduğundan şüpheleniyorsanız , Adem'in veritabanı silme işlemine nasıl izin verebilirsiniz ? Başka bir deyişle, Adem'in silme işlemi yetkilendirilmişse, umarım Adem'in kimliğinin doğrulandığını ima eder.
Timo

7
@Timo: Bir uygulama muhtemelen her ikisini de yapmak isteyecektir, ancak bunlar ne olursa olsun dikey kavramlardır. Patronunuz, CCTV feed'indeki belirli bir kişinin e-tablodaki adlarla eşleşmesi konusunda endişe duymadan, işletmenin kritik bileşenlerine, şirket jetine ve bira buzdolabına erişmek için personelin yetkilerini inceliyor olabilir. İkincisi, güvenlik görevlisinin endişesi olacaktır.
Kerrek SB

1
Kavramlar kesinlikle dikeydir. Kimlik doğrulaması kimliğinizi kanıtlamak zorunda değildir. Kendinizle ilgili bir iddiayı kanıtlayabilir, örneğin yaş. İçtiğinizde yaşınızı bir kimlik göstererek doğrularsınız. O zaman yaşınıza ve bulunduğunuz ülkeye bağlı olarak içki içmeye yetkili olabilirsiniz (ABD'de> 21> Avrupa'da 18 ise içebilirsiniz)
David Brossard

1
@Sinjai: Bence bu, bunların dik endişeler olduğu ve ayrı tesislerle ele alınabileceği: örn. Kapıda (güvenilir) fedai müşterinin yaşını belirleyebilir ve kuruluş içindeki farklı hizmetler farklı yaşlara sahip olabilir ancak hepsi, kabul kararlarını vermek için fedaiden aldıkları değeri kullanacaktır.
Kerrek SB

1
Ona bakmanın bir başka yolu da (barroom örneği bağlamında) kimlik doğrulamanın kimlik kartındaki fotoğrafı önünüzde duran kişiyle eşleştirme işlemi, yetkilendirme ise yaşlarının doğrulanması işlemidir. yasal gereklilikleri karşılar. Kanımca, bu karışımdaki çizgilerin bulanıklaşmasına neden olan unsur, her iki testin de çoğu insanın sadece kimlik doğrulama endişesi olarak görmeye meyilli olduğu hem sahteciliğin hem bilişli hem de sahteciliğe karşı sertleştirilmesi gerektiğidir (sahte bir kimliktir). hem auth-c hem de auth-z sertifikasyonu için eşit derecede önemlidir.
Ryan Hansen

660

Kısacası, lütfen. :-)

Kimlik doğrulama = giriş + şifre (kim olduğunuz)

Yetkilendirme = izinler (ne yapmanıza izin verilir)

Kısa "kimlik doğrulaması", birincisine veya her ikisine de atıfta bulunur.


3
Tatlı gibi bir parça kek :)
devansvd

Bunu beğendim, kısa ve tatlı.
Kral

5
O zaman neden bir HTTP Yetkilendirme başlığının kimlik doğrulama bilgilerini taşıdığını hala anlamıyorum … Bu talihsiz adlandırma değil mi?
Jens

@Jens Kısa cevap: evet. Roy Fielding o zamanlar daha iyisini bilmiyordu ... ;-) </tongue-in-cheek>
Per Lundberg

@Jens Ben de bunu merak ediyorum. Bu yanıtın sezgisini faydalı buluyorum . HTTP durum bilgisi içermediğinden , kimlik doğrulama bilgileri yalnızca başlangıç ​​ve kapanış istekleri ile birlikte gönderilmemelidir (güvenli bir oturum oluşturmak ve aralarında yetkisiz istek göndermek gibi). Bu nedenle, bu istek üstbilgisi yetkilendirme olmalıdır , çünkü neredeyse her zaman yalnızca kimlik doğrulaması değil, diğer niyetleri (veri getir, img, ...) taşır .
Minh Nghĩa

83

As Yetkilendirme vs Kimlik koyar:

Kimlik doğrulama , sistemlerin kullanıcılarını güvenli bir şekilde tanımlayabilecekleri mekanizmadır. Kimlik doğrulama sistemleri şu sorulara cevap verir:

  • Kullanıcı kim?
  • Kullanıcı gerçekten kendisini temsil ettiği kişi mi?

Yetkilendirme , aksine, bir sistemin, kimliği doğrulanmış belirli bir kullanıcının sistem tarafından kontrol edilen güvenli kaynaklara ne düzeyde erişmesi gerektiğini belirleme mekanizmasıdır. Örneğin, bir veritabanı yönetim sistemi, belirli kişilere bir veritabanından bilgi alma, ancak datbase'de depolanan verileri değiştirme ve diğer kişilere veri değiştirme yeteneği sağlama yeteneği sağlayacak şekilde tasarlanabilir. Yetkilendirme sistemleri şu sorulara cevap verir:

  • X kullanıcısı R kaynağına erişme yetkisine sahip mi?
  • X kullanıcısı P işlemini yapmaya yetkili mi?
  • X kullanıcısı, R kaynağında P işlemini gerçekleştirme yetkisine sahip mi?

Ayrıca bakınız:


34

Doğrulama ve Kimlik Doğrulama ve Yetkilendirme İzinlerini tercih ederim .

Kafamda ve kodumda "doğrulama" ve "izinler" düşünmek daha kolay çünkü iki kelime

  • benzemiyor
  • aynı kısaltmaya sahip değil

Kimlik doğrulama doğrulama ve Yetkilendirme izinleri kontrol ediyor. Kimlik doğrulaması da anlam ifade edebilir, ancak "Kullanıcı Kimlik Doğrulaması", yani "Kullanıcı Doğrulaması" olarak daha sık kullanılır


2
Kimlik doğrulama bir tür doğrulama gibi görünse de, IMHO doğrulamasının kimlik doğrulamasından biraz daha açık bir kapsamı var gibi görünüyor, her doğrulama bir kimlik doğrulama değildir ... bu yüzden bir içeriğin her zaman gerekli olduğunu söyleyebilirim: kullanıcı erişim doğrulaması vb., Kimlik doğrulama her zaman "o gerçekten adam / makine mi?" (yanılıyorsam bana vur, anadili konuşmacı değil, ama: "doğrula" verilen bilgilerin doğru olduğunu ve kimlik doğrulamasının kişi / makinenin olduğunu iddia ettiği kişi olduğunu bilmekle ilgisi var gibi görünüyor)
Beachwalker

14

İki kelime birbirine benzediğinden ve kavramlar genellikle yakından ilişkili ve birlikte kullanıldığından, karışıklık anlaşılabilir. Ayrıca, belirtildiği gibi, yaygın olarak kullanılan Auth kısaltması yardımcı olmaz.

Diğerleri, kimlik doğrulama ve yetkilendirmenin ne anlama geldiğini zaten iyi tanımlamışlardır. İkisini açıkça birbirinden uzak tutmanıza yardımcı olacak basit bir kural:

  • Kimlik Doğrulama enti katyon geçerli kılınarak sizin Kimliği enti ty (veya orijinallik , İsterseniz)
  • Yazar izlemesi yazarlığınızı , yani bir şeye erişme ve muhtemelen bir şeyi değiştirme hakkınızı doğrular .

12

Bunu en basit kelimelerle açıklamak için bir görüntü oluşturmaya çalıştım

1) Doğrulama, "Sen olduğunu söylediğin kişi misin?"

2) Yetkilendirme, "Yapmaya çalıştığınız şeyi yapabilmeniz gerekir mi?" Anlamına gelir.

Bu, aşağıdaki resimde de açıklanmaktadır.

resim açıklamasını buraya girin

Mümkün olan en iyi şekilde açıklamaya çalıştım ve aynı imajı yarattım.


4

Kimlik doğrulama, ilan edilen kimliği doğrulama işlemidir.

  • örneğin kullanıcı adı / şifre

Genellikle bunu yetkilendirme izler. Bunu onaylayabilirsiniz .

  • örneğin izinler

Bu cevap zaten derin bir açıklama ile verilmiştir.
Sonu patel

3

@ Kerrek'in cevabına ekleme;

Kimlik Doğrulama Genelleştirilmiş formdur (Tüm çalışanlar makineye giriş yapabilir)

Yetkilendirme Uzmanlaşmış formdur (Ancak yönetici yalnızca uygulamayı Makine'ye yükleyebilir / kaldırabilir)


1
"Can" kelimesi yalnızca Yetkilendirme için geçerlidir. Kimlik doğrulamanın giriş yapmakla ilgisi yoktur veya çok az etkisi vardır. Çok iyi bir şekilde Boobalan olduğunuzu birçok şekilde doğrulayabilirsiniz (Sadece kullanıcı adı / şifre değil). Kimliğinizi doğruladıktan ve kim olduğunuzu öğrendikten sonra, giriş yapmanıza veya sitemde herhangi bir şey yapmanıza yetki veremem. Doğrulanmışsınız, ancak diddley-squat yapamazsınız. Kimlik Doğrulama hakkında konuşurken "can" kelimesini kullanmak kafa karıştırıcı ve yanlıştır.
Suamere

3

Kimlik doğrulama, giriş adınızı ve kullanıcı adınızı ve parolanızı doğrulama işlemidir.

Yetkilendirme, bir şeye erişebildiğinizi doğrulama işlemidir.


3
Bu "cevap", verilen cevaplara hiçbir şey eklemez.
Ojonugwa Jude Ochalifu

1

Tanımlar

Kimlik Doğrulama - Olduğunu iddia ettiğiniz kişi siz misiniz?

Yetkilendirme - Yapmaya çalıştığınız her şeyi yapmaya yetkili misiniz?

Misal

Bir web uygulaması Google ile Oturum Açma özelliğini kullanır . Bir kullanıcı başarıyla oturum açtıktan sonra Google geri gönderir:

  1. Bir JWT jetonu. Bu, kimlik doğrulama bilgilerini almak için doğrulanabilir ve kodu çözülebilir . Simge Google tarafından imzalanmış mı? Kullanıcının adı ve e-postası nedir?
  2. Bir erişim belirteci. Bu , web uygulamasına kullanıcı adına Google API'larına erişme yetkisi verir. Örneğin, uygulama kullanıcının Google Takvim etkinliklerine erişebilir mi? Bu izinler, istenen kapsamlara ve kullanıcının izin verilip verilmediğine bağlıdır.

Bunlara ek olarak:

Şirketin, müşteri desteğinin şirketin kullanıcılarını yönetmesine olanak tanıyan bir yönetici kontrol paneli olabilir. Şirket, müşteri desteğinin bu gösterge tablosuna erişmesine olanak tanıyan özel bir kayıt çözümü sağlamak yerine Google Oturum Açma özelliğini kullanır.

JWT jetonu (Google oturum açma işleminden alındı), kullanıcının kuruluşun barındırdığı alan adında (email@company.com) bir G Suite hesabına sahip olup olmadığını anlamak için şirketin yetkilendirme sunucusuna gönderilir mi? Ve eğer öyleyse, müşteri desteği için oluşturulan şirketin Google Grubunun bir üyesi mi? Yukarıdakilerin tümüne evet ise, bunların doğrulanmış olduğunu düşünebiliriz .

Şirketin yetkilendirme sunucusu daha sonra gösterge tablosu uygulamasına bir erişim belirteci gönderir. Bu erişim belirteci şirketin kaynak sunucusuna yetkilendirilmiş isteklerde bulunmak için kullanılabilir (ör. Şirketin tüm kullanıcılarını geri gönderen bir uç noktaya GET isteği yapma yeteneği).


0

Authentication bir doğrulama sürecidir:

  • bir sistemde kullanıcı kimliğini (kullanıcı adı, giriş, telefon numarası, e-posta ...) kanıt (gizli anahtar, biyometri, sms ...) sağlayarak. Uzantı olarak çok faktörlü kimlik doğrulama.
  • kullanarak e-posta kontrolü digital signature
  • sağlama

Authorizationsonraki adımdır Authentication. Bu, kaynakların izinleri / rolleri / ayrıcalıkları ile ilgilidir. OAuth (Açık Yetkilendirme) bir Yetkilendirme örneğidir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.