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

Azure AD应用注册无法设置Sign类型密钥凭据的问题咨询

Azure AD应用注册添加Sign类型密钥凭据报错解决方案

报错根因

usage=Sign类型的密钥凭据不支持配置在应用注册(Application)对象上,仅支持配置在对应服务主体(Service Principal,即Azure门户内的企业应用)对象上。
应用注册默认仅支持usage=Verify类型的凭据,用于Azure AD验证应用发起请求的签名合法性;Sign类型凭据是供Azure AD侧使用,用于向第三方服务签发SAML断言、令牌时做签名,因此只能配置在服务主体层面。

解决方案(PowerShell路径)

  1. 替换原逻辑中查询应用注册ObjectID的步骤,改为查询对应服务主体的ObjectID:
# 替换为你的应用注册客户端ID(Client ID)
$appClientId = "<your-app-client-id>"
$servicePrincipal = Get-AzureADServicePrincipal -Filter "appId eq '$appClientId'"
$spObjectId = $servicePrincipal.ObjectId
  1. 使用服务主体的密钥凭据配置命令替换原应用注册配置命令:
# 证书读取逻辑保持不变
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cer.Import("<path-to-certificate>")
$bin = $cer.GetRawCertData()
$base64Value = [System.Convert]::ToBase64String($bin)
$bin = $cer.GetCertHash()
$base64Thumbprint = [System.Convert]::ToBase64String($bin)

# 使用服务主体配置命令添加Sign类型凭据
New-AzureADServicePrincipalKeyCredential `
    -ObjectId $spObjectId `
    -CustomKeyIdentifier $base64Thumbprint `
    -Type AsymmetricX509Cert `
    -Usage Sign `
    -Value $base64Value `
    -StartDate $cer.GetEffectiveDateString() `
    -EndDate $cer.NotAfter.ToString()

其他配置路径注意事项

  • 若通过Azure Portal配置,不要直接修改应用注册的Manifest,需进入对应企业应用的「单一登录」配置页,在SAML证书板块上传签名证书即可。
  • 若你要配置的是SAML应用签名证书,需先完成SAML SSO的基础配置,否则依然会触发配置失败报错。
  • 配置前请确认你用到的自定义域名已在Azure AD租户中完成验证,未验证域名会限制签名凭据的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:06:03