使用知名客户端ID续订Accesstoken

时间:2019-06-10 10:43:25

标签: powershell oauth office365 o365security-compliance

我正在使用以下命令创建访问令牌:

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),没有秘密密钥可以击中终结点以刷新访问令牌。

我无法获得实现此目标的解决方案。

1 个答案:

答案 0 :(得分:0)

Microsoft文档中介绍了刷新流程:

对于V1端点:https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code#refreshing-the-access-tokens

对于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调用。此处将对此进行进一步描述:

MSAL Wiki:https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/AcquireTokenSilentAsync-using-a-cached-token

ADAL Wiki:https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/wiki/AcquireTokenSilentAsync-using-a-cached-token