Я создал приложение, которое по существу является REST Web API. Я хотел бы предоставить другим разработчикам возможность вызывать эти API от имени пользователя. Я решил продолжить проверку подлинности OAuth, основывая мою службу аутентификации на IdentityServer3. Прямо сейчас мне удалось создать токен доступа для стороннего клиента, используя поток авторизации.IdentityServer3 - OAuth Flows, разные подходы
Что не убеждает меня в том, как обращаться со своим SPA, который в настоящее время вызывает мой веб-API, используя только аутентификацию на основе cookie (токен анти-подделки). Это приложение написано в Javascript на основе Backbone. В основном, это то, что он делает, просто вызывает мой веб-API и отображает результаты. Меня путают разные потоки грантов, и я не хочу создавать дыры в безопасности.
Solutions Я подумал:
- генерировать маркер непосредственно с помощью JavaScript. Какой поток следует использовать? Как обрабатывать токены?
- генерирует токен из серверного приложения и передает сгенерированный токен обратно в SPA (очевидно, через канал SSL). Это как-то безопасно? Если да, какой поток я должен использовать (я бы сказал, поток кода авторизации)? Как обрабатывать токены?
Как вы справитесь?
Спасибо,
Marco
Спасибо! Я уже наткнулся на эту замечательную статью. Если я правильно понимаю, правильным использованием будет Implict Flow и пусть мой Javascript SPA обрабатывает этот токен доступа. Теперь встает вопрос: не «небезопасно», чтобы клиент «браузера» обрабатывал непосредственно токен? Благодарю. – Marconline
Зависит от API. Но если вам нужны звонки из JS, вам нужно предоставить JS токен. Возможно, другой дизайн заключается в том, что JS вызывает первый уровень API, который, в свою очередь, вызывает второй уровень API. Конечно, для второго API нужен свой токен доступа, который является вашей следующей проблемой для решения. –
Хорошо, спасибо. Похоже, что Implicit Flow является правильным решением. Я не буду создавать второй уровень API. благодаря – Marconline