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

如何使用Microsoft Graph PowerShell移除Azure MFA客户端过期证书

解决Azure Multi-Factor Auth Client过期证书移除的403权限问题

针对微软官方应用(如Azure Multi-Factor Auth Client)的过期证书清理,使用Remove-MgServicePrincipalKey时出现403权限错误,核心原因是这类官方托管的服务主体需要提供**持有证明(Proof-of-Possession)**来验证操作合法性。以下是具体解决步骤:

步骤1:确认所需权限

确保你的账号拥有以下权限之一(需管理员同意):

  • Application.ReadWrite.All(委派或应用权限)
  • Application Administrator角色权限

步骤2:获取服务主体及有效密钥

先定位目标服务主体,并筛选出当前未过期的有效证书密钥:

# 获取Azure MFA Client服务主体
$sp = Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'"

# 筛选出未过期的有效密钥
$validKeys = $sp.KeyCredentials | Where-Object { $_.EndDateTime -gt (Get-Date) }

步骤3:生成持有证明(Proof Token)

需要用上述有效密钥对应的证书生成JWT格式的持有证明,验证你拥有该应用的合法凭据:

# 示例:从本地证书存储获取有效证书(根据实际情况调整路径或筛选条件)
$cert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Thumbprint -eq $validKeys[0].KeyId }

# 生成JWT作为持有证明
$tokenHandler = New-Object System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler
$claims = @(
    New-Object System.Security.Claims.Claim("sub", $sp.Id),
    New-Object System.Security.Claims.Claim("iss", $sp.AppId),
    New-Object System.Security.Claims.Claim("jti", [Guid]::NewGuid().ToString())
)
$tokenDescriptor = New-Object System.IdentityModel.Tokens.SecurityTokenDescriptor
$tokenDescriptor.Subject = New-Object System.Security.Claims.ClaimsIdentity($claims)
$tokenDescriptor.SigningCredentials = New-Object System.IdentityModel.Tokens.X509SigningCredentials($cert)
$tokenDescriptor.Expires = (Get-Date).AddMinutes(5)
$jwtToken = $tokenHandler.CreateToken($tokenDescriptor)
$proofToken = $tokenHandler.WriteToken($jwtToken)

步骤4:传入持有证明执行删除操作

调用Remove-MgServicePrincipalKey时指定-Proof参数传入生成的证明令牌:

# 替换为你要删除的过期证书KeyID
Remove-MgServicePrincipalKey -ServicePrincipalId $sp.Id -KeyId "<过期证书的KeyID>" -Proof $proofToken

关键注意事项

  • 必须使用未过期的有效证书生成证明,过期证书无法通过验证
  • 确保使用的Microsoft Graph PowerShell模块是最新版本,避免兼容性问题
  • 执行操作的账号需具备修改官方应用的管理员权限,普通权限无法完成此操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:52:05