2016-03-29 4 views
1

У нас есть система управления обучением (LMS), которую мы развертываем в организации. Все пользователи находятся под «учетной записью организации», из которой в нашей системе насчитывается несколько тысяч «учетных записей организаций».Идентификация аутентифицированной учетной записи пользователя Google

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

Я создал проект Google для нашей платформы и могу успешно использовать Google, чтобы пользователь мог аутентифицировать (https://accounts.google.com/o/oauth2/auth) стандартным способом с использованием областей openid email profile. Предполагая, что пользователь аутентифицируется с помощью Google, я могу вернуть токен доступа.

Моя проблема, однако, в том, что список претензий, которые возвращаются, недостаточно для того, чтобы определить, к какой Организации принадлежит учетная запись Google. Я думал, что претензия «Хостинг домен» может однозначно идентифицировать учетную запись google как рабочую учетную запись нашего клиента, однако, если пользователь регистрируется с использованием псевдонима электронной почты, а не адреса основного адреса «Work», то хостинг-домен будет неправильным.

Мне нужно средство для обнаружения того, на какой «рабочей учетной записи» принадлежит аутентифицированная учетная запись Google, чтобы я мог сопоставить ее с правой Организацией на моей платформе.

пример поможет я думаю:

  1. Наш клиент называется «ABC Ltd»
  2. Они имеют Google Работа учетной записи, посредством которой первичный адрес электронной почты каждого (домен)»... @ абв .com». У пользователей также есть псевдонимы электронной почты («... @ anotherdomain.com», «... @ gmail.com» и т. Д.)
  3. Если пользователь аутентифицируется как «[email protected]», заявка «Хозяин домена» возвращается как «abc.com», и мы можем идентифицировать как учетную запись «Пользователь», так и «Работа» (yay)
  4. Однако, если аутентификация с псевдонимом электронной почты, например, «[email protected]», назад (пусто) или «gmail.com», а не «abc.com». Не похоже, что у меня есть доступ к их основному адресу электронной почты «[email protected]» (сбой).

Любые предложения о том, как я должен открыть «Рабочую учетную запись» аутентифицированного пользователя? Какой-то другой «объем» для запроса? или другой API?

Спасибо.

ответ

0

Если пользователь выполняет проверку подлинности, как «[email protected]», то «припаркованный домен» требование возвращается как «abc.com», и мы можем определить как пользователя и работа счета (яй)

Однако, если аутентификация с псевдонимом электронной почты означает, что у них есть такие , что и «[email protected]», хостинг-домен возвращается как (пустой) или «gmail.com», а не «abc.com». У меня также нет доступа к основному адресу электронной почты «[email protected]» (сбой).

Для «рабочих учетных записей» пользователь не может получить адрес gmail.com в качестве псевдонима. Gmail не поддерживает это. [email protected] и [email protected] являются отдельными учетными записями. Таким образом, функция работает так, как она была разработана. не знаете, где вы получили информацию «alias», но происходит то, что мы поддерживаем мульти-логин.Пользователь может одновременно войти в несколько учетных записей и легко переключаться между ними. Когда они впервые получат одобрение Oauth, они могут выбрать учетную запись, которую они хотят. В следующий раз это зависит от параметров запроса oauth.

Если вы знаете размещенный домен сайта, на котором пользователь пытается войти в систему, вы можете передать этот hd = abc.com на запросы авторизации google и выбрать подходящую учетную запись.

Смежные вопросы