1

私はAzure Active Directoryでいくつかの非常に簡単なテストをしようとしています。私はAADに対してすぐに認証し、AAD Graph APIを呼び出すツールが必要です。PowerShellでAADを認証し、Graph APIをNative Clientアプリケーションとして呼び出すにはどうすればよいですか?

私は既にディレクトリにNative Clientアプリケーションを登録しており、AAD Graph APIを呼び出すための適切な権限を持つように設定しています。

私のAADトークンと、コール後にグラフAPIからの出力を見てみたいと思います。 PowerShellを使用してこれを迅速に実行するにはどうすればよいですか?

答えて

2

>> See here for instructions on how to create a similar script for emulating a Daemon Client Application using the Client Credential Flow.

PowerShellは、あなたが右のあなたのコマンドラインに.NETアセンブリをロードすることができます。つまり、ADAL (Azure Active Directory Authentication Libraries)をロードして、それを使用して認証の経験を簡単にすることができます。 ADALからトークンを取得すると、Invoke-RestMethodコマンドレットを使用してAAD Graph APIを呼び出すことができます。

まず、ADALの.NET dllをダウンロードして保存する必要があります。ダウンロードリンクはon Nugetです。

注:ここでは特にADAL v2を使用しています。あなたがなど7Z、WinZipの、のようなファイルの抽出と.nupkgの内容を抽出することができます

...

\lib\net45\から内容を抽出し、作業ディレクトリにコピーします。私はそれを別々に保つために、自分の "ADAL"フォルダにファイルを置きます。

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

# Output Token and Response from AAD Graph API 
$accessToken = ".\Token.txt" 
$output = ".\Output.json" 

# Application and Tenant Configuration 
$clientId = "<AppIDGUID>" 
$tenantId = "<TenantID>" 
$resourceId = "https://graph.windows.net" 
$redirectUri = New-Object system.uri("<ReplyURL>") 
$login = "https://login.microsoftonline.com" 

# Get an Access Token with ADAL 
$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext ("{0}/{1}" -f $login,$tenantId) 
$authenticationResult = $authContext.AcquireToken($resourceId, $clientID, $redirectUri) 
($token = $authenticationResult.AccessToken) | Out-File $accessToken 

# Call the AAD Graph API 
$headers = @{ 
    "Authorization" = ("Bearer {0}" -f $token); 
    "Content-Type" = "application/json"; 
} 

Invoke-RestMethod -Method Get -Uri ("{0}/{1}/users?api-version=1.6" -f $resourceId, $tenantId) -Headers $headers -OutFile $output 

注:アプリID、テナントIDを更新する必要があり、このスクリプトでURLを返信します

その後、あなたは次のように新しいPowerShellスクリプトを作成することができるはずです。私はテナントのユーザを返すためにAAD Graph APIコールを事前に設定しましたが、このRESTコールをあなたが望むものに変更することができます。

スクリプトを正常に実行すると、作業ディレクトリに2つの新しいファイルが作成されます。エンコードされたJSONアクセストークンを含むテキストファイル。thisなどのサイトでbase64でデコードできます。 AAD Graph APIからの応答。

これが役立つ場合はお知らせください。

関連する問題