2016-05-05 3 views
1

Я с нетерпением жду возможности интегрировать ведение журнала в пользователях с использованием аутентификации Facebook. У меня есть приложение, защищенное OpenAM, и пользователи уже зарегистрированы там. У меня есть своя страница входа в систему, и я не хотел бы переместить ее в OpenAM и сохранить ее в своем приложении. На данный момент я использую вызовы REST для аутентификации пользователей в OpenAM. Теперь я хочу интегрировать логин с помощью Facebook. Моя идея внедрения заключается в следующем:Войти через Facebook в OpenAM используя REST

  1. входа пользователя в систему с использованием оригинальных учетных данных и проверки подлинности в OpenAM.
  2. От пользователя требуется связать свою учетную запись на Facebook с учетной записью OpenAM .
  3. Пользователь аутентифицирует свою учетную запись Facebook (https://www.facebook.com/dialog/oauth?app_id= {app-id-as-created-in-fb-developers-console} & redirect_uri = {my-rest-service}).
  4. Это вернет код и который может быть использован для перепроверить против Facebook, чтобы убедиться, что пользователь прошел проверку подлинности против моего приложения и это не вмешательство хакера (http://graph.facebook.com/debug_token?%20input_token= {код-возвращений из-Facebook} & access_token = {my-app's-access-token}. Ответ будет содержать идентификатор приложения, который может быть проверен в отношении моего идентификатора приложения . При успехе я позвоню в OpenAM, чтобы связать пользователя с OpenAM с его учетными данными Facebook (Не уверен, что все использовать здесь.)
  5. Далее, всякий раз, когда пользователь хочет логин, он/она может использовать Facebook , где в URL-адресе перенаправления будет моя служба REST, а код , возвращенный из Facebook, можно будет перепроверять из Facebook, а затем OpenAM будет вызываться для аутентификации.

Мои запросы:

  1. Я не уверен, что этот подход является целесообразным.
  2. Как связать существующего пользователя в OpenAM с учетной записью Facebook?
  3. Как аутентифицировать пользователя в OpenAM после входа в Facebook, с userID?
  4. Является ли пользователь userID (числовое, возвращается с графа Facebook в JSON отклик), уникальный и постоянный?
  5. Я также хотел бы предоставить пользователям возможность связать существующую учетную запись Facebook и связать новую. Как мне это сделать?

Извинения за задание слишком многих вопросов, но я новичок в OpenAM и OAuth и стараюсь следовать подходу, о котором я говорил выше. Спасибо.

ответ

0

Будучи в стороне, в будущем, возможно, будет намного проще, если вы делегируете весь вход в OpenAM и позволяете ему иметь дело с локальным логином и социальным. Это упростит добавление социальных услуг.

Если вы хотите сохранить свою текущую архитектуру, вы можете создать новую цепочку аутентификации в OpenAM, которая имеет только социальный (facebook) логин. Вы должны перенаправить пользователя в эту цепочку. Как только процесс социального входа будет завершен, вы можете перенаправить OpenAM на страницу своего приложения.

Чтобы связать локальный и социальный логин, вы должны будете предложить какую-то учетную запись, требующую вашего приложения. После того, как они сделают социальный логин, вы можете попросить их связать свою локальную учетную запись, указав имя пользователя и пароль. Вы можете вызвать REST API OpenAM для проверки учетных данных.

Этот вид ссылок может быть запутан для пользователей - поэтому иногда лучше рассматривать их как отдельные учетные записи или иметь процесс миграции для перехода пользователя на социальный.

+0

Благодарим за отзыв, Уоррен. Мне удалось выяснить способ аутентификации моего пользователя в facebook и получить токен обратно. Теперь мой запрос заключается в том, чтобы аутентифицировать моего пользователя в OpenAM без использования его учетных данных, но этот токен (или что-нибудь еще, что можно вернуть из Facebook). Кроме того, я рассматриваю ваш вариант аутентификации пользователя с использованием новой цепочки. Было бы очень полезно, если бы вы могли пролить свет на него с подробностями, например, как аутентифицировать пользователя в новой цепочке? –

+0

Вы должны разрешить OpenAM обрабатывать аутентификацию facebook, если вы хотите, чтобы пользователь аутентифицировался в OpenAM без пароля. Вы можете вызвать альтернативную цепочку аутентификации, используя параметр? Service = chain, когда вы отправляете пользователя в OpenAM для аутентификации. Попробуйте настроить социальную аутентификацию в OpenAM - он должен стать яснее –

+0

Большое спасибо, Уоррен. Сейчас все становится лучше. Я настроил цепочку аутентификации, и я могу аутентифицировать пользователя, используя Facebook. Любая идея, как я могу получить iPlanetDirectoryPro Cookie из этой цепочки. Мое приложение проверяет этот файл cookie, и поэтому обязательно, чтобы я получил это как токен для успешного входа в систему. –

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

  • Нет связанных вопросов^_^