SORU
1 Ocak 2011, CUMARTESİ


Hala üçüncü taraf OAuth sağlayıcıları üzerinden kimlik doğrulaması izin verirken OAuth ile GERİSİ benim API (DotNetOpenAuth kullanarak)güvence

Ürünün kullanıcılar doğrudan web kullanıcı arayüzü kullanmadan, ürünün özellikleri ile entegre edilebilir, basit bir REST API ile bir ürün var.

Son zamanlarda benim ürünün kullanıcıların verilerini üçüncü parti uygulama kullanarak erişim sağlamak için API ile masaüstü müşterilerine entegre hakkında çeşitli üçüncü taraflardan faiz alıyorum.

Twitter kimlik doğrulaması oturum açma sayfası kullanarak kullanmak istediğiniz uygulamaların belirli bir uygulama izni veren tarafından Twitter kullanıcının veri erişimi için ev sahipliği yaptığını gördüm. Sana "" ya da "Reddet" düğmesi ve kimlik doğrulama işlemi tamamlandı. İzin ver tıklayın Facebook söyle elimden geldiğince aynı mekanizmayı kullanıyor.

Daha fazla araştırma üzerine, bu benim API olarak eylem OAuth ve görmek gibi görünüyor .Net tabanlı, DotNetOpenAuth kullanın ve benzer bir mekanizma gerektiğini düşünüyorum. Ne yazık ki örnekleri vardır seyrek belgelenmiş (varsa) ve tek öğreticiler bulabilirim online görünüyor odaklanmış yardım sağlamak için bir giriş mekanizması için kullanıcılarınızın bunlar günlüğüne web sitesi kullanarak bir üçüncü taraf sağlayıcı.

Yapardımgerçektengibi yapmak zorunda benim DİNLENME API idare çekirdek kimlik ve iş mantığı için benim web uygulaması var, başlık altında, benim web uygulaması esas olacak başka bir uygulama sadece kullandığı API üzerinden OAuth. Kullanıcılar ister kimlik doğrulaması web sitesinde ya da doğrudan kullanarak kullanıcı adı ve şifre, ya da üzerinden bir üçüncü taraf sağlayıcı gibi MyOpenİD veya Facebook ve web sitesi olur bir şekilde kullanın döndü belirteç kimlik doğrulaması karşı REST API.

Architectural Diagram

Temelde benim API OAuth bir şekilde hizmet ana bilgisayara ihtiyacım var gibi görünüyor, ama aynı zamanda kullanıcılar, üçüncü taraf OAuth bir hizmeti kullanmak zorunda. Ben yardım edemem ama sanmıyorum oldukça yeterli bir kavrayışa OAuth için karar verirseniz ben overcomplicating şeyler ya da ne yapmaya çalışıyorum iyi veya kötü bir şekilde bir şeyler yapmak.

Birinin üstlenmesi lazım, ya da bak bana ne yapabileceğimi adımları geniş bir bakış ver en azından bunu gerçekleştirmek için olabilir mi? Ya da bazı dersler de bana gelin? Ya teklifimi patlama ve bu (mimari) hakkında olacağımı söylemesi yanlış mı?

CEVAP
5 Ocak 2011, ÇARŞAMBA


İlk kimlik doğrulama ve yetkilendirme arasındaki farkı vurgulamak istiyorum

Birkullanıcıkullanıcı adı ve parola gibi kimlik bilgileri sağlayarak web sitenizi tanıtır. Openıd bu kullanıcı tarafından yerinden edilmesini sağlarkimlik doğrulamasısonra kullanıcı adına web sitenize kullanıcı kimliğini öne başka bir hizmet için. Siteniz bir üçüncü taraf hizmeti (Openıd Sağlayıcısı güveniyor ve bu nedenle kullanıcı giriş olarak görüyor.

Birhizmetyauygulamaweb sitenize kimliğini değil en azından genellikle--. Bir kullanıcıyetki verirhizmet veya uygulama, kullanıcının veri erişimi için. Bu genellikle yapılan uygulama isteyen yetki servis sağlayıcı, sonra gönderme kullanıcıya hizmet sağlayıcısı, kullanıcı ilk doğrular (yani servis sağlayıcı kim bilir onun konuşuyorum) ve daha sonra kullanıcı diyor site "Evet, Tamam için [uygulama] erişim verileri [biraz kısıtlı şekilde]". O andan itibaren, bir uygulama kullanıryetkilendirme belirteciservis sağlayıcısı, sitede kullanıcı veri erişimi için. Uygulama kullanıcı sanki kendi kimliğini değil, ama başka bir kod belirli bir kullanıcının veri erişim yetkisi bu hizmeti sağlamak için kullanılır unutmayın.

Böylece ayrım açıklık ile, kimlik doğrulama ve yetkilendirme hakkında sitenizde kararlarını tamamen bağımsız olarak yapabilirsiniz. Eğer tüm kullanıcılar ile oturum mümkün olmasını istiyorsanız, örneğin: kullanıcı adı şifre, Openıd, Facebook, bunu yapabilirsin. Tamamen dik bir karar uygulamaları (pek çok protokol bunun için kullanabilirsiniz, tabi ki oldukça popüler olmanın OAuth vardır) yetki.

Openıd kullanıcı odaklıdırkimlik doğrulaması. OAuth uygulaması üzerinde durulduyetkilendirme. Ancak, Facebook ve Twitter gibi birkaç hizmetleri kimlik doğrulaması için OAuth kullanmak için seçtinizveyetkilendirme kimlik doğrulaması için OAuth ve Openıd kullanmak yerine yetkilendirme.

Kendi projeniz için şimdi, şiddetle ASP.NET MVC 2 OpenID web site (C#) proje şablonu VS galeriden mevcut kontrol öneririz. Kutudan Openıd kimlik doğrulaması ile birlikte geliyorveHizmet Sağlayıcısı destek OAuth. Bu kullanıcılar Openıd ile oturum anlamına gelir, ve 3. parti uygulamalar ve hizmetler OAuth web sitesi ve veri erişimi, kullanıcı API çağrıları yapmak için kullanabilirsiniz.

Bir kez başlayınca bu proje şablonu eklemek istediğin gibi kullanıcılarınız kullanıcı adı olarak şifre Openıd ile giriş yapmak için yeteneğidir. Eğer Facebook ve Twitter kullanıcılar için bir seçenek olmasını istiyorsanız Ayrıca, Openıd standart kullanmıyorlar beri de uygulamalıdır. Ama DotNetOpenAuth indir bir rehber var bu yüzden Twitter ve Facebook ile giriş için örnekler içerir.

Bir şey yetkilendirme cephesinde çok olmaz sanıyorum. Daha önce de söylediğim gibi OAuth ile geliyor, ve muhtemelen sizin için yeterli olacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • maxman.tv

    maxman.tv

    29 EKİM 2013
  • Michael Neal

    Michael Neal

    2 Mayıs 2009