azure 如何为企业应用程序刷新没有客户端密码的Microsoft Graph API的令牌?

5sxhfpxr  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(185)

有一个选项可以通过添加offline_access作用域来获取access_tokenrefresh_token。我们还可以使用以下语法发送获取always的请求

https://login.microsoftonline.com/common/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=[REFRESH TOKEN]&
client_id=[APPLICATION ID]&
client_secret=[PASSWORD]&
scope=[SCOPE]&
redirect_uri=[REDIRECT URI]

但企业应用程序不允许创建客户端密码。是否有其他方法可以在使用或不使用PowerShell的情况下保持我的访问令牌有效?
我试图保持我的连接活着,但无法做到。

0wi1tuuw

0wi1tuuw1#

如果不包括客户端密码,则无法刷新访问令牌

我尝试在我的环境中重现相同的结果,结果如下:

我通过在如下范围内提供offline_access获得了刷新令牌:

POST https://login.microsoftonline.com/common/oauth2/v2.0/token
client_id:appID
client_secret:secret
grant_type:authorization_code
scope:offline_access user.read
code:code
redirect_uri:https://jwt.ms

当我尝试使用上述刷新标记获取access token而不提供客户端密码时,我得到了如下所示的错误

POST https://login.microsoftonline.com/common/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

redirect_uri: https://jwt.ms
client_id:appID
grant_type:refresh_token
refresh_token: <refresh token>
scope: https://graph.microsoft.com/.default
    • 答复:**

要使用刷新令牌获取访问令牌,必须包括**client_secret**,如下所示:

POST https://login.microsoftonline.com/common/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

redirect_uri:https://jwt.ms
client_id:appID
client_secret: secret
grant_type:refresh_token
refresh_token: <refresh token>
scope: https://graph.microsoft.com/.default

或者,您可以使用以下PowerShell脚本创建令牌生存期策略,使访问令牌保持活动状态24小时

$policy = New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"23:59:59"}}') -DisplayName "WebPolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"
$sp = Get-AzureADServicePrincipal -Filter "DisplayName eq '<service principal display name>'"
Add-AzureADServicePrincipalPolicy -Id $sp.ObjectId -RefObjectId $policy.Id
    • 答复:**

当我再次生成访问令牌时,令牌生存期延长如下:

POST https://login.microsoftonline.com/common/oauth2/v2.0/token
client_id:appID
client_secret:secret
grant_type:authorization_code
scope:offline_access user.read
code:code
redirect_uri:https://jwt.ms
    • 答复:**

    • 参考:**

可配置的令牌生存期-Microsoft

相关问题