Как получить токен доступа Azure (для приложения, а не пользователя) без использования аутентификации пользователя? - PullRequest
0 голосов
/ 22 марта 2020

Вот сценарий:

  • Игра имеет собственный интерфейс входа в систему, который аутентифицирует игрока на сервере, используя процессы, которые не имеют никакого отношения к аутентификации Azure. На самом деле использование Azure аутентификации не сработает, так как для этого необходимо вставить браузер в игру, чтобы перенаправить пользователя через поток веб-аутентификации. Этого не происходит, потому что это мешает погружению и серьезно ухудшает опыт игрока.
  • Игровой клиент должен загружать ресурсы из Azure Blob Storage. Эти ресурсы защищены токеном.
  • Сервер должен иметь возможность создавать эти токены (для себя, а не «от имени» любого конкретного пользователя c) и отправлять их клиенту игры, пользователям которые аутентифицированы к его удовлетворению (без Azure аутентификации для пользователя!)

Я провел час, обыскивая все вокруг кроличьей норы, которая документация Microsoft по этому вопросу , и я никак не могу сообразить, как получить токен доступа без процесса аутентификации пользователя, насильно совающего свой нос в рабочий процесс.

Кто-нибудь знает, что такое правильный рабочий процесс для серверного приложения получить токен от своего имени , используя свой собственный идентификатор клиента / секрет клиента, без идентификации каких-либо пользователей, вовлеченных в процесс? Я не считаю правдоподобным, что такой важный рабочий процесс не существовал бы; Я просто не могу понять, что это такое или как это сделать. Любая помощь будет оценена.

1 Ответ

1 голос
/ 23 марта 2020

Насколько я понимаю, вы хотите загрузить вещи из Azure хранилища больших двоичных объектов с Azure аутентификацией AD, и вы не хотите обрабатывать Azure AD аутентификацию с пользователями. Если это так, я предлагаю вам использовать принципал службы обработать Azure AD auth, затем загрузить файлы из Azure blob с токеном.

Например,

  1. создать участника службы и назначить Storage Blob Data Contributor для sp.
az login
az account set --subscription "<your subscription id>"
# it will assign Storage Blob Data Contributor to the sp at subscription level
az ad sp create-for-rbac -n "mysample" --role Storage Blob Data Contributor

enter image description here

Получить токен доступа
POST https://login.microsoftonline.com/<your tannat id>/oauth2/token 



Content-Type: application/x-www-form-urlencoded



grant_type=client_credentials
&client_id=<your sp appId>
&client_secret=<you sp password>
&resource=https://storage.azure.com/
Загрузка файла с токеном
Get <you blob url>



x-ms-version: 2017-11-09
Authorization: Bearer <access_token>

enter image description here

Кроме того, как сказал @Gaurav, если вы развернете свой проект на Azure VM, вы можете включить Управляемое удостоверение для Vm затем использует удостоверение для доступа к Azure хранилищу. Для более подробной информации, пожалуйста, обратитесь к документу

...