Soru OpenID: Bir Kullanıcıya Birden Çok OpenID Hesabı En İyi Nasıl İlişkili?


Ben openID'de bir acemi. Kullanıcıya seçenek vermek, çeşitli OpenID etkin hesaplarla oturum açmak için en iyi uygulamaların neler olduğunu düşünmek için çok zaman harcıyorum.

(Sistemimin, bir blog gönderimi yapmak için yalnızca basit bir "anında kimlik doğrulaması" gerektiren bir sistem olmadığını, daha ziyade bir kullanıcının daha fazla bilgi ekleyeceği ve mevcut olanı düzenleyeceği bir sosyal ağ sitesi gibi tam bir sistem olduğunu açıklığa kavuşturmak zorundayım "kişisel hesabı" ile ilgili bilgi ... Yani sistemin kendisi, kullanıcının yaptığı iş ile ilişkilendirilecek bir tür "hesap" bulundurmayı gerektirir.)

"Şifreli bir kullanıcı hesabı ve mysite için kullanıcı adı" yaratmadığım ve sadece openID Logins'e güvenmediğim için aşağıdaki problemle karşılaştım: "A" kullanıcısı bir "Google Hesabı" üzerinden (ilk defa) oturum açtığında, yaptığı her şey Google hesabıyla ilişkilendirilir. Geri döndüğünde ve "Google Hesabı İmzası" nı değil, "Yahoo Signin" i tıkladığında, oturum açacak, ancak Yahoo ile ilişkili yeni bir Hesap oluşturacak / alacaktır. Google Hesabı ile yaptığı her şey kaybolmuş gibi görünüyor. Sitemde her kullanıcı için bir "openID bağımsız ve benzersiz kullanıcı adı" (şifre olmadan) vermek işe yaramaz: Giriş yaparken bu benzersiz kullanıcı adını (şifre olmadan) istediğim gibi, herkes başkalarının kullanıcı adını tahmin edebilir ve bir OpenID'yi ilişkilendirebilir onlarla. Ama eğer bu kullanıcı adı için bir şifrem de olması gerekiyorsa, geçmişte nerede olduğumuza göre openID olmak zorunda kaldım: O zaman kullanıcıya bir çeşit “ana hesap” (kullanıcı adı ve şifre ile) vermeliyim. kolaylık sağlamak için, herhangi bir sayıda openId hesabıyla ilişkilendirin. Ama bu davada hangi sebepten ötürü openID var? Kullanıcı zaten "benim ana parola ve userid" hatırlamak zorunda olduğu gibi ...

=> Bu, openID'nin birden fazla hesabın "serbest seçimini" doğrudan "desteklemediği" anlamına mı geliyor? Kullanıcıların rasgele bir openID kullanıcı hesabıyla giriş yapabilmelerini (her giriş için) yapmasını istiyorsanız, bunu şu şekilde yapmanın tek yolu var:

1.) Kullanıcı bir "bilinen openID hesabı" ile giriş yapar.

2.) Kullanıcı "bilinmeyen bir openID hesabıyla" oturum açar => "kimliği bilinmeyen" openId (örneğin Yahoo) aracılığıyla kullanıcının kimliğini doğrular, ancak kullanıcı sayfama geri döndüğünde, kullanıcıya bildirirse, bu (Yahoo) ) openID hesabı bilinmemektedir (= başka bir hesapla desteklenmez = yeni bir hesap gibi) ve son bir başka hesapla belki de en son oturum açmış ve desteklenen openID hesaplarının listesini sunup sunmadığını sorar. Kullanıcı, son kez kullandığı sağlayıcılardan birini seçebilir (örneğin Google). Daha sonra, daha önce yapılmış olan (Yahoo ile) girişe ek olarak, son kez kullandığı "eski" (Google) hesabına da giriş yapması gerekiyor. Her iki hesap daha sonra "birbiriyle ilişkili" ve daha eski (Google) hesaptaki herhangi bir işe artık daha yeni (Yahoo) openID hesabı / login ile erişilebiliyor mu?

Veya BİR KULLANICI HESABI için "çoklu açık hesaplar" ı desteklemenin başka bir yolu var mı?

(Bu soruyu sormamın nedeni: OpenID, henüz normal son kullanıcılar tarafından bilinmemekte. Google'dan, Yahoo'dan FaceBook'a girişlerle büyük bir liste yazdırırsam, Google'ın ilk Oturum Açmalarını kullanan pek çok kullanıcı olacak. bir dahaki sefere geri geldiklerinde facebook'u seçtiler (facebook sitesini daha yeni bıraktılar ve facebook ikonuna tıklamak için daha cazip geliyorlardı.) "15 yıl" için "web siteleri" nasıl çalıştı: "Tek bir yol vardı" giriş yapmak için: Bir kullanıcı adı-giriş-alan ve bir şifre-giriş alanı Eğer şimdi bir kullanıcı her biri ile bir hesabı olan büyük bir hesap listesi yazdırırsam, günden güne farklı hesaplarla giriş yapabilirsiniz Bu problem, bir kullanıcının openID-Provider listemin keyfi bir hesabıyla giriş yapabilmesi ve tüm hesapların birbirleriyle "ilişkilendirilmesi" anlamına gelmesidir.

Umarım benim problemimin ne olduğunu açıklamaktan habersizdim.

Yardımlarınız ve fikirleriniz için gerçekten minnettarım (benim burada tamamen yanlış anlaşıldım)

Çok teşekkür ederim! Ocak


21
2017-11-12 17:50


Menşei




Cevaplar:


OpenID bir kimlik doğrulama mekanizmasıdır, bir profil depolama mekanizması değildir. Sitenizdeki kişi için hala benzersiz bir tanımlayıcıya sahip olmanız ve bu benzersiz tanımlayıcıyla ilgili bir şifreyi depolayacağınız şekilde, bu benzersiz tanımlayıcınızla ilgili olarak OpenID'yi saklayan bir kayıt tutmanız gerekir.


7
2017-11-12 17:55



merhaba Jeremy, cevabın için teşekkürler. Fakat pratikte nasıl benzersiz tanımlayıcıyı çoklu hesaplarla ilişkilendirebilirim? Bunu yapmanın tek yolu, ya benzersiz tanımlayıcı (= bir çeşit tam teşekküllü masteraccount'a sahip olmak) için bir parola ya da yukarıda tarif ettiğim şekilde yapmak için bir parola da olabilir. Ama eğer bir çeşit “masteraccount” çıkarırsam, o zaman openId bir çeşit “komik gadget” dır, çünkü kullanıcı benim benzersiz tanımlayıcıyı ve şifremi hatırlamamalıdır. Aksi halde, "güvenli" bir kaç openID hesabını birbirleriyle ilişkilendirmek mümkün değildir. - jan
Kimlik doğrulama modeliniz şu şekilde olmalıdır: kimlik doğrulama modeli. Kullanıcıları nasıl yönettiğinizi değil, yalnızca onları nasıl doğruladığınızı belirtmemelidir. Sisteme tam olarak hangi kullanıcının bağlı olduğunu belirlemenize izin veren bir Benzersiz Tanımlayıcıya (UID) ihtiyacınız vardır. Hatta SO, ürettikleri bir UID'yi kullanır (örneğin, 65228) ve bir OpenID ile UID'si arasında bir bağlantı kurarlar. Çalıştığınız sorun, OpenID'yi UID olarak kullandığınız. Bugün Facebook'u kullanan kullanıcıyı tanımanın tek yolu, dün Google'ı kullananla aynıdır. - Jeremy S


Evet, kullanıcı her ikisiyle de giriş yapmak zorunda kalacak.

  1. Kullanıcı ilk kez Google Hesabı ile giriş yapar, uygulamayı kullanır ve çıkış yapar. Uygulama, dahili bir kullanıcı girişi oluşturur (grombeestje'nin tablo kullanıcısında) ve Google Hesabı ile ilişkilendirir. (grombeestje'nin masadaki açıkhavada)
  2. Daha sonra, kullanıcı Yahoo'ya giriş yaptı ve Yahoo Hesabı ile tekrar oturum açtı. Şimdi, kullanıcılara diğer hizmetleri de tanımlamak için bir adım öneriliyor
    • a. Kullanıcılar Google hesabını seçer ve seçer.
    • b. Kullanıcı Google hesabıyla giriş yapar.
    • c. Uygulama Google kimliğini Geçerli girişle ekler.

Ayrıca, kullanıcı istediği zaman profiline girişler eklemeyi seçebilir ve Blogger, Facebook vb. Gibi diğer OpenID'lerini tanımlayabilir. Eğer bu hesaplarla farklı girişler (grombeestje'nin tablo kullanıcılarında) yaratmışsa o zaman app ile yerel girişler (grombeestje'nin tablo kullanıcısı) veya bunları bir araya.


14
2017-11-20 00:38



Mükemmel cevap! Her şeyden önce, soruyu gerçekte cevapladınız. İkinci olarak, son paragrafınızda, ilk girişten sonra bir süre sonra bir araya gelmeleri halinde, 2 iç hesabı bir araya getirme sorumluluğuna sahip olmanın iyi bir noktasını ortaya çıkardınız. Düşünmem gereken bir şey. Teşekkürler! - TalkLittle
Teşekkürler TalkLittle! - SarjanWebDev


Bir kullanıcı kimliği içeren kullanıcı hesaplarıyla veritabanınızda bir tablo var ve bir OpenID'yi bir kullanıcı kimliğine bağlayan bir bağlantı tablosu var.

sevmek

masa kullanıcıları

ID NAME

1 PIET

2 KEES

ve

masa açık

OPENID USERID

http: // ..... 1

http: // ..... 1

http: // ..... 2

http: // ..... 2


6
2017-11-12 18:02



merhaba grombeestje, cevabın için teşekkürler. Belirli bir kullanıcı için açık bir şekilde belirlenebilirken, kullanıcı masasının ilişkisini tam olarak nasıl yapacağınızı açıklığa kavuşturabilirsiniz: Sormamda anlattığım şekilde ya da daha iyi bir çözüm önermiş misiniz? - jan


Kullanıcıyı, her ikisini de bir araya getirmek için giriş yapman gerekecek gibi görünüyor.


2
2017-11-12 17:53