2

У меня настроено мое приложение для использования стратегии токена Azure B2C с неявным потоком, чтобы дать мне токены через вход после входа/входа в URI. Это прекрасно работает, и токены разрешают без заминок.Azure B2C Implicit Flow для SPA с использованием Auth API дает недопустимый токен для области openid

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

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 doesn't support SPAs at this point, но ранее я слышал от представителей Microsoft, что это должно работать.

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

+0

Существует аналогичное сообщение: http://stackoverflow.com/questions/33975012/authenticating-against-a-webapi-using-azure-b2c-from-an-spa-angular-and-adal-js/ 38035044 # 38035044 –

+0

Я уже видел этот пост. Этот вопрос касается не ADAL, а конечной точки маркера. Я не разрабатываю сам СПА, поэтому не могу контролировать его. – starmandeluxe

+0

Можете ли вы дать более подробную информацию о том, как вы защищаете свой api? –

ответ

1

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

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

+0

Спасибо, я действительно искал, где голосовать за него. Добавлено мое! – starmandeluxe

+0

Похоже, вчера этот запрос был завершен! Большой! Но я не совсем уверен, как сделать тихое обновление с клиентской стороны ... единственная информация об этом - это одна строка: «Silent Обновите токен до истечения срока действия, чтобы получить токен обновления». Означает ли это, что снова нужно использовать конечную точку входа? – starmandeluxe