Приложение-приложение, использующее Windows Azure ACS для аутентификации пользователя. У меня ACS настроен на использование Windows Azure Active Directory (WAAD) в качестве поставщика удостоверений. Это работает по большей части, и пользователи могут войти в мое приложение, используя идентификаторы, которые я предоставил для них в WAAD. Тем не менее, проблема заключается в том, что если пользователь подписывается на другую учетную запись Microsoft и в том же экземпляре браузера пытается войти в мое приложение, он получает уродливую ошибку ACS «ACS20012: запрос не является допустимым сообщением протокола WS-Federation ». Например, если я открываю Chrome и подписываюсь на портал управления Windows Azure с помощью моего идентификатора Windows Live, а затем открываю новую вкладку и пытаюсь войти в мое пользовательское приложение, я получу эту ошибку. Если я открою новый браузер или очищу свои файлы cookie, я могу войти в него просто отлично.Azure ACS с WAAD как IdP дает ошибку протокола WS-федерации, если уже подписан в другую учетную запись Microsoft
Должен ли я входить в оба приложения в одном экземпляре браузера?
Я не уверен, что аналогия одновременного входа в несколько аккаунтов Google в том же браузере. Во-первых, я не пытаюсь дважды входить в один и тот же STS или, по крайней мере, не в том же экземпляре. Мой Azure ACS - myapp.accesscontrol.windows.net, и если портал управления Windows Azure использует ACS (я не знаю, есть они или нет), они, безусловно, находятся на другом экземпляре. Также IdP не совпадают, один из них - LiveId, а один - WAAD. Это по-прежнему кажется, что он должен работать. Что мне не хватает? – Nathan
Я пробовал эксперимент Hotmail, и он работал так, как вы ожидали. Я могу войти в Hotmail (теперь Outlook.com), а затем на другой вкладке я могу войти в мое приложение. Но если я запишусь на портал управления Azure, а затем попробую, я получу ошибку. Спасибо за вашу помощь. Кроме того, спасибо за обновленную ссылку о том, как иметь несколько учетных записей пользователей в Chrome, я не знал об этой функции, и она выглядит полезной. – Nathan
круто! :) И все же, пожалуйста, настройте URL-адрес ошибки для вашего полагающегося стороннего приложения, чтобы ваши пользователи не увидели уродливую страницу ошибок ACS, если произошла какая-либо другая ошибка. Btw, ошибка также будет сгенерирована, если пользователь «откажет» в доступе к вашему приложению через Social Login. В первый раз, когда вы входите в свое приложение с помощью [Google/FaceBook/Yahoo], соответствующий социальный вход запрашивает у пользователя разрешение на ваше пространство имен имен .accesscontrol.windows.net. Если пользователь откажется, он снова увидит ошибку ACS. – astaykov