2009-07-15 23 views
10

Bazı SAML 2.0 onaylamaları oluşturmam gerekiyor ve XML'in neye benzemesi gerektiğini bulmakta zorlanıyorum. Belgelerin çoğu, mesajlarla ilgili değil, belirli araçları kullanmakla ilgili gibi görünüyor. Çok sayıda olasılıkla şemalarım var, ancak ilgili mesajların aslında pratikte nasıl göründüğüne dair bir örnek bulamıyorum.Kullanıcı adı/parola ile SAML iddiası - iletiler gerçekten neye benziyor?

İş kuralı diyor ki: paylaşılan bir kimlik oluşturmak için, kullanıcı sistem A'ya kullanıcı adı ve şifresini bildirir. Sistem A, bu bilgiyi (bazı demografik verilerle birlikte) B sistemine aktarmalıdır. Sistem B onayları bilgi ve bu kullanıcıya atıfta bulunmak için kullanılabilecek benzersiz bir tanımlayıcıyı geri gönderir.

Birisi bana SAML 2.0 iddialar bu bilgiyi taşımak nasılolabileceği bir örnek verebilir misiniz?

FWIW, C# kullanarak ve 3. taraf aracını kullanarak engel şekillerde etrafında XML geçmeleri gerekiyor ediyorum.

cevap

26

Kullanım durumunuzun SAML 2.0'ın yaptığı gibi olduğundan emin değilim.

İş kurallarınız olarak tanımladığınız şey aslında kimlik yönetimi, erişim yönetimi için bir kullanım durumu gibi görünüyor.

Standart SAML 2.0 kullanım durumlarını tek parti iddia kimlik (kimlik sağlayıcı) ve bu iddiaların güvenerek diğer tarafa (veya taraflar) (servis sağlayıcı) odaklanır. İddialar, kimlik sağlayıcısı ve servis sağlayıcı arasında önceden kararlaştırılan bir isim tanımlayıcıyı taşır.

Bu ad tanımlayıcılar hemen hemen her şey olabilir, ancak bunlar genel olarak iki kategoriye ayrılır: geçici ve kalıcı. Bir geçici isim tanımlayıcısı sadece geçerli oturum bağlamında yararlıdır (ve aslında sadece bu kişinin kim olduğunu bildiğimi söyler) ve bir türün ayrıcalıklı erişime izin verirken ana kimliğin korunması için kullanılma eğilimindedir. Kalıcı bir tanımlayıcı, iddia edilen tarafın kimliğini açıklamaksızın bir kimliğin kimliğini tekrar tekrar doğrulayabildiği ve iddia eden taraflar arasında dinamik fakat istikrarlı bir ortak tanımlayıcıyı koruyabildiği durumlarda opak (OpenID'nin SO'ya erişimde nasıl kullanıldığına benzer şekilde) olabilir veya Active Directory UPN (daha önceden kararlaştırılmış olan) gibi daha önemli. Eğer söz konusu söz olarak

o, şifreler söz konusu olduğunda, servis sağlayıcı (parti güvenerek) asla kullanıcıların parola görür. Servis sağlayıcı kullanıcıyı bir kimlik doğrulama talebi ile kimlik sağlayıcısına teslim eder. Kimlik sağlayıcı, kullanıcıyı bir hizmet sağlayıcıya geri göndererek, başarılı bir kimlik doğrulaması durumunda, kimlik sağlayıcı ile servis sağlayıcı arasındaki ilişki bağlamında kullanıcının kimliği ile ilgili bir iddia içerdiği bir yanıt ile geri gönderir.

Sorunuza bağlamında

, büyük bir şey SAML 2.0 Yerel "uygulaması" kullanıcı hesabı veya bağlantı oluşturmak için ya bir yol sağlamadığını olduğu federe kimlik yerel kullanıcı hesabı. Bu, SAML 2.0'ın çözmeye çalıştığı sorun değil.

Şimdi iş kurallarına dönün ...Öyle ya Hesap bağlama veya kayıt ne yapmaya çalıştığını gibi görünüyor bana

- Böyle yaklaşım olur:

  • Kullanıcı ziyaretleri uygulaması, kimlik sağlayıcıdan kimlik kullanmak için bir düğmeye tıkladığında
  • Uygulama, bir kimlik doğrulama isteği oluşturur ve kullanıcıyı kimlik doğrulaması isteğine yönlendirir, kimlik doğrulama isteğini taşır
  • Kimlik sağlayıcı, kullanıcıda oturum açar veya kullanıcı bir tane varsa varolan kimlik oturumunu yeniden kullanır. IdP, kullanıcı hakkında bir iddia içeren bir cevap mesajı üretir. Sizin durumunuzda, bu iddia en azından kalıcı bir isim tanımlayıcısı taşımalıdır. Kimlik sağlayıcı, kullanıcıyı yanıt mesajını taşıyan uygulamaya geri yönlendirir.
  • Uygulama yanıt mesajını işler. Kalıcı tanımlayıcı için bir eşleme girdisi varsa, kullanıcı o eşlemeden tanınır ve o yerel uygulama kullanıcısı olarak oturum açar. Hiçbir eşleme girişi yoksa, kullanıcıdan yerel olarak oturum açması istenebilir ve başarılı yerel girişte eşleme girişi üretilebilir veya bir kullanıcı hesabı otomatik olarak oluşturulabilir ve kullanıcıdan ek bilgi girmesi istenebilir (adlar, e-posta adresleri). vb.) "Kurumsal" kullanım durumu, otomatik bir hesabın bağlanmasına veya oluşturulmasına izin verilmemesi ve eşleştirmenin önceden var olması gerektiğidir. mesajların içeriği gelince

...

OASIS Security Services Technical Committee örneklerini içeren XML şemasının parçaları, geniş belgeler ile kullanılabilen bir zip dosyası indir sahiptir. Protokol ve profil dokümantasyonunu okumak iyi bir şeydir, çünkü bunlar kimlik görüşmesinde yer alan taraflar arasındaki mesaj akışını tanımlar.

Çok kullanışlı bulduğum çok fazla sunum var. Özellikle, Males Maler tarafından SAML v2.0 Basics, SAML v2.0'ın hangi sorunları çözmeye çalıştığını anlamaya başladım. Bu sunumda, bu iddiaların örnekleri benzerdir. Güncellenmiş bir sunum ve saml.xml.org adresindeki ek kaynaklara bağlantılar var.

Kullanım durumunuz SAML 2.0'ın yapmaya çalıştığı gibi görünmediğinden, bunlardan herhangi birinin yardımcı olacağından emin değilim. İsteklere ve yanıtlara gerektiğinde öznitelikleri ve uzantıları ekleyebilirsiniz, ancak birçok özniteliğin bu öznitelikler ve yanıtlarla ilgili herhangi bir şey yaptığını göremiyorum.

+0

Uygulamam, kullanıcı hakkında kendi kendine yapılmış sahte iddiaları işlemekten ne koruyor? İddia, müşteriye bir xml formu olarak gönderilirken, kimse sahte bir iddia üretebilir. İşlenen iddiaların kimlik sağlayıcısı tarafından orijinal olarak gönderildiğini doğrulamak için başvurumda ne tür güvenlik denetimleri yapılmalıdır? – steven

+0

SAML şemaları, dijital imza ve gizli veya hassas olarak düşünülebilecek herhangi bir öğenin şifrelenmesi için çok iyi destek içerir. İmzalar, teslim edilen verilerin sağlam ve doğru olduğundan emin olmanın en kolay yoludur. Şemalar ayrıca, kontrol etmeniz gereken geçerlilik süreleri için destek içerir ve destekleyici protokoller güvenliği sağlamak için tekrar oynatma korumasını tartışır. –