Как я могу создать токен доступа в своем веб-приложении для использования с модулем Exchange Online Powershell? - PullRequest
0 голосов
/ 13 июня 2018

У меня есть пользователь, входящий в мое веб-приложение, которое уже аутентифицирует его для API Office 365 Graph.Мне также нужно действовать от имени пользователя, чтобы сделать пару вещей, которые можно сделать только через Exchange Online Powershell.Итак, я хочу передать токен доступа (сгенерированный с помощью passport.js или Go oauth2) скрипту для выполнения этих задач.

Я использовал этот полезный пост , чтобы получить почти всепуть там.В нем показано, как передавать учетные данные в онлайн-сеанс Exchange.Но я не могу понять, как получить токен доступа без секрета клиента.У меня есть идентификатор клиента / приложения и идентификатор ресурса (используя метод, показанный в связанном посте), но если я не ошибаюсь, мне также нужен секрет клиента.Что мне не хватает?

(Извините, я новичок во всех этих областях. Дайте мне знать, если потребуется дополнительная информация.)

1 Ответ

0 голосов
/ 14 июня 2018

По вашему определению вы пытаетесь получить доступ к почтовому ящику пользователя в O365.

Простой ответ (это не проблема / ограничение PoSH): токены доступа / обновления зависят от пользователя, так же как и их паролив ADDS / AAD.

Невозможно без предварительного назначения роли олицетворения приложения O365 (которая автоматически предоставляет роль OnBehalfOfStuff) для пользователя (ей) или делегации.

Подумайте об этомна секунду с точки зрения управления рисками.Если какой-либо AppDev может захватить все пользовательские IDAM-токены без согласия пользователя / администратора, то есть это не относится к отрасли в целом.

Настройка олицетворения Включение олицетворения позволяет вызывающей стороне, например приложению-службе,выдавать себя за учетную запись пользователя.Вызывающий может выполнять операции, используя разрешения, связанные с олицетворенной учетной записью, а не разрешения, связанные с учетной записью вызывающего.https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-configure-impersonation

Для этого вам необходимо, чтобы администратор O365 / AAD Global заранее сделал это для своей учетной записи / учетной записи приложения / учетной записи службы.Большинство сотрудников службы безопасности на самом деле возражают против случайного предоставления этого права по очевидным причинам.Тем не менее, имитация приложения Exchange может быть ограничена.

По ссылке ...

Настройка роли ApplicationImpersonation

Когда вы или ваш администратор сервера Exchanger назначаете ApplicationImpersonationроль, используйте следующие параметры командлета New-ManagementRoleAssignment:

• Имя - понятное имя назначения роли.Каждый раз, когда вы назначаете роль, в списке ролей RBAC делается запись.Вы можете проверить назначения ролей с помощью командлета Get-ManagementRoleAssignment.

• Роль - роль RBAC для назначения.При настройке олицетворения вы назначаете роль ApplicationImpersonation.

• Пользователь - учетная запись службы.

CustomRecipientScope - область пользователей, которую учетная запись службы может олицетворять. Учетной записи службы будет разрешено выдавать себя за других пользователей только в указанной области.Если область не указана, учетной записи службы предоставляется роль ApplicationImpersonation для всех пользователей в организации.Вы можете создавать собственные области управления с помощью командлета New-ManagementScope.

...