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

如何通过PowerShell为Azure AD新应用注册添加offline_access权限

解决Azure AD应用注册添加offline_access权限的PowerShell方法

offline_access是Microsoft Graph的委派权限(而非应用权限),所以你在$targetSp.AppRoles里找不到它——AppRoles仅对应应用权限。要通过PowerShell添加这个权限,需要从OAuth2权限集合里定位它,并按委派权限的逻辑配置:

具体操作步骤

  1. 定位Microsoft Graph服务主体及offline_access权限
# 获取Microsoft Graph服务主体
$graphSp = Get-AzureADServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
# 从OAuth2权限中找到offline_access
$offlineAccessPerm = $graphSp.Oauth2Permissions | Where-Object { $_.Value -eq "offline_access" }
  1. 给目标应用注册添加该委派权限
    假设你已经创建了目标应用注册,先获取应用对象:
$targetApp = Get-AzureADApplication -Filter "DisplayName eq '你的应用名称'"

方式一:添加到应用的权限配置列表(需手动在门户同意)

# 构建权限配置对象
$requiredAccess = [Microsoft.Open.AzureAD.Model.RequiredResourceAccess]@{
    ResourceAppId = $graphSp.AppId
    ResourceAccess = @(
        [Microsoft.Open.AzureAD.Model.ResourceAccess]@{
            Id = $offlineAccessPerm.Id
            Type = "Scope" # 委派权限必须指定为Scope,应用权限用Role
        }
    )
}

# 更新应用注册的权限配置
Set-AzureADApplication -ObjectId $targetApp.ObjectId -RequiredResourceAccess $requiredAccess

方式二:直接完成管理员委派权限同意

# 创建委派权限授予
New-AzureADDelegatedPermissionGrant -ObjectId $targetApp.ObjectId -ResourceId $graphSp.ObjectId -Scope $offlineAccessPerm.Value

关键注意点

  • 区分权限类型:offline_access只有委派形式,所以Type必须设为Scope;而User.Read.All如果是应用权限,Type则为Role。
  • 确保你使用的PowerShell模块(AzureAD/AzureADPreview)有权限执行这些操作,需以全局管理员或应用管理员身份运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:31:12