SORU
31 Mart 2011, PERŞEMBE


Nasıl SAML Servis Sağlayıcısı Olmak

Günaydın Herkese

Benim şirket şu anda Java web uygulaması geliştirir. Müşterilerimizin bir kaç iç SAML sunucuları (kimlik sağlayıcılar?) ve biz onlarla bütünleşmek isteği var. Bu yüzden son zamanlarda bu kadar okuma ve çevresinde OpenAM ile oynuyorum. Bu yaklaşık 3 gün sonra genel bir anlayış var, ama yine de bildiğim kadarıyla bazı boşluklar var. Umarım birisi bu benim için açık değildir.

Bir kullanıcı günlük iş akışını hayal ediyordum işte. Müşterilerimiz https://their.samlserver.com sunucu SAML tanımlayalım. Bir kullanıcı korunan bir kaynak için web uygulamamız için geliyor. Hadi bu URL http://my.app.com/something olduğunu söylüyorlar. Eğer yanılmıyorsam, "" SAML olarak tanımlayan şeydir "Hizmet Sağlayıcı". my.app.com yani Bizim uygulama Bu kullanıcı giriş yapmak için ihtiyacı olduğunu fark eder. Biz kullanıcı için böyle bir sayfa mevcut...

<script>JQuery Script to auto submit this form on ready</script>
<form method="post" action="https://their.samlserver.com/Post/Servlet">
    <input type="hidden" name="SAMLRequest" value="someBase64Data" />
    <input type="submit" value="Submit" />
</form>

Ve bu someBase64Data bu base64 kodlanmış sürümü

<samlp:AuthnRequest
  xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
  xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
  ID="identifier_1"
  Version="2.0"
  IssueInstant="2004-12-05T09:21:59Z"
  AssertionConsumerServiceIndex="0">
 <saml:Issuer>http://my.app.com</saml:Issuer>
 <samlp:NameIDPolicy
   AllowCreate="true"
   Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>

İlk birkaç sorularım bu kadar. "İD" değeri olarak varsayalım. Ve neden bir olarak kendimi ifade edebilirim""? Verenin Kimlik Sağlayıcı beni biliyor mu? Belki de bu "güven Çemberi" OpenAM üzerinde görüyorum. Ve eğer beni merak ediyor, beni nasıl biliyor mu bunu anlamak için neye ihtiyacı var?

Kullanıcı bu sayfada iletilir sonra, bir sayfa IDP https://their.samlserver.com tarafından sağlanan alınırlar. Sayfa ve IDP sihirli kimlik doğrulama ve kullanıcı aramak için yapar üzerinde kimlik doğrulaması. Kimlik doğrulaması başarılı olduktan sonra, IDP <samlp:Response> here tanımlanmış bir geri gönderir.

Birkaç soru daha. İlk olarak, nasıl <samlp:Response> kontrol edebilirim yani benim web uygulaması için dönüyor? Ben de buna yanıt başarılı olduğunu doğrulamak için arıyorum ne olmalıdır? Bir hata neye benziyor?

Biz şu anda bu soruya verdiği cevap büyük ihtimalle bunu alırız böylece kullanıcıları tanımlamak için, e-posta adresi (LDAP) ve şimdi biz aynı şekilde kullanın. Buna yanıt olarak dikkatli olmam gereken başka bir şey var mı?

Geçerlilik için yanıt aradık şimdi, bir oturum şu anda yaptığımız gibi kullanıcı grant. Ama çıkmak istediklerinde, bunun için bir iş akışı mı? Kullanıcının bıraktığı IDP bildirmek zorunda mıyım?

Ve son olarak, benim okuma atılan bu konularda bir çift vardır ve bu iş akışı içine sığdırmak nasıl emin değilim. Onlar "güven Çemberi", "", "Eser". Belirteçleri

Herhangi bir yardım için herkese teşekkürler. Son birkaç gün içinde birçok bilgi buldum ve onlarla birlikte biraz daha oynadıktan sonra parça olabilir. Ama henüz "Burada" iş akışı madde henüz. yazılar için bir yalındır bulmalıyım Belki de bu işler nasıl yanılıyorum çünkü. Belki de bu o kadar popüler değil çünkü. Ama gerçekten bir kullanıcı kimlik doğrulaması olarak çok önemli bir adım kaçırmadığıma çok iş var emin olmak istedim.

CEVAP
1 NİSAN 2011, Cuma


Belirli sorulara yanıt olarak:

1.) "İD" değeri olması gerekiyor.

  • Bu SAML isteği için benzersiz bir tanımlayıcı olmalıdır. SAML 2.0 belirtimi, bu nasıl yapılır gerçekten uygulanması özel olduğunu belirtiyor, ancak aşağıdaki tavsiyelerde bulunur: "Hangi SAML sistem bir varlık tanımlayıcı benzersiz olmasını sağlar mekanizmasının uygulanması için bırakılır. Durumda bir tesadüfi veya rastgele tekniktir istihdam, iki olasılık rastgele seçilen tanımlayıcıları aynı OLMALI küçüktür veya eşittir 2 ^ -128 ve OLMALIDIR küçüktür veya eşittir 2 ^-160 uzunluğu. Bu gereksinim uzunluğu 128 ve 160 bit arasında rastgele seçilen bir değer kodlama ile bir araya geldi OLABİLİR."

2.) Nasıl IdP senden haberi var mı?

  • SP, IdP ile kayıtlı olması gerekir. Bunu yapmak için, SAML belirtimi "IdP SAML, alıcılar, ne sertifika, exchange özniteliklerini, vb. anlatan" SAML Meta biçimi tanımlar OpenAM büyük olasılıkla güvenilir bir SP yapılandırma için bazı minimum gereksinimleri belirler. Bu her üründe değişir.

3.) Nerede Yanıt kontrol etmek için git, ve?

  • Yanıt Onaylama Tüketici Servis URL genellikle ilk kurulum için IdP ile SP exchange SAML Meta verilerde tanımlanan gidecek. Ne zaman sen almak bir SAML Yanıtı, kontrol etmek için pek çok şey ama en önemlisi, SAML Durum kodu olması "başarı", inResponseTo ID gereken maç isteği gönderilmiş olanlar ve doğrulamak için dijital imza İddiası. Bunun için, IdP genel doğrulama sertifikası güvenmek gerekir, ve muhtemelen de iptal denetimi yapmak isteyeceksiniz.

4.) Ne Çıkış?

  • SAML 2.0 da Tek Çıkış (SLO) için bir profil tanımlar. Bu sadece SP çıkmak, ama aynı zamanda ve herhangi bir diğer potansiyel olarak IdP SP ile bir sesssion tesis etmiş. (SSO) Tek Oturum olarak yanıt akışı/benzer bir istek var, ve böylece kur ve kontrol et (kodları, imza, durum vb.) benzer şeyler.

Yani Kısacası bu sıfırdan uygulamak için oldukça karmaşık olabilir. En iyi Ian anlaşılacağı gibi denenmiş ve gerçek kütüphaneler ve/veya ürünleri kullanmak. Onun gibi şirketler geliştirici zaman yüzlerce saat uygulamak için birlikte çalışabilirlik diğer satıcılar ile spec ve teste göre yatırım yaptık.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006
  • TheMasterOfHell100

    TheMasterOfH

    13 AĞUSTOS 2011