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

如何将Xero身份提供商集成到Azure B2C?解决OIDC兼容问题

将Xero集成到Azure B2C的问题咨询

需求场景

  • 目标:将Xero集成到Azure B2C,支持用户通过Xero账户认证访问SPA应用与REST API
  • 登录限制:仅允许本地账户及预创建的Xero用户登录;Xero用户账户需在首次登录前通过C# Microsoft.Graph库创建,创建时的身份配置代码如下:
Identities = new List<ObjectIdentity>
{
    new() { // Xero用户身份提供商配置
        SignInType = "federated",
        Issuer = "https://identity.xero.com",
        IssuerAssignedId = "xero-userid"
    }
}

已执行操作与错误现象

  1. 添加自定义身份提供商,使用https://login.xero.com/identity/.well-known/openid-configuration作为元数据URL
  2. 参照Xero授权码流程配置client_id、client_secret,设置response_type=code,scopes为openid profile email
  3. 启用登录流程后,用户在Xero端登录成功跳转回SPA时,虽能看到Xero返回的code传递至token端点,但最终重定向到redirect_uri时收到错误:
http://localhost:3000/#error=server_error&error_description=AADB2C%3a+An+exception+has+occurred.%0d%0aCorrelation+ID%3a+90657cd5-4025-4c55-aebf-ab5ee545fbd9%0d%0aTimestamp%3a+2023-08-09+17%3a58%3a26Z%0d%0a&state=eyJpZCI6ImY4NmVmYWNhLWZlNDYtNGMxZS05NmNkLTU1OTUzMmJlMWIzYiIsInRzIjoxNjkxNjAzOTAxLCJtZXRob2QiOiJyZWRpcmVjdEludGVyYWN0aW9uIn0%3d

核心问题定位

直接调用Xero的token端点可成功完成令牌交换,但Xero要求Azure B2C的代理请求(即https://<tenantid>.b2clogin.com/<tenantid>.onmicrosoft.com/oauth2/authresp向https://login.xero.com/identity/connect/token发起的请求)必须通过**Basic Base64(client_id:client_secret)**格式的Authentication头传递身份凭证,而非在请求体中携带client_id和client_secret。

咨询内容

  • 如何将Xero作为身份提供商集成到Azure B2C?
  • 该场景是否可通过Azure B2C的标准配置流程实现?
  • 若必须使用自定义策略,针对Xero这种非标准OIDC实现,策略应如何配置?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:35:05