Adal.js - несколько учетных записей пользователей, принадлежащих разным арендаторам / приложениям

0

В нашем текущем SPA у нас есть одна и та же пользовательская настройка для разных арендаторов для dev, test, uat и т.д., Например, пользователь john doe будет иметь следующие a/cs.

[email protected]
[email protected]
[email protected]

У нас есть отдельные приложения, зарегистрированные в AAD для dev, test и uat. Проблема возникает, когда [email protected] регистрируется на сайте dev, имеет кешированный токен для uat, а затем пытается сказать аутентификацию для uat или тестового сайта. В результате мы получаем следующую ошибку.

Дополнительная техническая информация: Идентификатор корреляции: xxxxxxx-fab9-4c08-a96f-a0c20gsgsgsgs Временная метка: 2015-12-06 17: 14: 34Z AADSTS50020: учетная запись пользователя "[email protected]" от поставщика внешней идентификации https://sts.windows.net/xxxxxxxxx/ 'не поддерживается для приложения' xxxxxxxx (uat ortest) '. Учетная запись должна быть добавлена в качестве внешнего пользователя в арендаторе. Повторите попытку и войдите в систему с учетной записью пользователя Azure Active Directory.

Когда пользователь пытается войти на сайт test/uat, я хотел бы заставить все существующие кэшированные токены и заставить пользователя переустановить и захватить токен fesh.

Я попытался использовать

clearCache()

но это не сработало. Я бы хотел избежать выхода из системы до входа в систему.

Я использую adal.js v1.7.

Теги:
azure-active-directory
adal
adal.js

1 ответ

0

Предполагая, что ваши среды имеют разные домены, кеш-маркер не должен быть проблемой, поскольку каждый домен имеет свои собственные. Если вы повторно используете один и тот же домен в разных средах, вам также нужно очистить токены. Основная проблема, с которой вы сталкиваетесь, - это cookie сеанса, который отслеживает пение в статусе с помощью Azure AD пользователя. Если вы не хотите делать явный выход из системы, единственной альтернативой является вставка некоторого параметра в поющий запрос, который сигнализирует Azure AD, что вы хотите, чтобы у пользователя был выбор вместо попытки включения одного знака - что-то вроде подсказки = select_account. Однако это потребует, чтобы вы опустились на уровень вызовов JS, поскольку к каждому запросу будет добавлена точка расширяемости углового уровня (свойство extraqueryparameter init), в том числе те, которые должны быть тихими, как обновление токена, что делает невозможным выполнение API-вызовов. Recap: выйдите из системы при переключении окружения или выполните входные сигналы с функциями уровня JS и введите promp = select_account. Другие трюки включают использование inprivate, incognito, нескольких браузеров и т.д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню