Я ищу несколько предложений по внедрению аутентификации (и авторизации) в нашем приложении GAE. Предполагая, что наше приложение называется someapp, наше требование следующее:
someapp - это в первую очередь для пользователей приложений Google домена, в которых он установлен, но также может выполнять проверку подлинности пользователей из других доменов приложений Google.
Например, можно сказать, что приложения google настроены на domainX.com и domainY.com. Кроме того, admin для domainX.com добавил someapp в свой домен с рынка приложений. Администратор домена domain.com приглашает [email protected] и [email protected] войти в приложение. Оба пользователя домена Google должны иметь возможность использовать свои функции единого входа.
Насколько нам известно, текущие параметры проверки подлинности в движке приложения допускают либо вход в домен, что позволяет только пользователям одного домена регистрироваться в приложении или в федеративном/открытом доступе, что позволит пользователям любого домена регистрироваться в приложение. Не существует промежуточной опции, которая позволяла бы только пользователям ранее разрешенных доменов регистрироваться в приложении. Означает ли это, что наш единственный вариант - оставить в стороне проверку приложений Google и реализовать собственную аутентификацию?
Также в нашем примере выше, что, если domainX.com и domainY.com добавили someapp. Если [email protected] переместится на someapp.appspot.com, где будет установлена установка приложения, то установлена на домене X.com или том, который установлен на доменеY.com.
Аутентификация не подразумевает авторизацию. Все, что система федеративного ID делает для вашего приложения, дает вам имя пользователя/пользователя, которому вы можете доверять. Таким образом, вы можете настроить учетные записи пользователей, привязанные к этой информации, и полагаться на то, что всякий раз, когда вы видите, что userid вы разговариваете с одним и тем же пользователем. Или в случае приложений в домене, когда вы видите кого-то с этим доменом в своем userid.
Это полностью зависит от вашего приложения, чтобы решить, имеет ли этот идентификатор пользователя какое-либо значение в вашем приложении. Если я сейчас прихожу к вашему приложению с моей учетной записью google, он должен сказать: "О, я не видел вас раньше, вы бы хотели присоединиться?"... он должен (в зависимости от вашего приложения) не просто предположить, что я уполномочен использовать ваше приложение, просто потому, что я сказал вам свое имя.
Я не уверен, откуда вы взяли "модель входа в домен"? Единственными двумя вариантами являются учетная запись Google и Open/FederatedID, ни одна из которых не пытается ограничить доступ пользователей.
В вашем последнем примере пользователи, охватывающие несколько учетных записей google, будут видеть разные результаты в зависимости от того, разрешены ли они с несколькими входами или нет. Большинство пользователей будут представлены на экране, чтобы выбрать, какую учетную запись google они имеют в виду, прежде чем продолжить.