Как ограничить Google федеративный вход в конкретный домен приложений? - PullRequest
6 голосов
/ 24 января 2012

Я хочу внедрить единый вход в приложение клиента.Клиент разместил электронную почту через Службы Google.Поскольку Google предлагает OpenID, это может быть относительно легко реализовать.Однако пользователь может не войти в правильную учетную запись Google (или даже несколько учетных записей).

Таким образом, при использовании конечной точки Google OpenID https://www.google.com/accounts/o8/id пользователю предоставляется выбор, в какую учетную запись Google он / она хочет войти.Поскольку приложение разрешает вход только из домена Служб Google, этот шаг можно пропустить, и он должен быть удобен для пользователей.Я не мог, однако, найти способы сделать это.На SO * этот вопрос , но все ссылки устарели или ссылаются на устаревшие спецификации.Также я не смог найти подсказку в Федеративном логине для пользователей аккаунта Google specs.

В некоторых местах говорят, что следует использовать https://www.google.com/a/[domain]/o8/ud?be=o8, но это, похоже, не работает (больше):

$ wget --header='Accept: application/xrds+xml' https://www.google.com/a/[domain]/o8/ud?be=o8
2012-01-24 09:29:53 ERROR 400: Bad Request.

1 Ответ

6 голосов
/ 26 января 2012

Хотя я не смог найти официальные записи, конечная точка для конкретного домена Служб Google такова:

https://google.com/accounts/o8/site-xrds?hd=<domain>

При использовании этого подхода учтите, что вы столкнетесь с модификацией, специфичной для Google.:

Google немного изменил способ обнаружения IdP, и пользовательская XRDS немного проверила, чтобы предоставить пользователям Google Apps openid в формате http://example.com/openid?id=108441225163454056756, не прося пользователей создавать свои собственные серверы openid,Для небольших компаний люди могут получить свой openid под своим доменом, используя всего лишь доменное имя, если они используют Google Apps. источник

...