Çapraz etki alanı tanımlama

4 Cevap php

Ben küçük bir sorun var,

nasıl birden çok etki için bir cookie mi?

Ben güvenlik sorunlarını anlıyorum ve ben daha önce yapılmıştır eminim. Bunun nedeni SSO.

yani.

account.domain.com oturum boyunca etki alanını ayarlamak gerekir:

domain.com domain1.com domain2.com

Herhangi bir kolay yolu, PHP ve çerezleri kullanarak, veya herhangi bir alternatifi var mı?

4 Cevap

Domain.com domain1.com için bir çerez ayarlamak için hiçbir yolu yoktur. Ne yapmaya çalışıyorsunuz ancak o zaman kendi tanımlama koyacaktır her etki istekleri göndermek için kullanıcının tarayıcısını alarak çözülebilir.

Sonra kullanıcının kimliğini doğrulamak için, her etki için bir yol gerekir. Bu iki yaklaşım vardır:

  1. Arka kanal - sitelerin kullanıcı oturum olup olmadığını belirlemek için birbirleriyle doğrudan temasa
  2. GET veya POST bir belirteç Passing - kullanıcının broweser bir dijital olarak imzalanmış parametre kimlik ve oturum durumunu içeren geçirilen başka bir siteye yönlendirilir zaman.

Bu gerçekten oldukça karmaşık. Ben kendi rulo değil öneririz. Ben tarif ediyorum ne bir PHP uygulama için SimpleSAMLPHP bir göz atın.

Ne çalışıyorsanız yapılamaz. (Bu bir tarayıcı güvenlik sorunu değil, bir PHP biri.)

Off-site kimlik bazı formunu kullanarak dışında, elde edebileceğiniz en yakın sadece PHP'nin set_cookie fonksiyonu isteğe bağlı 'etki alanı' arg kullanmak bu durumda alt etki alanları, karşısında bir çerez erişilebilir yapıyor.

Peki, bu bir etki alanı, bir köle gibi bir usta ve diğerleri gibi hareket yoluyla yapılabilir düşünüyorum

Bir etki accounts.domain.com var ve bu bizim usta olduğunu söyle.

Sonra bizim köleler domain.com, something.com ve another.com ettik

Eğer domain.com üzerinde oturum olacak zaman, o zaman sizin tarayıcınız için benzersiz bir kimlik ile bir çerez alırsınız, aslında sitesi accounts.domain.com olacağım ve sonra domain.com 'un yazılan yönlendirilirsiniz -açma açılış sayfası (yani domain.com/logon?check=true&unique-id=<browser unique id>&request-id=<unique request ID>). açılış sayfası tarayıcı kimliği ile querrying, accounts.domain.com irtibata geçecektir. Işlemin tamam, o zaman domain.com oturum açma çerez alırsınız eğer.

Her şey açık mı? Tamam ...

Sonraki her etki (domain.com, something.com ve another.com) ilk yönlendirme olacaktır için accounts.domain.com/roaming-check?return-url=<URL the redirect was initiated from>. Biz eve dönüyoruz çünkü, biz (<domain name>.com/logon?check=true&unique-id=<browser unique id>&request-id=<unique request ID>) bizim açılış sayfasında tekrar yönlendirilmiş olacak (biz accounts.domain.com zaten açmış konum) ve bu noktadan itibaren o kadar aynıdır oturum ile bir parçasıdır. Biz sorunsuz (bu başlıkları (sunucu) / (tarayıcı) bölüm alırsınız göndermek geçinceye kadar genellikle yönlendirilen sayfayı görünmüyor tarayıcılar gibi bilmeden kullanıcı olmadan) başka bir etki dolaştı ediyoruz.

Aktif oturum açma aslında orada durumunda, site oturumda bu "negatif oturum açma" kazandıracak ve (biz oturum açma veya başka bir etki alanı yüklemeye çalıştığınızda kadar) artık oturum açma kontrol etmeye çalışmayın.

Bu size yardımcı olur umarım.

Best regards
Lukáš Mojžíš
GRENAMES

PS: biz bizim CMS sistemini çalıştırmak etki ile aynı yapmak için bana ilham çünkü ben, ben senin soru gördüm gerçekten çok mutluyum. :) Ben kısa sürede bunun için bir modül yazacağım :)

Ben bu çözüm sizin ihtiyaçlarınıza uygun olacağını düşünüyorum: "Simple Single Sign-On for PHP"