2017-09-08 34 views
1

私はAzureポータルでAzure Active Directoryアプリケーションを登録した後に生成したアプリケーションIDとキーを持っています。PowershellからAzure Active Directoryアクセストークンを取得

このペアとPowershellスクリプトから、私はHTTPリクエストでスクリプトで使用するアクセストークンを生成したいと思います。

C#(下のコードを参照)を使用してアクセストークンを取得できますが、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; 
} 

答えて

2

私はちょうどこの上の偉大なチュートリアルであると考えて何を書いている:これらのスクリプトで

Azure AD Authentication with PowerShell and ADAL

、あなたは認証とREST APIコールは限り少なくして を成し遂げることができますPowerShellの13行。コードを実行するのは瞬時で、 で、REST呼び出しや認証パラメータを変更する場合は、 には分ではなく秒がかかります。

私のすべてのスクリプトはGitHub hereで見つけることができます。

# Load ADAL 
Add-Type -Path ".\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"\ 

そこから、すべてのADALの関数を呼び出すと、標準のC#アプリケーションでのと同じくらい簡単です:

トリックは、あなたが実際のPowerShellのAdd-Type機能を使用してADALの.NETアセンブリをロードすることができるということです。

Azure Active Directory PowerShell Version 2

あなたは のためのAzure Active DirectoryのPowerShellのモジュールのバージョン2を使用することができます:あなたがに見てみたいことがあります他の事は公式AADのPowerShellモジュールで、言われていること

ユーザ管理、ドメイン 管理などのAzure AD管理タスク、およびシングルサインオンの設定

あなたの正確なニーズに応じて、これらの2つのオプションのいずれかが役立ちます。これが役に立ったら教えてください!

+0

ありがとうございます!あなたが提供したものと似たこの他の文書を見つけるのを助けたので、これを有効な質問としてマークしてください。 https://gallery.technet.microsoft.com/scriptcenter/How-to-authenticate-Azure-4bb18b78 – user3587624

関連する問題