У меня есть различный RESTful Web Servicesin App Engine, которые обеспечены аутентификации учетной записи Google:Доступ аккаунт Google проверку подлинности веб-службы размещены на App Engine без браузера входа в системе
<security-constraint>
<web-resource-collection>
<web-resource-name>Authentication required</web-resource-name>
<url-pattern>/api/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
После попадания этих веб-служб с помощью браузера клиента, Я перенаправлен на экран входа в учетные записи Google, где я сначала аутентифицирую себя, прежде чем приступать к вызову REST.
Однако теперь мне нужно запустить эти веб-службы с помощью сценариев командной строки в рамках автоматического запуска IC. Поэтому я не хочу, чтобы каждый раз запрашивался вход в браузер. Предпочтительно, я хотел бы поместить имя пользователя и пароль Google в зашифрованный файл на IC-сервере и позволить ему вызвать веб-службы без какого-либо вмешательства человека. Насколько я могу судить, есть несколько вариантов:
- вручную регистрируется через браузер, а затем сохраняет токен доступа, который будет использоваться в сценарии командной строки. Однако, когда истекает срок действия токена, у меня возникнут проблемы.
- получить токен доступа через учетную запись службы учетных записей p12. Похоже, что это работает только для доступа к API Google, таких как BigQuery и Cloud Storage, а не к вашему собственному коду.
- оберните мою веб-службу в удаленном API, с которым мне еще предстоит поэкспериментировать.
Основываясь на моем нынешнем понимании, кажется, что доступ к аутентифицированной пользовательской письменной веб-службе Google не доступен пользователю, не являющемуся человеком. Это верно?
Этот вопрос очень похож на http: // stackoverflow.com/questions/5872974/google-app-engine-security-constraint-is-not-working Однако я открыт для использования учетных записей служб, а не только для имени пользователя и пароля – yunspace