2016-01-06 3 views
4

Я планирую создать приложение с базовым интерфейсом и клиентом Spring RESTful API на AngularJS.Безопасный API-интерфейс RESTful с сервером авторизации Google OAuth2

Я хотел бы защитить свой API-интерфейс Spring RESTful с помощью сервера авторизации Google OAuth2.

У меня есть архитектурный вопрос:

После успешной авторизации в Google я получить маркер доступа с сервера Google OAuth2 авторизации. Мне нужно передать этот accessToken в мое клиентское приложение (AngularJS), или мне нужно ввести собственный уровень безопасности в моем бэкэнд-приложении (например, с JWT) и на основе Google accessToken выпустить собственный jwtToken и передать этот токен моему клиенту приложение?

Другими словами - безопасно ли показывать доступ к GoogleToken от Google к моему клиенту AngularJS и использовать его для аутентификации в моем собственном RESTful API?

Кроме того, в случае моего API RESTful мне нужно проверить Google accessToken с сервером Google Auth после каждого вызова из моего клиентского приложения (AngularJS) в мой безопасный API RESTful?

+0

Какова цель вашего приложения? Вам нужно получить доступ к API Google? Если я не ошибаюсь, токен Google Oauth имеет ограничение (25 токенов обновления для каждого пользователя) – Valijon

+0

Да, он должен получить доступ к API Google. – alexanoid

+0

Я вижу. Каждый пользователь будет предоставлять учетные данные? Если да, вам необходимо пройти аутентификацию с указанными учетными данными и сохранить свою заявку (причина ограничения запроса). Но есть также ограничения токена [https://developers.google.com/identity/protocols/OAuth2#expiration](https://developers.google.com/identity/protocols/OAuth2#expiration) – Valijon

ответ

3

Безопасно ли показывать доступТокнуть от Google к моему клиенту Приложение AngularJS и использовать его для аутентификации в моем собственном API RESTful?

Это не ваш токен доступа, он предназначен для использования вашим клиентом. Это совершенно безопасно, чтобы дать им токен, поскольку они ДОЛЖНЫ отправить токен на ваш сервер с каждым запросом. Это связано с природой REST.

В случае моего API RESTful мне необходимо проверить Google accessToken с сервером Google Auth после каждого вызова из моего клиентского приложения (AngularJS) в мой безопасный API RESTful?

Да, вы должны звонить Google каждый раз, когда ваши клиенты отправляют токен на ваш сервер. Существует несколько причин, по которым токен может быть признан недействительным. Например, пользователь может запретить доступ из приложения, маркер просто истек, и т.д.

More reading on implementing a REST backend with Google OAuth 2

Смежные вопросы