2014-09-04 23 views
6

Kendi OAUTH Sağlayıcımı oluşturmam gerekiyor, üçüncü taraf uygulama isteklerini doğrulamak için Google, Twitter, LinkedIn, Microsoft sağlayıcılarını kullanmak istemiyorum. İsteğin kimliğini doğrulamak ve müşteriye erişim belirteci göndermek için kendi sağlayıcımı oluşturmam gerekiyor. Ancak internetteki tüm yardımlar harici sağlayıcılarla ilgilidir (Google, LinkedIn, Twitter, Facebook ..). Kendi özel tedarikçimi oluştururken bana yardımcı olan var mı?OAuth özel sağlayıcı C#

+0

Bunu bir süre önce araştırdım ve bunun kötü bir fikir olduğu ortaya çıktı; çünkü farkında olmanız gereken sonsuz güvenlik endişeleri ve korsanların önüne geçmekte olan sonsuz güncellemeler var. Sonunda, çoğu kişi ücretsiz ThinkTecture sunucusunu seçti. Arkasındaki adamlar teknolojide ciddi liderler. http://www.thinktecture.com/identityAndAccessControl – EvilDr

+0

[OAuth 1] (http://tools.ietf.org/html/rfc5849) veya [OAuth 2] için teknik özellikleri okudunuz mu (http: //tools.ietf .org/html/rfc6749)? –

+0

Müşterimin aynı şartı yerine getirmesi için OAUTH 2.0 kullanmam gerekiyor. – daisy

cevap

6

Roland, spesifikasyonlardan geçerseniz, oldukça düz bir şekilde ileri sürüleceğini söyledi.

varsayarsak: Yüksek düzeyde

bu yetkilendirme kodu hibe deseni desteklemek için yapmanız gerekenler şu Başvurunuz kullanıcılarını kendi.

  • 3. Taraf uygulamalarının her birine clientid/secrets verin. Sunucunuz üzerinde
  • yetki
    • için bitiş noktalarını oluşturmak
    • belirteç istemci authorize bitiş noktası aşağıdaki gibi vuruyor

:

/authorize?response_type=code&client_id=<clientID>&state=xyz&redirect_uri=http://thirdparty.com

  • Redi müşteriyi bir giriş sayfasına yönlendir.
  • Kullanıcı tarafından sağlanan kullanıcı adını/pwd doğrulayın.
  • Başarılı olursa, 3. Taraf istemcilerini URI'yi authCode ile yeniden yönlendirin.
  • Başarısızlık durumunda, 3. Taraf istemcilerini hatayla (önceden yayımlanmış) URI'ye yeniden yönlendirin.

https://thirdparty.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz

Müşteri ardından aşağıdaki gibi bir şeyle yetkilendirme kodu ile/belirteç URI arayacak burada Numune geri arama: Bir jeton oluştur

/token?grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=http://thirdparty.com 

clientid, KullanıcıNo karşı saklayın ve belirteçle cevap verin. Aşağıda

{ 
    "access_token":"2YotnFZFEjr1zCsicMWpAA", 
    "token_type":"example", 
    "expires_in":3600, 
    "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", 
    "example_parameter":"example_value" 
} 

gibi şey ne zaman hizmet/kaynaklar istemci karşı belirteci doğrulamak ve kullanıcı adını ve erişim vermek veya reddetmek 3. parti erişimi.

Başlamak için, ancak kapsam ve diğer OAuth2 kalıpları ile yapabileceğiniz çok daha fazla özelleştirme olabilir.