Получите токен доступа Azure Active Directory из Powershell

2

У меня есть идентификатор приложения и ключ, который я сгенерировал на портале 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;
}
Теги:
azure
powershell
azure-active-directory
access-token

1 ответ

3
Лучший ответ

Я написал то, что я считаю отличным учебником только по этому поводу:

Аутентификация 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, таких как управление пользователями, управление доменом и настройка единого входа.

В зависимости от ваших конкретных потребностей здесь один из этих двух вариантов должен работать на вас. Позвольте мне знать, если это помогает!

  • 0
    Спасибо! Отметив это как правильный вопрос, он помог мне найти другой документ, аналогичный тому, который вы предоставили. gallery.technet.microsoft.com/scriptcenter/...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню