我正在使用以下命令创建访问令牌:
Get-ADALAccessToken -AuthorityName exterrobiz.onmicrosoft.com -ClientId a0c73c16-a7e3-4564-9a95-2bdf47383716 -ResourceId https://ps.compliance.protection.outlook.com/PowerShell-LiveId -RedirectUri "urn:ietf:wg:oauth:2.0:oob" -ForcePromptSignIn
它将提供访问令牌。使用此令牌,我可以执行安全性和合规性操作。
收到的令牌有效期为1个小时,我想自动更新访问令牌,而无需用户干预。我在上述结果中收到了刷新令牌和ID令牌(可以从缓存中读取)。如何获得带有可用刷新令牌的新访问令牌?
我使用的是Microsoft提供的知名客户端ID(a0c73c16-a7e3-4564-9a95-2bdf47383716),没有秘密密钥可以击中终结点以刷新访问令牌。
我无法获得实现此目标的解决方案。
答案 0 :(得分:0)
Microsoft文档中介绍了刷新流程:
对于V2端点:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
此链接转到有关两者之间的区别的说明:https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison
您用于Powershell cmdlet的库似乎位于:https://www.powershellgallery.com/packages/Microsoft.ADAL.PowerShell/1.12
这首先是一个过时的库(ADAL),而且看起来甚至不是正式的Powershell库。
当前,尚无关于使用adal / msal库在Powershell环境中进行调用以获取访问令牌/ ID令牌/刷新令牌的官方文档。
如果您对此感兴趣,建议将其作为对Azure AD反馈uservoice的反馈进行归档,并且如果有足够的社区支持,Microsoft产品团队将考虑实施:https://feedback.azure.com/forums/169401-azure-active-directory
对于当前的修复程序,我建议查看Shawntabrizi的MSAL / ADAL git存储库。可以在这里找到MSAL回购:
MSAL:https://github.com/shawntabrizi/Microsoft-Authentication-with-PowerShell-and-MSAL
ADAL:https://github.com/shawntabrizi/Azure-AD-Authentication-with-PowerShell-and-ADAL
如果您正在寻找特别用于刷新访问令牌的powershell cmdlet,它将是MSAL库中的acquiretokensilentasync调用。此处将对此进行进一步描述: