2017-01-04 2 views
3

Я создаю сервер Backend, который получает идентификатор ID из мобильного приложения (iOS). Как я могу проверить, что этот токен в порядке, и его можно безопасно использовать?Google OpenID Connect: как проверить id_token?

Официальная документация компании Google о проверке токена:

https://developers.google.com/identity/protocols/OpenIDConnect#validatinganidtoken

Он рекомендует проверять ID Токен локально, без отправки запроса подтверждения в Google. Можно ли проверить некоторые поля из идентификатора ID локально, как в документации, или, может быть, я должен отправить какой-либо запрос в Google, чтобы проверить токен?

документации Google упоминает об отладке и проверке идентификатора токен с:

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

Но не рекомендуется использовать его в производстве. Я думал также об использовании токена доступа вместе с идентификатором Токеном и проверить маркер доступа сначала:

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=

Но он делает весь процесс проверки учетных клиента (мобильное приложение, веб-приложение) более безопасным?

+0

Возможный дубликат [Подтвердить токен идентификатора Google] (http://stackoverflow.com/questions/39061310/validate-google-id-token) –

ответ

1

Кулак позвольте мне начать с того, что я не работаю для Google. Тем не менее, я развиваюсь с Google Oauth2 с 2012 года. Некоторое время назад я спросил у Гуглера только этот вопрос.

Его рекомендация была, если у вас есть токен обновления, просто запросите новый токен доступа. Если он плохой, сервер вернет ошибку. Если у вас есть маркер доступа, отправьте запрос, если он плохой, сервер вернет ошибку.

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

Я никогда не беспокоился с токеном. Идентификатор идентификатора - это jwt, поэтому вы можете открыть его, я думаю.

+0

Спасибо за ответ, но это не совсем то, что мне нужно. Использование токена доступа - довольно ясный случай: я посылаю access_token, чтобы получить некоторые данные, и по каждому запросу Google проверяет мой access_token. Но когда я получаю ID-токен, мне не нужно отправлять какой-либо запрос в Google, потому что все подробности у меня есть. Тем не менее, я уверен, что ваш ответ поможет другим vistiors этого вопроса. – nicq

+1

Возможно, я не понял ваш вопрос. Google рекомендует проверить локальный токен, чтобы убедиться, что он действителен. Почему бы вам не следовать их рекомендациям? Моя задача - проверить токен доступа, а tokeninfo просто добавит дополнительную нагрузку, которая вам, вероятно, не нужна. – DaImTo

+0

Да, вы правы в проверке токена JWT локально, что я думаю, что концепция токена JWT ограничивает дополнительный запрос (поставщикам или базам данных). Тем не менее, мне было интересно, безопасно ли обрабатывать идентификатор Token, отправленный через «открытый» API с запросом POST HTTPS на бэкэнд. – nicq

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