Как настроить пользовательскую аутентификацию пользователя с помощью Google Cloud Endpoints - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь понять, как использовать облачные конечные точки с пользовательской аутентификацией.Из документов я понимаю, что он начинается с securityDefinitions:

securityDefinitions:
    your_custom_auth_id:
      authorizationUrl: ""
      flow: "implicit"
      type: "oauth2"
      # The value below should be unique
      x-google-issuer: "issuer of the token"
      x-google-jwks_uri: "url to the public key"
      # Optional. Replace YOUR-CLIENT-ID with your client ID
      x-google-audiences: "YOUR-CLIENT-ID"

Вот как я понимаю поток:

  1. Потребитель API отправляет запрос с токеном JWT взаголовок
  2. ESP проверяет этот токен с помощью authorizationUrl
  3. Запрос перенаправлен или ESP возвращает ошибку.

Мои вопросы:

  • Является ли поток выше правильным?
  • Как следует реализовать authorizationUrl.Как выглядит запрос, какой ответ должен быть возвращен в случае успеха или неудачи

  • Как насчет этих значений?x-google-эмитент: "эмитент токена" x-google-jwks_uri: "ссылка на открытый ключ" x-google-audiences: "YOUR-CLIENT-ID"

1 Ответ

0 голосов
/ 10 ноября 2018

Настройка пользовательской аутентификации для конечных точек

Чтобы настроить пользовательскую аутентификацию для конечных точек (и в соответствии со спецификацией OpenAPI v2), вам понадобятся две части:

  1. Определите свою пользовательскую схему аутентификации вsecurityDefinitions раздел спецификации
  2. . Примените вашу пользовательскую схему аутентификации (определенную в # 1) ко полному API или определенным операциям , используя securityполе.

Документы о конечных точках Google Cloud описывают это здесь .

Определения безопасности OpenAPI Spec *

Некоторые поля в разделе SecurityDefinitions OpenAPI.спецификация предназначена для производителя API, а некоторые для потребителя API.

Следующие поля предназначены для производителя API и указывают конечные точки , как проверять токены доступа.которые сопровождают запросы API:

  • тип: "oauth2"
  • x-google-эмитент: "эмитент токена"
  • x-google-jwks_uri: "URL для общественностиey "
  • x-google-audiences:" YOUR-CLIENT-ID "

Эти поля указаны производителем API и сообщают потребителю , какполучите действительный токен доступа:

  • authorizationUrl
  • flow

Re: Ваши вопросы

  1. Правильно.Вот документация о том, как потребитель должен отправить токен доступа с запросом
  2. ESP проверяет токен доступа, используя открытые ключи, указанные в свойстве x-google-jwks_uri спецификации, и гарантирует, чтоЭмитент токена соответствует источнику, указанному в поле x-google-issuer securityDefinition.
  3. Правильно.

Что касается ваших вопросов, authorizationUrl должен быть настроен поставщиком OAuth2, которого выИспользуем.Этот URL должен позволить потребителю выполнять неявный поток OAuth2 для получения токена доступа.Все, что вам нужно сделать, это указать

...