Вики , о которых вы упомянули , также содержат некоторую информацию об этом сценарии с несколькими доменами.По сути, вам нужно захватить предпочтительное имя пользователя и отправить его вместе с запросом на вход.Чтобы захватить имя пользователя для всех приложений одновременно, я бы предложил сохранить его в файле cookie всего домена, который известен всем приложениям.
// Store the username after login
document.cookie = "msal_username=Paul@xyz-corp.com;domain=.xyz-corp.com;path=/"
// use the username
var username = getCookieByName("msal_username"); // find some code to do that
userAgentApplication.loginRedirect(scopes, "&login_hint=" + username);
Недостатком этого является то, что вам необходимо реализовать этов всех ваших приложениях.
приложений в другом домене
Когда приложения размещены в разных доменах, токены кэшируются в домене AMSAL.js не может получить доступ в домене B.
Автоматически выбирать учетную запись в Azure AD
...
Использование подсказки для входа
Если у вас не настроено требование SID или вам необходимо пропустить запрос выбора учетной записи при интерактивных вызовах аутентификации, вы можете сделать это, указав login_hint и, необязательно, domain_hint в качестве extraQueryParameters в интерактивном MSAL.js.методы (loginPopup, loginRedirect, seekTokenPopup и acquTokenRedirect).Например:
userAgentApplication.loginRedirect(scopes, "&login_hint=<preferred_username>&domain_hint=organizations");
Вы можете получить значения для login_hint и domain_hint, прочитав утверждения, возвращенные в токене ID для пользователя.
должен быть установлен login_hintк утверждению предпочитаемого_пользователя в идентификаторе токена.