Неявный поток Azure B2C для SPA с использованием API аутентификации дает недопустимый токен для области openid

Я настроил свое приложение для использования стратегии токенов неявного потока Azure B2C, чтобы предоставлять мне токены через вход после регистрации / входа в URI. Это работает нормально, и токены авторизуются без сучка и задоринки.

Однако клиент является SPA, поэтому, когда срок действия токена истекает, документированный обходной путь, предложенный Microsoft, заключается в использовании iframe, который выполняет вызов конечной точки authorize, как описано здесь: Получить токены доступа

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?client_id={my_client_id}&response_type=token&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F&scope=openid&response_mode=fragment&state=12345&nonce=678910&prompt=none&domain_hint=organizations&[email protected]

К сожалению, если я запрашиваю id_token, используя область openid с этой конечной точкой, фактически возвращенный токен не авторизуется через B2C в моем API. Изучение токена JWT в декодере также показывает, что сам токен выглядит иначе, чем тот, который был получен после входа в систему из B2C.

Я понимаю, что эта документация предназначена для Azure Active Directory и что B2C на данный момент не поддерживает SPA, но ранее я слышал от представителей Microsoft, что это должно работать.

Неужели это еще не поддерживается? А если нет, есть ли обходные пути для SPA?


person starmandeluxe    schedule 22.11.2016    source источник
comment
Есть похожий пост у нее: stackoverflow.com/questions/33975012/   -  person Alain Croisetière    schedule 25.11.2016
comment
Я уже видел этот пост. Этот вопрос касается не ADAL, а конечной точки токена. Я не разрабатываю сам SPA, поэтому не могу его контролировать.   -  person starmandeluxe    schedule 25.11.2016
comment
Не могли бы вы подробнее рассказать о том, как вы защищаете свой api?   -  person Alain Croisetière    schedule 25.11.2016
comment
С 28 ноября 2016 года эта функция доступна. См. Это: feedback.azure.com/forums/169401-azure-active-directory/   -  person user1843640    schedule 30.11.2016
comment
@ user1843640 см. мой комментарий ниже. Это было 29 ноября, а не 28.   -  person starmandeluxe    schedule 01.12.2016


Ответы (1)


Многие современные приложения имеют одностраничный интерфейс, написанный в основном на JavaScript. Они часто используют такие фреймворки, как AngularJS, Ember.js или Durandal. Общедоступная служба Azure AD поддерживает эти приложения с помощью неявного потока OAuth 2.0. Однако этот поток пока недоступен в Azure AD B2C.

Эта функция пока не поддерживается, как указано в документе. Если вы хотите, чтобы эта функция поддерживалась в Azure AD B2C, вы можете проголосовать за нее на странице здесь.

person Fei Xue - MSFT    schedule 23.11.2016
comment
Спасибо, собственно искал, где за это проголосовать. Добавил мой! - person starmandeluxe; 23.11.2016
comment
Похоже, вчера этот запрос был выполнен! Большой! Но я не совсем уверен, как выполнить автоматическое обновление со стороны клиента ... единственная информация об этом - это одна строка: Тихое обновление токена до истечения срока действия t получить токен обновления. Означает ли это просто снова использовать конечную точку входа? - person starmandeluxe; 30.11.2016