JWT'de 'aud' ve 'iss' arasındaki fark


13

Daha sağlam bir kimlik doğrulama hizmeti uygulamak jwtistiyorum ve yapmak istediğim şeyin büyük bir parçası ve kodu nasıl yazacağımı anlıyorum, ancak ayrılmış issve audtalepler arasındaki farkı anlamakta biraz sorun yaşıyorum . Bir belirteç veren sunucuyu tanımladığını ve bir kullanıma yönelik uygulama atıfta anlıyorum. Ancak bunu anlamanın yolu, izleyicimin ve yayıncısının aynı şey myserver.comolması, jetonu yayınlamaktır, böylece gelen insanlar myserver.comyetkilendirilebilir ve doğrulanabilir. Sanırım iki iddia arasındaki farkı görmüyorum, ancak bir tane olduğunu biliyorum.
Şurada yazılmış iyi bir makale vardı:msdn tüm ayrılmış taleplerde ve en çok karıştığım yer burası çünkü yayıncıları ve izleyicileri tamamen farklıydı.


İlginizi çekebilir JWT RFC-7519
Laiv

Yanıtlar:


10

Bunlar, amaçlanan alıcı ile aynı olmayan bir belirteç verme yetkisine sahip olduğunuz senaryolar içindir.

Bu, uygulamanız için farklı olmayabilir.

Ancak büyük ölçekli bir uygulamayı düşünün. Sertifikaları veren bir OAuth veya SSO sunucunuz olabilir ve TOA sunucusunun kullanıcının kimlik bilgilerini kontrol ettiğini ve uygulamayı uygulamayı kullanmasını onaylayan bir belirteç isteyen bir uygulamanız olabilir. Bu durumda, "aud": "aud.example.com"ve ile bir simgeniz olabilir "iss": "sso.example.com".


Ah anlıyorum. Benim açımdan bir yanlış anlama vardı çünkü iki şey düşündüm: 1. İddiaların bir parçası olarak hem "iss" hem de "aud" olması gerekiyordu. 2. Birbirlerine özgü olmaları gerekiyordu. Açıkçası bu gerçek değil. Peki, benimki gibi bir başvurunuz varsa, bu iki iddiayı da içerecek misiniz, jwtyoksa aynı olacakları için mi bırakacaksınız?
Adam McGurk

Kesinlikle onları dışarıda bırakıp daha sonra kullanmak için bir nedeniniz olduğunda ekleyebilirsiniz
Paul

olur audbazen üçüncü bir tarafı olmak ya da olmamak?
Andy

Sanırım kapsamların, kullanıcının belirli bir uygulama için onaylandığını belirtmek için neden kullanılmayacağı konusunda kafam karıştı.
Andy

Evet, audtek bir değer veya dizi olabilir. Her bir alıcı veya işlemci ile eşleşmesi gerekiyor. Bir sorgu çalıştırmak için api.example.com'u aramak isteyen bir kullanıcı (veya uygulama) olduğunuzu varsayalım. Api.example.com, kimlik doğrulamasını işlemek için bazı üçüncü taraf kimlik doğrulama hizmetlerine (örneğin Auth0) güveniyorsa, bu kimlik doğrulama hizmeti aud'api.example.com' ile doldurulmalı ve 'api.example.com' adresindeki uygulama bunun durum. Kapsamlar izleyiciden daha ayrıntılıdır ve yüke de dahil edilebilir.
Paul
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.