在Azure AD B2C中使用自定义策略记录对Identity Provider的调用

时间:2019-07-19 09:30:01

标签: azure oauth-2.0 azure-ad-b2c openid-connect

我正在尝试使用自定义策略将自定义OpenID Connect身份提供程序集成到Azure AD B2C中。 但是,使用授权码从IdP重定向回后,自定义用户流失败,并显示以下错误(使用MSAL.js):

login failure {"_error":"server_error","_errorDesc":"AADB2C90289: We encountered an error connecting to the identity provider. Please try again later.\r\nCorrelation ID: 97809cc4-04e8-47a3-9263-de57260e7979\r\nTimestamp: 2019-07-18 15:47:32Z\r\n","_scopes":""}

我已经启用了到Application Insights的日志记录,但是唯一可以找到的相关信息是:

  {
""Kind"": ""HandlerResult"",
""Content"": {
  ""Result"": true,
  ""RecorderRecord"": {
    ""Values"": [
      {
        ""Key"": ""SendErrorTechnicalProfile"",
        ""Value"": ""OAuth2ProtocolProvider""
      },
      {
        ""Key"": ""Exception"",
        ""Value"": {
          ""Kind"": ""Handled"",
          ""HResult"": ""80131500"",
          ""Message"": ""We encountered an error connecting to the identity provider. Please try again later."",
          ""Data"": {
            ""IsPolicySpecificError"": false
          }
        }
      }
    ]
  },
  ""Statebag"": {
    ""SE"": {
      ""c"": ""2019-07-18T13:46:21.1438143Z"",
      ""k"": ""SE"",
      ""v"": """",
      ""p"": true
    }
  }
}
},

是否可以记录对Idp的实际网络调用以查看出了什么问题? Idp不在我的控制之下,因此我无法在其中记录它们。

2 个答案:

答案 0 :(得分:0)

虽然我找不到记录更多信息的方法,但是我可以通过使用反向代理拦截对外部IdP的所有调用来解决我的问题。这表明b2c正在使用client_secret_post来获取访问令牌,而IdP仅支持client_secret_basic

答案 1 :(得分:0)

我有相同的错误/症状,但我的根本原因不同。就我而言,我的 B2C 策略是使用 GET 而不是 POST 发送令牌请求,并且 IDP 服务器仅支持 POST。为了纠正这个问题,我必须在我的 OAuth2 技术配置文件的元数据部分设置以下内容。

<Item Key="HttpBinding">POST</Item>