Azure проверка токена доступа к рекламе на веб-интерфейсе python по отношению к клиентскому приложению - PullRequest
0 голосов
/ 31 марта 2020

Я использую azure для размещения веб-приложения и веб-интерфейса.

Конфигурация среды:

  1. веб-API: Разработано с использованием django развернуто / hosted on linux vm
  2. Веб-приложение: разработано с использованием Angular2, развернуто / размещено в службе приложений

Для аутентификации я использую протокол OAUTH2.

Регистрационные данные приложения для OAUTH2

Под одним арендатором: "my-tenant-id-121"

  1. Зарегистрирован web api и предоставленные права доступа access_as_user
    • здесь предположим, app_id / client_id: "my-api-id-123"
    • APP uri: 'api: // my-api-id-123 '
    • scope: ' api: // my-api-id-123 / access_as_user '
    • генерируется секрет клиента но не использую его.
  2. Зарегистрированное веб-приложение и предоставленные базовые c данные, перенаправление uri и т. д.
    • здесь предполагается, что webapp app_id / client_id: "my- webapp-id-123 "
    • Под pp регистрация, предоставленные разрешения доступа к API для зарегистрированных выше API с использованием разрешений API

Аутентификация:

  1. клиент (веб-приложение ): Использование ng2-adal библиотеки
  2. ресурса (web api): использование python "jwt" библиотеки для проверки токена доступа

Я выполнил все настройки, после аутентификации я получаю id_token для веб-приложения и access_token для клиента-почтальона.

Проверка токена:

Я проверяю токен доступа на стороне API, который я получаю через заголовок авторизации. Я проследил за всеми доступными ссылками, до jwt.verify() проверки моего токена. Здесь я также проверяю аудиторию, для id_token это aud: client_app_id и при использовании почтальона я указываю область действия, в этом случае aud: "api: // my-api-id-123"

Вот основная часть:

Следуя всему процессу Я нигде не использовал зарегистрированный web api app_id, то есть "my-webapp-id-123" . Тогда как происходит аутентификация клиентского приложения и проверка токена доступа.

Также я попытался удалить ссылку между веб-приложением и веб-интерфейсом API из azure регистрации приложения и попытался пройти аутентификацию. В обоих случаях я получил токен и прошел проверку на стороне API.

Мои вопросы -

  1. , почему нам нужно зарегистрировать Web API при регистрации приложения на azure, поскольку это не так Привыкаешь?
  2. В моем текущем сценарии, какую часть мне не хватает, меня беспокоит, уберу ли я связь (на azure, в клиентском приложении с разрешениями API) между "client_app" и "api_app", access_token / Идентификатор id_token, полученный в клиентском приложении, не должен проверяться в веб-интерфейсе API.

Заранее спасибо.

...