Одиночный OpenID в субдоменах
-
14-10-2019 - |
Вопрос
Я использую OpenID так же, как и здесь, на StackOverflow, чтобы аутентифицировать моих пользователей. То, что мне действительно нужно сделать,-это то, что это открытая работа по всем поддоменам моего сайта.
Сайт ведет себя почти так же, как и киджи, в том, что в каждом регионе есть собственный поддомен
- calgary.example.com
- toronto.example.com
- Vancouver.example.com
- так далее
Когда пользователь входит в «Калгари», а затем входит в «Торонто», он будет вынужден «дать разрешение» у поставщика, что приведет к новому OpenID и в результате также в новом входе в систему.
Мое приложение «может» иметь несколько OpenID под одной учетной записью, но это стало бы громоздким для управления.
Есть ли способ, чтобы провайдер соединился с доменом верхнего уровня и впоследствии поработал во всех поддоментанах?
Я использую dotnetopenauth.
Единственное, что у меня есть, - это всегда заставить пользователя входить в систему http://example.com а затем используйте аутентификацию форм domain = ".example.com"
разрешить навигацию ко всем субдоменам.
Решение
Да. Установить Realm
свойство на управлении ASP.NET или на вашем IAuthenticationRequest
(Если вы делаете это программно) на «https: //*.example.com». Обратите внимание, что схема может быть HTTP или HTTPS, но это должен Совместите любую схему в вашем свойстве returnto, которая будет (по умолчанию) быть схемой, используемой в текущем запросе.
Обратите внимание, что если у вас есть существующие пользователи из Google, это одноразовое изменение вашего сферы заставит Google генерировать совершенно новые идентификаторы для ваших пользователей, поэтому все они потеряют доступ к своим учетным записям. Поэтому очень важно принять решение и сохранить одну сферу на все время, или вам придется прыгать через крупные обручи, чтобы иметь возможность привязывать ваших пользователей с их учетными записями, когда вы его измените.
Но не беспокойтесь о самом подстановлении. Когда вы устанавливаете https: //*.example.com в качестве своей области, все ваши отдельные сайты, соответствующие этой шаблоне, получат такой же Идентификатор Google.