У меня есть 2 разных проекта .NET Core 2.2 MVC. Я использую IdentityServer4 для токен-сервера, Azure B2C для хранилища идентификаторов.
Первое приложение MVC - это обычное приложение MVC, и оно отлично работает с гибридным потоком OIDC.
Второе приложение MVC - это приложение Angular 7 cli, которое обслуживает index.html , а содержит API, который будет вызывать приложение. Угловое приложение будет не вызывать любые другие API напрямую (шаблон шлюза).
Мои вопросы касаются второго приложения - я пытаюсь найти наилучший способ настроить приложение Angular для безопасности.
Мое понимание таково: OIDC Неявный поток выставляет токен доступа в браузере. Гибридный поток OIDC не предоставляет токен доступа (по крайней мере, при попадании на тот же веб-сервер - без CORS), поскольку веб-сервер (клиент) использует обратный канал для получения токена доступа через код авторизации и никогда не подвергается его воздействию. браузер.
ВОПРОС # 1: Правильно ли мое понимание Implicit vs. Hybrid?
Если мое понимание правильное, я думаю, что лучшим вариантом будет гибридный поток даже для приложения Angular, но большинство примеров, которые я видел для использования OIDC с Angular, включают неявный поток и не принимают Преимущество кода авторизации / обратного канала. Избегать наличия токена доступа в браузере кажется большой проблемой, достойной целью, но удивляетесь, почему этого не происходит?
ВОПРОС # 2: Я подаю свой Angular index.html с моего MVC-сервера - почему я не могу просто использовать гибридный поток для защиты страницы index.html и сохранить токен в обратном канале?
Что-то подсказывает мне, что мое понимание всего этого не совсем полное ...