当前位置: 首页 > 知识库问答 >
问题:

如何对AAD进行身份验证,并使用PowerShell将Graph API作为守护进程应用程序调用?

晏树
2023-03-14

我想看一看我的AAD令牌,以及调用后图形API的输出。如何使用PowerShell快速完成这一任务?

共有1个答案

姚阳德
2023-03-14

这个问题与创建PowerShell脚本以作为本机客户端应用程序进行身份验证的问题非常相似。但是,在这种情况下,由于您希望作为机密客户端进行身份验证,因此存在一些微妙而重要的区别。具体地说,我们需要创建一个客户端凭据,这样我们就可以在没有用户作为守护进程应用程序的情况下进行身份验证。

首先,您需要下载并保存ADAL的.NET DLL。下载链接可以在NuGet上找到。

注意:我们在这里专门使用ADAL v2。

# 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"
$login = "https://login.microsoftonline.com"

# Create Client Credential Using App Key
$secret = "<AppKey>"


# Create Client Credential Using Certificate
#$certFile = "<PFXFilePath>"
#$certFilePassword = "<CertPassword>"
#$secret = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate -ArgumentList $certFile,$certFilePassword


# Get an Access Token with ADAL
$clientCredential = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential($clientId,$secret)
$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext("{0}/{1}" -f $login,$tenantId)
$authenticationResult = $authContext.AcquireToken($resourceId, $clientcredential)
($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
 类似资料:
  • 我正在尝试在Azure Active Directory上做一些非常快速的测试,我需要一个工具,它允许我快速对AAD进行身份验证,并调用AAD Graph API。 我已经在我的目录中注册了一个本机客户端应用程序,并且我已经将它设置为具有调用AAD Graph API的适当权限。 我想看一看我的AAD令牌,以及调用后图形API的输出。如何使用PowerShell快速完成这一任务?

  • 我有一个Azure Function应用程序,运行在使用Azure AD B2C进行身份验证的高级计划中。简单SPA的用户通过广告B2C的登录流获得他们的代币。SPA在AD B2C中注册为应用程序,功能应用程序的身份验证配置为使用该应用程序注册: 身份验证/Azure Active Directory/高级 ClientId:<代码> 颁发者Url:<代码>https:// 使用通过SPA获得的这

  • 嗨,好几天了,我都被困在这上面了!在使用本指南转换我的react应用程序后,我尝试使用KeyClope对我的electron应用程序进行身份验证。 当我运行'npm运行电子:dev'时,keyCloak会重定向到登录页面。然而,当我运行'npm运行电子:prod'这失败。 来自KeyClope服务器的日志显示: 请注意,重定向_uri是'file:///...“我相信这就是原因。 我也试图改变下面

  • 我已经设置了一个广告2016安装。现在打算使用它对web应用程序(java)进行身份验证。我有一段用于测试身份验证的代码,并有一些观察。 现在我在以下场景中测试了用户/密码组合- //第一个组合,user1存在于AD中并且密码正确(测试经过身份验证的绑定)。字符串userid=“user1@domain.com”,password=“user1password”;预期:身份验证成功。实际:身份验证

  • 假设我们有以下部分的web安全配置: