Подключение к Exchange Online с помощью PowerShell и современной аутентификации (без каких-либо зависимостей) - PullRequest
0 голосов
/ 26 мая 2019

Я хочу подключиться к Exchange Online, используя PowerShell и современную аутентификацию, без зависимости от каких-либо модулей или DLL.

Существует модуль, доступный для современной аутентификации для Exchange Online, который зависит от CreateEXOPSSession.ps1 и Microsoft.Exchange.Management.ExoPowerShellModule.dll, я декомпилировал последний и обнаружил, что он генерирует маркер доступа как таковой:

TokenInformation accessToken = TokenProviderFactory.Instance.CreateTokenProvider(new TokenProviderContext(authType, "a0c73c16-a7e3-4564-9a95-2bdf47383716", this.AzureADAuthorizationEndpointUri, acquireTokenEndpoint, this.UserPrincipalName, this.Credential, clientAppRedirectUri, (Action<string>) (s => this.WriteWarning(s)))).GetAccessToken();

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

Есть идеи?

1 Ответ

1 голос
/ 27 мая 2019

Для использования командлетов EXO необходимо иметь подключение MSOL и создать удаленный сеанс для EXO. Для этого нет обходного пути.

Зависимости существуют по причине. Бэкэнд-сантехника MSOL / Azure / O365 ожидает того, чего ожидает, и обход его просто приведет вас к очень разочаровывающей / тянущей волосы деятельности.

Этот токен является Azure AD, поскольку MA / ADAL требует наличия лицензии Azure AD Premium. МА требует использования ADAL API / DLL. Это все равно что запросить программное подключение и использование локальных служб EAS / EWS Exchange без использования API / DLL, это тоже не вещь.

Итак, как бы вы ни смотрели на это, будут зависимости, как отмечено ниже. Так что, если вы серьезно относитесь к этим усилиям, вам нужно по-настоящему разобраться, что такое MA на самом деле и как на самом деле работает его сантехника. Кроме того, MFA должен быть уже включен для вас и пользователей либо в O365 , либо в настройках ADAL MFA в Azure .

Современная аутентификация - что это? Современная аутентификация обеспечивает вход на основе библиотеки аутентификации Active Directory (ADAL) в клиентские приложения Office на разных платформах.

Библиотеки аутентификации платформы идентификации Microsoft

На MS PowerShellGallery.com также имеется модуль ADAL.

Microsoft.ADAL.PowerShell 1.12 Модуль ADAL для PowerShell https://www.powershellgallery.com/packages/Microsoft.ADAL.PowerShell/1.12

Функция Get-ADALAccessToken Очистить-ADALAccessTokenCache

Примеры здесь:

Microsoft.ADAL.Powershell ``` 
####Example 1 This example acquire accesstoken by using RedirectUri from contoso.onmicrosoft.com Azure Active Directory for PowerBI
service. It will only prompt you to sign in for the first time, or
when cache is expired.
Get-ADALAccessToken -AuthorityName contoso.onmicrosoft.com `
-ClientId 8f710b23-d3ea-4dd3-8a0e-c5958a6bc16d `
-ResourceId https://analysis.windows.net/powerbi/api `
-RedirectUri "http://yourredirecturi.local"

Смотрите также: Azure-AD-Authentication-с-PowerShell-и-ADAL

Это набор действительно простых скриптов PowerShell, которые позволяют получать токены доступа с Azure Active Directory с использованием ADAL.

и это ... ADAL и PowerShell

...