2015-02-04 22 views
8

Kimlik kullanarak ASP.NET Web API'sinde kimlik doğrulaması için harici sağlayıcı desteği oluşturmanın birkaç yolunu gördüm, ancak bunların hepsi kullanıcı tarafından ayarlanmış bir tanımlama bilgisine dayanıyor. dış sağlayıcı tarafından (yetkili "AspNet.External") başarılı bir şekilde yetkilendirilmiştir; bu, daha sonra Web API'sının belirteç son noktasına yönlendirilmelidir.ASP.NET Kimlik Harici Sağlayıcılar Web çerezleri olmayan Web API'si

Bunu önlemek ve tanımlama bilgisi kullanmadan ASP.NET Web API'sı ile harici kimlik doğrulaması kullanmak için herhangi bir yol var mı? Bu endişenin nedeni, bu kimlik doğrulamayı mobil uygulamamda entegre etmek istiyorum, ancak kullanıcı her zaman çerezleri devre dışı bırakabilir ve uygulamamın kullanılamaz hale gelmesini sağlayabilir.

+0

, bir oturumun için etiketlenmiş tanımlamak için benzersiz bir tanımlayıcı yani 'url' kullanarak çerezsiz oturumu kullanabilirsiniz URL, querystring olarak. Umarım web API'da böyle bir örnek alırsanız, amacınızı çözecektir. –

+0

Burada sorduğun şey bana açık değil. Her istek kendini bir şekilde tanımlamak zorundadır ve bu genellikle bir çerez ile yapılır, çünkü bunu yapmanın en güvenli yolu budur. Bir querystring parametresi kullanabilirsiniz, ancak bu çok güvensizdir çünkü querystrings, yönlendirme ve proxy günlüklerinde ve ayrıca sunucu günlüklerinde kaydedilir. –

+0

Evet, isteğin tanımlanmasının bir yolunun gerekli olduğunu anlıyorum, ancak bir tanımlama bilgisinin en iyi yol olup olmadığından emin değilim, çünkü devre dışı bırakılmış çerezlerde kimlik doğrulaması çalışmayacak. Yoksa aslında devre dışı bırakılmış olsa bile çerezler WebView'de geçici olarak saklanacak mı? Benim amacım, yalnızca kimlik doğrulamanın tüm cihazlarda çalışacağından emin olmaktır. –

cevap

7

OAuth2'yi kullanma hakkında ne düşünüyorsunuz?

  1. https://www.nuget.org/packages/Microsoft.Owin.Security.OAuth/ ile OAuth2 sunucusu kurmak

    , Kimlik Doğrulama başlık değil, çerez kullanma kaynak sunucusu olarak sunucu, web API uygulaması Set
  2. ve etkinleştirmek oauth hamiline kimlik.
  3. oauth2 sunucusundan access_token komutunu aldıktan sonra, istemci isteğiniz için Kimlik Doğrulama üstbilgisini ayarlayın.

kodu buraya bakabilirsiniz:

düzenli asp.net projesinde

https://github.com/beginor/owin-samples

+2

Daha kolay ve daha basit bir çözüm bulunması gerektiğini düşünüyordum. Bu, yer uygulamasından neredeyse temiz anlamına gelir. –