Azure AD B2C自定义策略下如何记录对Identity Provider的调用?
排查Azure AD B2C与自定义OIDC身份提供商的网络交互问题
遇到这种AADB2C90289错误确实挺棘手的,尤其是没法直接控制对方IdP的日志。不过你可以通过以下方法捕获Azure AD B2C与该IdP之间的实际网络调用细节:
启用Verbose级别的策略诊断日志
默认的Application Insights日志只会展示简化结果,你需要调整日志级别来获取完整交互信息:- 登录Azure门户,进入你的B2C租户
- 导航到Identity Experience Framework > Diagnostic settings
- 添加一个新的诊断设置,勾选需要的日志类别(推荐直接选
AllLogs) - 选择将日志发送到已关联的Application Insights资源,然后把Log level设置为
Verbose
配置完成后,B2C会记录下与IdP交互的所有HTTP请求和响应细节,包括请求URL、头信息、响应状态码和返回内容(敏感数据会自动脱敏)
用Kusto查询筛选目标日志
重新触发一次失败的登录流程,拿到最新的CorrelationId后,在Application Insights的日志查询页面执行以下Kusto语句(替换成你的CorrelationId):PolicyLogs | where Timestamp > ago(1h) | where CorrelationId == "97809cc4-04e8-47a3-9263-de57260e7979" | project Timestamp, Action, HttpRequest, HttpResponse这个查询会返回该会话中B2C与IdP的所有交互记录,你可以从
HttpRequest里看到B2C发送给IdP的授权码请求参数,从HttpResponse里看到IdP返回的具体错误信息(比如无效的客户端凭证、授权码过期、Scope不匹配等)额外排查小技巧
除了日志,你也可以先检查自定义策略里的OIDC技术配置文件:确认TokenEndpoint、ClientId、ClientSecret(如果用了客户端密钥)、Scope这些参数是否和IdP要求的完全一致,有时候参数拼写错误也会导致这类连接失败。
内容的提问来源于stack exchange,提问作者sgdesmet
相关产品推荐
相关产品推荐

