Я использую azure для размещения веб-приложения и веб-интерфейса.
Конфигурация среды:
- веб-API: Разработано с использованием django развернуто / hosted on linux vm
- Веб-приложение: разработано с использованием Angular2, развернуто / размещено в службе приложений
Для аутентификации я использую протокол OAUTH2.
Регистрационные данные приложения для OAUTH2
Под одним арендатором: "my-tenant-id-121"
- Зарегистрирован 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 '
- генерируется секрет клиента но не использую его.
- Зарегистрированное веб-приложение и предоставленные базовые c данные, перенаправление uri и т. д.
- здесь предполагается, что webapp app_id / client_id: "my- webapp-id-123 "
- Под pp регистрация, предоставленные разрешения доступа к API для зарегистрированных выше API с использованием разрешений API
Аутентификация:
- клиент (веб-приложение ): Использование ng2-adal библиотеки
- ресурса (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.
Мои вопросы -
- , почему нам нужно зарегистрировать Web API при регистрации приложения на azure, поскольку это не так Привыкаешь?
- В моем текущем сценарии, какую часть мне не хватает, меня беспокоит, уберу ли я связь (на azure, в клиентском приложении с разрешениями API) между "client_app" и "api_app", access_token / Идентификатор id_token, полученный в клиентском приложении, не должен проверяться в веб-интерфейсе API.
Заранее спасибо.