【问题标题】:B2C Custom Policy error with client certificates客户端证书的 B2C 自定义策略错误
【发布时间】:2021-10-22 15:09:03
【问题描述】:

我正在使用 B2C 自定义策略与外部 Azure AD 身份提供程序联合。 我之前与客户端机密联合时成功,但现在尝试切换到证书,并收到错误“非对称密钥没有 url 编码”。这是我作为概念证明所做的:

  1. 在 Azure 密钥库中生成了新的自签名证书
  2. 已将其导出到 .pfx 和 .cer 文件中。
  3. 在 B2C 中创建了一个策略密钥并将 .pfx 证书上传到那里
  4. 在引用该策略键的自定义策略中
<CryptographicKeys>
       <Key Id="client_secret" StorageReferenceId="B2C_1A_MyB2CPolicy" />
</CryptographicKeys>
  1. 在证书和机密下的 Azure AD 应用注册中上传了 .cer 文件(带有公钥)
  2. 尝试使用 MSAL.js 进行连接
  3. 收到带有关联 ID 的“服务器错误”,在 appinsights 中显示为
     {
       "Key": "SendErrorTechnicalProfile",
       "Value": "OpenIdConnectProtocolProvider"
     },
     {
        "Key": "Exception",
        "Value": {
          "Kind": "Handled",
          "HResult": "80131500",
          "Message": "An invalid OAuth response was received: \"{0}\".",
          "Data": {
            "IsPolicySpecificError": false
          },
          "Exception": {
            "Kind": "Handled",
            "HResult": "80131515",
            "Message": "No url encoding for asymmetric keys",
            "Data": {}
          }
        }
      }

我做错了什么?上传之前是否需要将证书转换为另一种格式?也许.pem?问题是,我在任何地方都找不到这方面的文档。

【问题讨论】:

    标签: azure-ad-b2c azure-ad-b2c-custom-policy


    【解决方案1】:

    Azure AD B2C 可以使用客户端证书在联合 IdP 的 /token 端点兑换授权代码。

    请参阅OpenId Connect Technical profile 的所有支持选项的参考。

    基于证书凭据here 的 Azure AD 文档和可用的元数据选项,在 OIDC 技术配置文件中,使用以下选项:

    • token_endpoint_auth_methodprivate_key_jwt
    • token_signing_algorithmRS256

    cryptographic keys 部分,引用您上传到 B2C 策略密钥中的证书:

    • assertion_signing_keyB2C_1A_MyB2CPolicy

    删除client_secret 引用。

    【讨论】:

    • 谢谢,成功了!
    猜你喜欢
    • 2019-10-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 2022-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多