Ожидаемое поведение входа и выхода из ForgeRock (для единого входа)

Да, в ES5 они запрещены (и в строгом режиме, все реализации бросают). См. Также замечательная статья Kangax для операторов функций в неаккуратном режиме.

Однако в ES6 они являются объявлением функций уровня блока с новой семантикой. См. Также . Какова точная семантика блочных функций в ES6? . Это похоже на то, что Chrome реализует здесь; foo недоступен вне блока if.

1
задан nanosoft 16 January 2019 в 03:31
поделиться

1 ответ

После долгих исследований, наконец, я выяснил:

Логин поведения:

Верно! Если пользователь вошел в app1 и затем нажал на URL app2 в другой вкладке / окне того же браузера (не в приватном режиме) , то он уже должен войти в app2. Для app2 отдельный вход в систему не требуется.

Как app2 узнает, какого пользователя войти в систему?

Это делается путем чтения файлов cookie всеми приложениями, интегрированными в SSO. Реализация SSO установит cookie в окне браузера пользователя для определенного домена, который будет доступен приложениям. Этот файл cookie сообщит приложениям, какой пользователь вошел в систему. И теперь приложения знают, кто этот аутентифицированный пользователь, и приложения могут выполнять свои конкретные действия, такие как проверка авторизации и другие обычные вещи. Но если пользователь использует другой браузер , скажем, для app1 chrome и для app2 firefox, то в этом случае, поскольку cookie-файлы не могут быть общими для app2, пользователь снова должен пройти процесс аутентификации. Это поведение останется неизменным независимо от того, открыты ли приложения для Интернета или нет.

Поведение при выходе из системы:

Существуют различные варианты, которые можно выбрать. Там нет жесткого правила. Если вы хотите, чтобы выход из одного приложения также подразумевал выход из всех других приложений, то да, это можно сделать. Одним из способов было бы передать «токен» , установленный реализацией SSO, в cookie браузера во всем запросе. Если действительный токен получен на стороне приложения, выполните этот запрос, иначе выйдите из него.

Также, если у вас все в порядке с другими приложениями, работающими, когда одно приложение вышло из системы, вам не нужно передавать токен в каждом запросе, и выход из системы должен выполняться только на уровне приложения. Нет необходимости запрашивать SSO для выхода из системы.

0
ответ дан nanosoft 16 January 2019 в 03:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: