Проверка приложения для OAuth 2.0 для серверных приложений - PullRequest
0 голосов
/ 22 сентября 2019

Требуется ли проверка приложения Google для OAuth 2.0 от сервера к серверу?

Мы работаем над приложением, которое пишет в область действия Google Sensitive.Мы искали в документации Google OAuth 2.0, касающейся приложений «сервер-сервер», и не можем определить, требуется ли проверка приложения.Единственный однозначный ответ - в этом фрагменте от сервера к серверу. OAuth docs

Ваше приложение вызывает API Google от имени учетной записи службы, поэтому пользователи не участвуют напрямую.

Наше приложение размещено в суб-правительственной среде, которая блокирует трафик, исходящий извне.Мы успешно продемонстрировали область чтения и записи в «публичной» конфиденциальной области пользователя (поскольку трафик OAUTH инициируется изнутри) с помощью клиентской библиотеки Google API для JavaScript.

Но мы не можем проверить приложение с помощью DNS или другими методами с использованием открытого метода Oauth2.Мы считаем, что это связано с тем, что для каждого метода проверки серверам Google требуется доступ к внутренней (правительственной) среде.Нам также не разрешено использовать внутренний «приватный» метод.

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

enter image description here

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Да, для потока OAuth, который вы описали.

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

Обзор проверки подлинности Google Начало работы с проверкой подлинности

Но,мы не можем проверить приложение с помощью DNS или других методов, используя открытый метод Oauth2.Мы считаем, что это связано с тем, что для каждого метода проверки серверам Google требуется доступ к внутренней (правительственной) среде.Нам также не разрешается использовать внутренний «приватный» метод.

На какое приложение вы ссылаетесь?Серверы Google не имеют доступа к вашим внутренним серверам.При использовании пользовательского типа потока OAuth Google проверяет URL-адрес обратного вызова для вашей службы.Это означает, что Google должен подтвердить, что вы владеете / управляете доменным именем.Поскольку это внутренний частный домен, это невозможно.Однако вы используете неверный тип потока OAuth, поэтому опасаетесь, что это неправильное направление.

Для авторизации между серверами существует множество методов.Наверное, самый лучший и простой способ - подражать тому, как это делает OAuth.Создайте подписанный JWT с закрытым ключом сертификата на одном сервере и проверьте подписанный JWT, используя открытый ключ на другом сервисе.Теперь вы убедились, что запрос действителен из известного источника.Затем вставьте в JWT идентификационные данные, разрешения / роли и т. Д., Которые вы хотите внедрить / контролировать.Другая сторона проверяет, что запрошенные разрешения были предоставлены для идентификации.

Введение в веб-токены JSON Аутентификация на основе токенов Made Easy

0 голосов
/ 22 сентября 2019
curl -F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token
...