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

如何在Azure门户及Azure AD B2C中将OAuth令牌算法从RS256改为HS256?

如何将Azure AD B2C OAuth令牌算法从RS256改为HS256(适配Zendesk SSO)

刚好之前帮别人解决过类似的Azure AD B2C + Zendesk SSO的问题,我来给你一步步说清楚怎么操作——毕竟Zendesk确实不支持RS256,必须通过自定义策略来修改Azure AD B2C的签名算法:

核心前提

Azure AD B2C的默认门户界面没法直接修改令牌签名算法,必须通过自定义策略来配置,所以你得先准备好自定义策略的基础文件(可以用官方的starter pack模板,比如SocialAndLocalAccounts这套)。

具体操作步骤

  • 第一步:修改信赖方(RP)策略文件
    打开你的信赖方策略文件(比如SignUpOrSignin.xml),找到<RelyingParty>节点下的<TechnicalProfile Id="PolicyProfile">部分,添加<Metadata>节点指定HS256作为签名算法,同时确保<CryptographicKeys>指向正确的对称密钥容器:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <DisplayName>PolicyProfile</DisplayName>
        <Protocol Name="OpenIdConnect" />
        <OutputClaims>
          <!-- 保留你现有声明配置即可 -->
        </OutputClaims>
        <SubjectNamingInfo ClaimType="sub" />
        <CryptographicKeys>
          <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
          <Key Id="signing" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
          <Key Id="encryption" StorageReferenceId="B2C_1A_TokenEncryptionKeyContainer" />
        </CryptographicKeys>
        <Metadata>
          <!-- 关键配置:指定ID令牌和访问令牌的签名算法为HS256 -->
          <Item Key="IdTokenSigningAlg">HS256</Item>
          <Item Key="AccessTokenSigningAlg">HS256</Item>
        </Metadata>
      </TechnicalProfile>
    </RelyingParty>
    
  • 第二步:配置对称密钥容器
    HS256需要对称密钥,所以你得确保Azure AD B2C里的密钥容器是对称类型:

    1. 登录Azure门户,进入你的AD B2C资源
    2. 找到左侧菜单的Identity experience framework -> Policy keys
    3. 检查B2C_1A_TokenSigningKeyContainer的类型:
      • 如果是RSA等非对称类型,就点击「添加」新建一个对称密钥:
        • 选项选「手动」
        • 名称设为B2C_1A_TokenSigningKeyContainer(要和策略里的StorageReferenceId对应)
        • 密钥类型选「对称」
        • 可以手动输入强密钥,也让系统自动生成
        • 保存即可
  • 第三步:上传并测试策略
    把修改后的信赖方策略文件上传到Azure AD B2C的Custom policies里,然后测试这个策略,获取JWT令牌后,用JWT解析工具验证一下,算法应该已经变成HS256了。

针对Zendesk SSO的额外注意事项

  • 把你刚才配置的对称密钥复制到Zendesk的SSO设置里,作为「签名密钥」
  • 确保Zendesk的SSO配置中,令牌签名算法也设置为HS256,和Azure这边保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:57:20