Я с нетерпением жду возможности интегрировать ведение журнала в пользователях с использованием аутентификации Facebook. У меня есть приложение, защищенное OpenAM, и пользователи уже зарегистрированы там. У меня есть своя страница входа в систему, и я не хотел бы переместить ее в OpenAM и сохранить ее в своем приложении. На данный момент я использую вызовы REST для аутентификации пользователей в OpenAM. Теперь я хочу интегрировать логин с помощью Facebook. Моя идея внедрения заключается в следующем:Войти через Facebook в OpenAM используя REST
- входа пользователя в систему с использованием оригинальных учетных данных и проверки подлинности в OpenAM.
- От пользователя требуется связать свою учетную запись на Facebook с учетной записью OpenAM .
- Пользователь аутентифицирует свою учетную запись Facebook (https://www.facebook.com/dialog/oauth?app_id= {app-id-as-created-in-fb-developers-console} & redirect_uri = {my-rest-service}).
- Это вернет код и который может быть использован для перепроверить против Facebook, чтобы убедиться, что пользователь прошел проверку подлинности против моего приложения и это не вмешательство хакера (http://graph.facebook.com/debug_token?%20input_token= {код-возвращений из-Facebook} & access_token = {my-app's-access-token}. Ответ будет содержать идентификатор приложения, который может быть проверен в отношении моего идентификатора приложения . При успехе я позвоню в OpenAM, чтобы связать пользователя с OpenAM с его учетными данными Facebook (Не уверен, что все использовать здесь.)
- Далее, всякий раз, когда пользователь хочет логин, он/она может использовать Facebook , где в URL-адресе перенаправления будет моя служба REST, а код , возвращенный из Facebook, можно будет перепроверять из Facebook, а затем OpenAM будет вызываться для аутентификации.
Мои запросы:
- Я не уверен, что этот подход является целесообразным.
- Как связать существующего пользователя в OpenAM с учетной записью Facebook?
- Как аутентифицировать пользователя в OpenAM после входа в Facebook, с userID?
- Является ли пользователь userID (числовое, возвращается с графа Facebook в JSON отклик), уникальный и постоянный?
- Я также хотел бы предоставить пользователям возможность связать существующую учетную запись Facebook и связать новую. Как мне это сделать?
Извинения за задание слишком многих вопросов, но я новичок в OpenAM и OAuth и стараюсь следовать подходу, о котором я говорил выше. Спасибо.
Благодарим за отзыв, Уоррен. Мне удалось выяснить способ аутентификации моего пользователя в facebook и получить токен обратно. Теперь мой запрос заключается в том, чтобы аутентифицировать моего пользователя в OpenAM без использования его учетных данных, но этот токен (или что-нибудь еще, что можно вернуть из Facebook). Кроме того, я рассматриваю ваш вариант аутентификации пользователя с использованием новой цепочки. Было бы очень полезно, если бы вы могли пролить свет на него с подробностями, например, как аутентифицировать пользователя в новой цепочке? –
Вы должны разрешить OpenAM обрабатывать аутентификацию facebook, если вы хотите, чтобы пользователь аутентифицировался в OpenAM без пароля. Вы можете вызвать альтернативную цепочку аутентификации, используя параметр? Service = chain, когда вы отправляете пользователя в OpenAM для аутентификации. Попробуйте настроить социальную аутентификацию в OpenAM - он должен стать яснее –
Большое спасибо, Уоррен. Сейчас все становится лучше. Я настроил цепочку аутентификации, и я могу аутентифицировать пользователя, используя Facebook. Любая идея, как я могу получить iPlanetDirectoryPro Cookie из этой цепочки. Мое приложение проверяет этот файл cookie, и поэтому обязательно, чтобы я получил это как токен для успешного входа в систему. –