Совместное использование токенов аутентификации между ASP.NET Core MVC и приложением Angular4 - PullRequest
0 голосов
/ 24 апреля 2018

В настоящее время у нас есть приложение ASP.NET Core MVC в сочетании с IdentityServer4 для аутентификации.Пользователь проходит проверку подлинности через IdentityServer (с потоком HybridAndClientCredentials) в ADFS, прежде чем он получает доступ к приложению MVC.В SignInScheme на клиенте MVC установлены значения «Cookies».

Мы хотели бы расширить наше приложение MVC для размещения нескольких приложений Angular.Иногда даже больше, чем 1 угловое приложение на просмотр MVC.Ангулярные приложения будут вызывать отдельные ASP.NET Core Web API от имени пользователя.

Мой вопрос заключается в том, как ангулярные приложения узнают, что пользователь уже аутентифицирован в приложении MVC, получают токен доступа и вызываютAPI от имени пользователя?

Я играл с решением Скотт Брэди придумал , но, похоже, нет интеграции между приложением MVC и приложением Angular.Приложение Angular попытается аутентифицироваться на identityserver и ожидать обратного вызова на определенной странице.

Я ищу решение, как разделить маркеры доступа между приложением MVC и приложениями angular, но я застрял.Любая помощь очень ценится.

1 Ответ

0 голосов
/ 24 апреля 2018

Если они уже должны войти в систему через гибридный поток на стороне сервера, то самым простым способом была бы конечная точка в вашем приложении MVC с защитой от файлов cookie, которую клиентское приложение может вызвать для получения токена доступа.

Другой подход заключается в использовании oidc-client-js и получении клиентским приложением Angular собственного токена.

Вы можете абстрагироваться от самого клиентского приложения, так что в дальнейшем вам будет легко изменить механизм. Как это происходит, мы используем комбинацию потоков на стороне сервера и на стороне клиента, и это прекрасно работает.

...