You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为.NET桌面应用缩短Azure AD访问令牌有效期

核心结论

普通Azure AD(非B2C租户)暂不支持参照B2C的可视化配置方式在Azure Portal中直接调整桌面应用对应的访问令牌有效期,你可以通过Microsoft Graph API或PowerShell配置令牌生命周期策略来实现需求,你之前找到的Web应用配置方案只是场景示例,这类策略同样可以绑定到桌面类公共客户端应用。

具体操作步骤

  • 安装依赖的PowerShell模块
    以当前用户权限安装Microsoft Graph PowerShell模块:
    Install-Module Microsoft.Graph -Scope CurrentUser
  • 连接Azure AD租户
    执行连接命令,授权所需的策略读写权限:
    Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration","Application.Read.All"
  • 创建短有效期访问令牌策略
    以下示例创建有效期为10分钟的访问令牌策略(Azure AD支持的最短访问令牌有效期为10分钟,适合快速测试MSAL自动刷新逻辑):
    New-MgPolicyTokenLifetimePolicy -DisplayName "ShortLivedAccessTokenForDesktopTest" -IsOrganizationDefault $false -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"00:10:00"}}')
    
    命令执行后会返回策略的Id字段,记录下来留待后续绑定使用。
  • 将策略绑定到你的桌面应用注册对象
    替换下方示例中的占位符后执行:
    # 替换为你的桌面应用的客户端ID
    $desktopAppClientId = "你的应用客户端ID"
    # 替换为上一步获取的策略ID
    $policyId = "上一步生成的策略ID"
    
    # 获取应用注册的对象ID
    $appObjectId = (Get-MgApplication -Filter "appId eq '$desktopAppClientId'").Id
    # 绑定策略到应用
    New-MgApplicationTokenLifetimePolicyByRef -ApplicationId $appObjectId -OdataId "https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/$policyId"
    

测试与清理说明

  • 策略绑定后最长需要15分钟生效,生效后先触发一次用户交互登录获取初始令牌,等待10分钟后调用MSAL.NET的AcquireTokenSilent方法即可验证自动刷新逻辑是否正常。
  • 测试完成后可以执行以下命令解绑测试策略,恢复默认令牌有效期:
    Remove-MgApplicationTokenLifetimePolicyByRef -ApplicationId $appObjectId -TokenLifetimePolicyId $policyId
    

内容的提问来源于stack exchange,提问作者cb96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:15:00