Authentication ve Authorization Kavramları Nedir ?
Dağıtılmış uygulamalara yönelik güvenliğin merkezinde birbiriyle yakından bağlantılı iki kavram vardır: kimlik doğrulama(authentication) ve yetkilendirme(authorization). Authentication, kullanıcılardan bir tür kimlik bilgisi alma ve bilgileri kullanıcının kimliğini doğrulamak için kullanma işlemidir.
Yetkilendirme, kimliği doğrulanan bir kullanıcının kaynaklara erişmesine izin verme işlemidir. Kimlik doğrulama her zaman Yetkilendirmeden önce gelir. Uygulamanız anonim kullanıcıların uygulamayı kullanmasına izin verse bile, yine de kimliklerini anonim olarak doğrular.
Şöyle düşünebilirsiniz, diyelim ki çalıştığınız firmanın ofisi bir plazada. Plaza girişinde herkesin kartı turnikeleri açabiliyor ya da misafir olarak (gerçek sistemdeki anonim kişiler) kartsız giriş yapabiliyorsunuz. Bunu authentication işlemi olarak düşünebilirsiniz.
Ancak ofisinizin bulunduğu kata çıkıp ofis girişindeki yere kartınızı okutup giriş yaparsanız bunu da authorization işlemi olarak düşünmeniz gerekir. Çünkü sizin buraya giriş izniniz olduğu için kart okutmanız başarılı oldu. Eğer başka ofise girmek için okutsaydınız oraya giremeyecektiniz. Veya sizin şirketinizde çalışmayan biri sizin kart okuttuğunuz cihaza okutmaya çalışsaydı işlemi başarısız olacaktı. Bunun da nedeni yetksinin olmamasıdır.
Özetlemek gerekirse:
Authentication = Bir web uygulamasında kullanıcıların giriş yapabilmesi için bir kullanıcı adı ve şifre kombinasyonunu girmesi ve bu bilgilerin doğrulanması bir kimlik doğrulama sürecidir.
Authorization = Bir uygulama içinde bir kullanıcının rolüne göre sidebarın değişmesi. Yönlendirmelerin değişmesi ve login olduğunda göreceği sayfaların değişmesi.
bknz https://auth0.com/docs/get-started/identity-fundamentals/authentication-and-authorization
identity ASP.NET Core Identity Nedir ?