我正在尝试对Azure Active Directory进行一些非常快速的测试,我想使用守护程序应用程序来访问Graph API,而无需用户进行身份验证 . 我想验证我的应用程序注册是否可以成功验证AAD,我的客户端密码是否有效,并调用AAD Graph API .
我已在我的目录中注册了“Web App / API”,并且我已将其设置为具有在App Only Context中调用AAD Graph API的适当权限 . 我还为我的应用程序生成了应用程序密钥/证书,以便我可以作为机密客户端进行身份验证 .
我想看一下我的AAD令牌,以及调用后Graph API的输出 . 如何使用PowerShell快速完成此操作?
1 回答
此问题与this one非常相似,其中创建PowerShell脚本以作为Native Client应用程序进行身份验证 . 但是,在这种情况下,存在一些微妙且重要的差异,因为您希望作为机密客户端进行身份验证 . 具体来说,我们需要创建一个
Client Credential
,以便我们可以在没有用户的情况下进行身份验证Daemon Application .首先,您需要为ADAL下载并保存.NET dll . 下载链接可以在Nuget上找到 .
注意:我们在这里专门使用ADAL v2 .
从
\lib\net45\
中提取内容并将其复制到工作目录中 . 我把文件放在他们自己的"ADAL"文件夹中,以保持它分开 .然后,您应该能够使用以下内容创建新的PowerShell脚本:
注意:您需要在此脚本中更新App ID,租户ID和App Secret信息 . 如果使用证书进行身份验证,只需注释掉使用App Key的代码,并取消注释使用证书的代码 . 我还预先配置了AAD Graph API调用以返回我租户中的用户,但您可以将此REST调用更改为您想要的任何内容 .
成功运行脚本后,您应该在工作目录中获得2个新文件:一个文本文件,其中包含您编码的JSON访问令牌,可以在this之类的网站上进行base64解码,以及一个带有AAD Graph响应的JSON文件API .
如果这有帮助,请告诉我!