У меня есть идентификатор приложения и ключ, который я сгенерировал на портале Azure после регистрации приложения Azure Active Directory.
С помощью этой пары и моего сценария Powershell я хотел бы создать токен доступа, который я буду использовать в своем скрипте в HTTP-запросе.
Я могу получить токен доступа с помощью С# (см. Ниже код), но я не уверен, как сделать что-то подобное в Powershell. Есть что-то уже построенное в Powershell? Если нет, может кто-нибудь указать мне на решение? Я уверен, что я не единственный человек с этим вопросом.
public static async Task<string> GetAccessTokenAsync(string clientId, string appKey, string resourceId)
{
string aadInstance = "https://login.microsoftonline.com/{0}";
string tenant = "<TENANT>.onmicrosoft.com";
string authority = string.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential clientCredential = new ClientCredential(clientId, appKey);
AuthenticationResult authenticationResult = null;
authenticationResult = await authContext.AcquireTokenAsync(resourceId, clientCredential);
return authenticationResult.AccessToken;
}
Я написал то, что я считаю отличным учебником только по этому поводу:
Аутентификация ADA с помощью PowerShell и ADAL
С помощью этих сценариев вы можете получить аутентификацию и вызовы API REST, выполненные всего за 13 строк PowerShell. Запуск кода выполняется мгновенно, а изменение вызовов REST или даже параметров аутентификации занимает секунды, а не минуты.
Вы можете найти все мои сценарии на GitHub здесь.
Фокус в том, что вы действительно можете загружать сборки.NET ADAL с помощью функции добавления PowerShell Add-Type
:
# Load ADAL
Add-Type -Path ".\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"\
Оттуда вызов всех функций ADAL так же прост, как в стандартном приложении С#.
Это, как говорится, другое, что вы, возможно, захотите изучить, это официальный модуль AAD PowerShell:
Azure Active Directory PowerShell версии 2
Вы можете использовать Azure Active Directory PowerShell Module Version 2 для административных задач Azure AD, таких как управление пользователями, управление доменом и настройка единого входа.
В зависимости от ваших конкретных потребностей здесь один из этих двух вариантов должен работать на вас. Позвольте мне знать, если это помогает!