Возможен ли этот сценарий единого входа с FusionAuth? - PullRequest
0 голосов
/ 06 июня 2019
  1. Я захожу в свое приложение и проверяю, есть ли файл cookie JWT
  2. Если он есть, я анализирую его и начинаю проверять, есть ли у пользователя доступ к моему приложению
  3. Еслиего там нет, я буду перенаправлять пользователя для аутентификации в FusionAuth
  4. . После успешного входа в систему пользователь будет перенаправлен обратно в мое приложение

Как указать на шаге 3 идентификатор fusionauth длямое приложение?

И как мне указать, что я хочу перенаправить на свое приложение после успешного входа в систему?

Я предполагаю, что fusionauth работает на fusionauth.mydomain.com и приложение на myapp.mydomainФайлы cookie .com и JWT будут создаваться на mydomain.com, поэтому они будут видны обоим.

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Да, это возможно.

На шаге 3 вы перенаправите браузер на страницу входа в FusionAuth.Перейдите к Settings --> Applications в пользовательском интерфейсе FusionAuth и нажмите зеленую кнопку просмотра для приложения в вопросе.

Откроется диалоговое окно с информацией об интеграции (если вы пользуетесь последней версией FusionAuth).

Вы увидите ссылку примерно так:

OAuth IdP login URL: https://fusionauth.mydomain.com/oauth2/authorize?client_id=ee31103f-2fc1-4bb5-ba95-ac543693503e&response_type=code&redirect_uri={your URI here}

Параметр client_id в этом случае будет идентифицировать ваше приложение для FusionAuth.

А как мне указать, что я хочу перенаправить в свое приложение после успешного входа в систему?

Это настраивается в FusionAuth как авторизованное перенаправление, а затем вы указываете этотот же URL при перенаправлении на FusionAuth для входа в систему.Обратите внимание на параметр redirect_uri в приведенном выше примере URL.Вот скриншот этой конфигурации: https://fusionauth.io/docs/v1/tech/oauth/overview

Я предполагаю, что fusionauth работает на fusionauth.mydomain.com, а приложение на myapp.mydomain.com и JWT cookie будут запущены в mydomain.com, поэтому он будет виден обоим.

FusionAuth в настоящее время не удаляет междоменные файлы cookie.Если вы используете FusionAuth на fusionauth.mydomain.com, файл cookie будет иметь тот же домен и не будет виден myapp.mydomain.com.

Если вы хотите использовать FusionAuth, вам не нужно проверять куки на myapp.mydomain.com, вы просто перенаправите пользователя, если он не вошел в систему, а затем, если у пользователя уже есть сеанс SSOв FusionAuth они будут перенаправлены обратно в ваше приложение.

Вы можете просмотреть наши рабочие процессы входа в систему, чтобы определить тот, который наилучшим образом соответствует вашим требованиям, а затем следовать рекомендованному рабочему процессу.https://fusionauth.io/articles/logins/types-of-logins-authentication-workflows

0 голосов
/ 06 июня 2019

Это стандартный рабочий процесс предоставления кода авторизации OAuth.У нас есть этот рабочий процесс и многие другие, документированные здесь:

https://fusionauth.io/articles/logins/types-of-logins-authentication-workflows

Я предполагаю, что вашим конкретным рабочим процессом, скорее всего, является предоставление кода авторизации для одностраничных приложений с использованием JWT и токенов обновления, которыезадокументировано здесь:

https://fusionauth.io/articles/logins/spa/oauth-authorization-code-grant-jwts-refresh-tokens-cookies

Способ, которым это работает, заключается в том, что вы запускаете рабочий процесс OAuth из своего приложения, перенаправляя браузер на конечную точку /oauth2/authorize FusionAuth.Вам нужно будет предоставить эту информацию для запуска рабочего процесса OAuth:

  • client_id - это можно найти в разделе «Конфигурация приложения» в FusionAuth
  • response_type - для кода авторизациипредоставьте, это будет code
  • redirect_uri - это местоположение, куда вы хотите вернуться после входа в систему с помощью FusionAuth.Вы должны настроить этот URI в FusionAuth на вкладке конфигурации OAuth приложения.

Если вы работаете с FusionAuth 1.6.0 или более поздней версии, вы также можете нажать значок «Просмотр» для своего приложения, и он отобразитсявсплывающее диалоговое окно, которое будет содержать URL-адрес OAuth.Вам все равно нужно будет указать redirect_uri.Вот страница документации для конечной точки Авторизации:

https://fusionauth.io/docs/v1/tech/oauth/endpoints#authorize

После того, как вы это сделаете, вам нужно написать контроллер для вашего redirect_uri.Этот контроллер извлекает code из URL, который генерирует FusionAuth, и вызывает конечную точку /oauth2/token.Этот процесс заменит код авторизации для токена доступа, который является JWT.

Документация для конечной точки /oauth2/otken находится там:

https://fusionauth.io/docs/v1/tech/oauth/endpoints#token

Это поможет вам реализовать ваш контроллер.

...