Можно ли получить токен доступа для Azure хранилища BLOB-объектов с помощью OAuth - типа предоставления учетных данных клиента? - PullRequest
1 голос
/ 13 июля 2020

Я готовлю доступ к запросу авторизации для моего внешнего хранилища в Azure Blob . Я хочу, чтобы служебное приложение получало доступ к этому хранилищу с использованием OAuth , и, поскольку доступ осуществляется службой (реальный пользователь не выполняет службу), я хотел бы использовать Тип предоставления учетных данных клиента . Я использую Azure Active Directory для управления пользователями и регистрацией приложений и разрешениями, поэтому конечной точкой авторизации будет Azure, и он предоставит мне токен доступа.

Я использовал для других служб другие OAuth доступ к учетным данным, например Предоставление кода авторизации (я не могу использовать его в этом случае, потому что для этого требуется, чтобы пользователь вошел в систему вручную) и даже Пароль владельца ресурса Предоставление учетных данных (не рекомендуется, но я управляю и сервисом, и хранилищем, чтобы его можно было реализовать. С другой стороны, приложение входит в систему как пользователь, и я бы предпочел не делать этого из соображений безопасности.)

Я последовал руководству Microsoft , чтобы попытаться достичь этого, но все равно безуспешно. Следуя руководству и регистрируя API в Azure, я могу выбрать только Делегированные разрешения, а не разрешения приложений, которые соответствуют этим потребностям, прилагая пару скриншотов.

Регистрация приложения в Azure Окно Active Directory

Параметры регистрации приложения

Итак, в общем, я пытаюсь реализовать Тип учетных данных клиента и я не могу получить действующий токен. Можно ли получить авторизацию по этому типу? Если да, не могли бы вы дать мне краткое руководство или что-то в этом роде?

Спасибо

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Для хранилища Azure это может отличаться от других методов авторизации. Вы не можете напрямую предоставлять разрешения приложения своему приложению-службе в разрешениях API. Это связано с тем, что ваше приложение не имеет роли RBA C.

Если вы готовы получить доступ к запросу авторизации для внешнего хранилища в Azure Blob, выполните описанную ниже процедуру здесь :

Azure портал> учетные записи хранения> Найдите и выберите свои учетные записи хранения> контроль доступа (IAM)> Добавить назначение роли, чтобы добавить принципала службы в вашу учетную запись хранения (это эквивалентно предоставлению application permissions в ваше служебное приложение в API permissions)

Затем мы используем поток учетных данных клиента для тестирования в почтальоне:

enter image description here

By the way, you should refer to this document: здесь

1 голос
/ 14 июля 2020

Вы не указали свою ошибку. если он просто говорит, что доступ запрещен, просто добавьте участника службы к роли rba c большого двоичного объекта или учетной записи хранения, к которой вы пытаетесь получить доступ. тогда ваше приложение должно иметь разрешения на вызов хранилища

...