Jeton tabanlı kimlik doğrulamanın ne anlama geldiğini anlamak istiyorum. İnternette arama yaptım ama anlaşılabilir bir şey bulamadım.
Jeton tabanlı kimlik doğrulamanın ne anlama geldiğini anlamak istiyorum. İnternette arama yaptım ama anlaşılabilir bir şey bulamadım.
Yanıtlar:
Bence burada iyi açıklanmış - sadece uzun makalenin anahtar cümlelerinden alıntı:
Belirteç tabanlı bir kimlik doğrulama sisteminin arkasındaki genel kavram basittir. Kullanıcıların, kullanıcı adlarını ve şifrelerini kullanmadan belirli bir kaynağı getirmelerini sağlayan bir simge elde etmek için kullanıcı adlarını ve şifrelerini girmelerine izin verin. Jetonları alındıktan sonra, kullanıcı uzak siteye belirli bir süre belirli bir kaynağa erişim sağlayan jetonu sunabilir.
Başka bir deyişle: kimlik doğrulama için bir seviye dolaylama ekleyin - her korumalı kaynak için kullanıcı adı ve parola ile kimlik doğrulaması yapmak yerine, kullanıcı bu şekilde bir kez kimlik doğrulaması yapar (sınırlı süreli bir oturumda), karşılığında zaman sınırlı bir simge alır ve bu belirteci oturum sırasında daha fazla kimlik doğrulaması için kullanır.
Avantajları çoktur - onlar sınırlı zaman ve kaynak olarak sınırlı bir güven tutardır bazı diğer otomatik sisteme üzerine, bunu aldıktan sonra daha örn kullanıcı, belirteç geçebileceği, ancak olurdu değil istekli kullanıcı adlarına ve şifrelerine güvenmek (örneğin, erişmelerine izin verilen her kaynak için, çoğunlukla veya en azından şifrelerini değiştirene kadar).
Hala net olmayan bir şey varsa, sizin için% 100 net olmayan ne olduğunu açıklığa kavuşturmak için lütfen sorunuzu düzenleyin ve eminim size daha fazla yardımcı olabiliriz.
Gönderen Auth0.com
Belirteç Tabanlı Kimlik Doğrulama, her istekte sunucuya gönderilen imzalı bir belirteci kullanır.
Jeton tabanlı bir yaklaşım kullanmanın faydaları nelerdir?
Web alanları arası / CORS: çerezler + CORS farklı alanlarda iyi oynamaz. Belirteç tabanlı bir yaklaşım, kullanıcı bilgilerini iletmek için bir HTTP üstbilgisi kullandığınız için herhangi bir etki alanında herhangi bir sunucuya AJAX aramaları yapmanızı sağlar.
Vatansız (sunucu tarafı ölçeklenebilirliği olarak da bilinir): bir oturum deposu tutmaya gerek yoktur, jeton tüm kullanıcı bilgilerini ileten bağımsız bir varlıktır. Devletin geri kalanı, müşteri tarafında çerezlerde veya yerel depolarda yaşıyor.
CDN: uygulamanızın tüm varlıklarını bir CDN'den (ör. Javascript, HTML, resimler vb.) Sunabilirsiniz ve sunucu tarafınız yalnızca API'dır.
Ayrıştırma: belirli bir kimlik doğrulama şemasına bağlı değilsiniz. Jeton herhangi bir yerde oluşturulabilir, bu nedenle API'nız bu çağrıları doğrulamanın tek bir yolu ile her yerden çağrılabilir.
Mobil kullanıma hazır: yerel bir platformda (iOS, Android, Windows 8 vb.) Çalışmaya başladığınızda, jeton tabanlı bir yaklaşım tüketirken çerezler ideal değildir.
CSRF: çerezlere güvenmediğiniz için siteler arası isteklere karşı koruma sağlamanız gerekmez (ör. Sitenizi sib etmek, POST isteği oluşturmak ve mevcut kimlik doğrulama çerezini yeniden kullanmak mümkün olmaz çünkü hiçbiri olmayacaktır) ).
Performans: Burada herhangi bir kesin performans ölçütü sunmuyoruz, ancak bir ağ gidiş dönüşünün (örneğin, veritabanında bir oturum bulma), bir jetonu doğrulamak ve içeriğini ayrıştırmak için bir HMACSHA256 hesaplamaktan daha fazla zaman alacaktır.
A token
, yalnızca oluşturmuş Server X
olabilecek ve belirli bir kullanıcıyı tanımlamak için yeterli veri içeren bir veri parçasıdır .
Sen giriş bilgilerinizi sunmak ve sorabiliriz Server X
bir için token
; ve sonra kendinize ait olabilir token
ve Server X
kullanıcıya özgü bazı eylemler gerçekleştirmeyi isteyebilirsiniz .
Token
Şifreleme alanından çeşitli tekniklerin çeşitli kombinasyonları kullanılarak ve daha geniş güvenlik araştırma alanından girdi kullanılarak oluşturulur. Eğer kendi token
sisteminizi kurmaya karar verirseniz , gerçekten akıllı olmalısınız.
Belirteç, sunucu tarafından oluşturulan bir veri parçasıdır ve belirli bir kullanıcıyı ve belirteç geçerliliğini tanımlamak için bilgiler içerir. Belirteç, kullanıcının bilgilerini ve doğrudan bir kullanıcı adı ve parola vermek yerine, kimlik doğrulamayı destekleyen her yöntemle kullanıcının sunucuya iletebileceği özel bir belirteç kodunu içerir.
Belirteç tabanlı kimlik doğrulama, sunucu tarafından sağlanan bir güvenlik belirteci kullanarak bir sunucuya, ağa veya başka bir güvenli sistemde oturum açmaya çalışan kullanıcıların kimliğini doğrulayan bir güvenlik tekniğidir.
Bir kullanıcı, sunucuya bir güvenlik belirteci ileterek geçerli bir kullanıcı olduğunu kanıtlayabilirse kimlik doğrulama başarılı olur. Hizmet güvenlik kodunu doğrular ve kullanıcı isteğini işler.
Jeton hizmet tarafından onaylandıktan sonra, istemci için güvenlik bağlamı oluşturmak için kullanılır, böylece hizmet art arda kullanıcı istekleri için yetkilendirme kararları verebilir veya etkinliği denetleyebilir.
Belirteç Tabanlı (Güvenlik / Kimlik Doğrulama)
yani eriştiğimizi kanıtlayabilmemiz için önce jetonu almamız gerekir. Gerçek bir yaşam senaryosunda, jeton binaya bir erişim kartı olabilir, evinizin kilidinin anahtarı olabilir. Ofisiniz için bir anahtar kartı veya evinizin anahtarını almanız için, önce kim olduğunuzu kanıtlamanız ve aslında bu jetona erişiminiz olduğunu kanıtlamanız gerekir. Birine kimliğinizi göstermek veya gizli bir şifre vermek kadar basit bir şey olabilir. Bu yüzden ofisime erişmem gerektiğini hayal edin. Güvenlik ofisine gidiyorum, onlara kimliğimi gösteriyorum ve bana bu jetonu veriyorlar, bu da binaya girmemi sağlıyor. Şimdi, jetonum yanımda olduğu sürece, bina içinde istediğim her şeyi yapmak için sınırsız erişimim var.
Jeton tabanlı güvenliğin faydası nedir?
Güvensiz API'yi tekrar düşünürsek, bu durumda yapmamız gereken, yapmak istediğimiz her şey için şifremizi vermemiz gerektiğiydi.
Hayal etmekofisimize her kapıdan girdiğimizde, kapının yanında oturan herkese şifremizi vermek zorundayız. Bu oldukça kötü olurdu, çünkü ofisimizdeki herhangi birinin şifremizi alıp bizi taklit edebileceği anlamına geliyor ve bu oldukça kötü. Bunun yerine, yaptığımız şey, jetonu elbette şifre ile birlikte almamızdır, ancak bunu bir kişiden alırız. Ve sonra bu simgeyi binanın içinde istediğimiz yerde kullanabiliriz. Tabii, jetonu kaybedersek, başka birisinin şifrenizi bildiği gibi aynı sorunumuz var, ancak bu, jetonu kaybedersek, erişimi ve belki jetonu iptal edebileceğimizden nasıl emin olabiliriz gibi şeylere yönlendirir. 24 saatten fazla yaşamamalıyız, bu yüzden ertesi gün ofise geldiğimizde kimliğimizi tekrar göstermeliyiz. Ama yine de, kimliği gösterdiğimiz sadece bir kişi var,
Soru eski ve teknoloji gelişti, işte şu anki durum:
JSON Web Token (JWT), web uygulama ortamındaki taraflar arasında hak taleplerini iletmek için JSON tabanlı bir açık standarttır (RFC 7519). Jetonlar kompakt, URL güvenli ve özellikle web tarayıcısı çoklu oturum açma (TOA) bağlamında kullanılabilir olacak şekilde tasarlanmıştır.
Sadece hash veritabanında veya başka bir şekilde kullanıcı ile ilişkili hash. Bu simge, bir kullanıcının uygulamanın ilgili içeriğine erişimini doğrulamak ve daha sonra yetkilendirmek için kullanılabilir. Bu belirteci istemci tarafında almak için oturum açmak gerekir. İlk kez giriş yaptıktan sonra, geri alınan jetonu oturum, oturum kimliği gibi başka verileri kaydetmemeniz gerekir, çünkü burada her şey diğer uygulama kaynaklarına erişmek için jetondur.
Token, kullanıcının orijinalliğini sağlamak için kullanılır.
Günümüzde Web API kaynaklarını güven altına almak için en çok tercih edilen yaklaşım, Web API sunucusundaki kullanıcıların, her biri ile istemci tarafından sunucuya gönderilmesi gereken imzalı belirteci (belirli bir kullanıcıyı tanımlamak için yeterli bilgi içerir) kullanarak kimlik doğrulaması yapmaktır. her istek. Buna Token Tabanlı Kimlik Doğrulama yaklaşımı denir.
Belirteç Tabanlı Kimlik Doğrulama aşağıdaki gibi çalışır:
Kullanıcı adı ve şifreyi istemciye girer (istemci tarayıcı veya mobil cihazlar vb. Anlamına gelir).
İstemci daha sonra bu kimlik bilgilerini (ör. Kullanıcı adı ve şifre) Yetkilendirme Sunucusuna gönderir.
Ardından, Yetkilendirme Sunucusu istemci kimlik bilgilerini (yani kullanıcı adı ve parola) doğrular ve bir erişim belirteci oluşturur ve döndürür. Bu Erişim Simgesi bir kullanıcıyı tanımlamak için yeterli bilgi içerir ve ayrıca jeton son kullanma süresini de içerir.
İstemci uygulaması daha sonra, token sona erene kadar Kaynak Sunucu'dan kısıtlı kaynaklara erişmek için HTTP isteğinin Yetkilendirme başlığına Erişim Belirteci'ni ekler.
Aşağıdaki makale, WEB API'sında Belirteç Tabanlı Kimlik Doğrulamanın adım adım nasıl uygulanacağını gösterir.
https://dotnettutorials.net/lesson/token-based-authentication-web-api/
Yeni bir web sitesine kaydolduğunuzda, genellikle hesabınızı etkinleştirmeniz için bir e-posta gönderilir. Bu e-posta genellikle tıklamak için bir bağlantı içerir. Bu bağlantının bir parçası, bir belirteç içerir, sunucu bu belirteci bilir ve hesabınızla ilişkilendirebilir. Jeton genellikle onunla ilişkili bir son kullanma tarihine sahiptir, bu nedenle bağlantıyı tıklayıp hesabınızı etkinleştirmek için yalnızca bir saatiniz olabilir. Müşterinin e-postaları kontrol etmek için hangi cihazı veya tarayıcıyı kullandığı bilinmediğinden, bunların hiçbiri çerezler veya oturum değişkenleriyle mümkün olmaz.