Как защитить веб-API с помощью Azure AD B2C

У меня есть приложение Angular и отдельное решение для веб-API, созданное с помощью .NET Core. Я успешно настроил аутентификацию с помощью Azure AD B2C. Я могу войти в приложение angular. Однако я хотел бы защитить один из моих вызовов веб-API. то есть http://localhost/Profile/GetProfile. Проблема в том, что я могу успешно запросить этот URL-адрес, даже если не вошел в систему.

Я использовал код из образца приложения в github и странно, я получаю 401 неавторизованный при попытке сделать вызов API из моего ClientApp. Однако я могу успешно открыть этот URL-адрес на новой вкладке (вне моего приложения). Я пытаюсь добиться противоположного этому. то есть он должен 401 из браузера, но 200 из моего ClientApp. Что я делаю не так?

Кстати, пример приложения выдает необработанное исключение при попытке перейти к пункту меню todo.


person lightbulb112    schedule 10.10.2020    source источник
comment
У меня работает образец. Однако у меня все еще есть проблема 401 с моим собственным приложением.   -  person lightbulb112    schedule 21.10.2020


Ответы (1)


Проблема в том, что я могу успешно запросить этот URL-адрес, даже если не вошел в систему.

Это связано с тем, что кеш все еще существует после успешного входа в систему. После того, как вы использовали режим конфиденциальности браузера, вам нужно снова войти в систему.

А эти скриншоты ниже того, чего вы хотите добиться? Вы можете расшифровать токен в этом. Если запрошенный токен успешно не соответствует конечной точке API. Если да, проверьте ваше клиентское приложение (API persions) и серверное приложение (предоставление API).

  1. 401 из браузера введите здесь описание изображения

2.200 из моего ClientApp. (Вот демонстрация microsoft graph me/endpoint.) введите здесь описание изображения

person Chauncy Zhou    schedule 12.10.2020
comment
те же результаты после выхода из системы, очистки кеша и запуска в приватном режиме. - person lightbulb112; 21.10.2020
comment
Я добавил скриншот необработанного исключения из примера приложения. - person lightbulb112; 21.10.2020