Azure AD B2C自定义策略REST API返回声明在App Insights的展示方式
Azure AD B2C自定义策略REST API技术配置在App Insights中的展示说明
背景信息
我配置了如下Technical Profile:
<TechnicalProfile Id="REST-GetTAndCsForUser-Test"> <DisplayName>Get user extended profile Azure Function web hook</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://myurl</Item> <Item Key="SendClaimsIn">QueryString</Item> <Item Key="AuthenticationType">Bearer</Item> <Item Key="UseClaimAsBearerToken">accessToken</Item> <Item Key="AllowInsecureAuthInProduction">false</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="accessToken" /> <InputClaim ClaimTypeReferenceId="email" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="accepted" /> <OutputClaim ClaimTypeReferenceId="acceptionRequired" /> <OutputClaim ClaimTypeReferenceId="tcDateAccepted" /> <OutputClaim ClaimTypeReferenceId="tcVersionAccepted" /> </OutputClaims> </TechnicalProfile>
使用Postman测试该端点时,返回结果如下:
{ "accepted": true, "acceptionRequired": false, "tcDateAccepted": "2023-05-10", "tcVersionAccepted": "latest" }
但在App Insights中无法看到该端点的返回内容,怀疑这导致无法获取正确数据,现咨询:Azure AD B2C自定义策略里连接REST API的Technical Profile的参数在App Insights中是如何展示的?
具体展示说明
1. 请求相关参数
- 技术配置ID:会在App Insights的跟踪事件名称中体现,比如
REST-GetTAndCsForUser-Test会出现在B2C_RESTAPI_START或B2C_RESTAPI_END这类事件名称里 - 请求元数据:
ServiceUrl、SendClaimsIn等元数据信息,会被记录在跟踪事件的自定义属性中,键名通常带前缀,比如rest_metadata_ServiceUrl - 输入声明:输入的
accessToken、email这类声明,默认不会明文展示(出于安全考虑),但能看到声明的类型标识;开启详细日志后,可能看到部分脱敏内容,敏感数据如token会被自动屏蔽 - 请求方法与路径:REST API的请求方法(GET/POST等)和完整请求路径,会被记录在跟踪事件的
RequestPath或类似属性中
2. 响应相关参数
- 响应状态码:API返回的HTTP状态码(如200、400)会明确记录在跟踪事件的
StatusCode属性中 - 响应内容:默认情况下,App Insights不会记录完整的REST API响应体,这就是你看不到返回内容的原因。如果需要查看响应体,需在Technical Profile中添加额外元数据配置:
添加后,匹配<Item Key="IncludeResponseClaimsInLogs">true</Item>OutputClaims的响应字段会被记录在跟踪事件的自定义属性中,比如rest_output_accepted、rest_output_acceptionRequired等,值对应API返回内容 - 错误信息:如果API返回错误,错误消息会被记录在
ErrorMessage属性中,用于排查问题
3. 注意事项
- 敏感数据(如
accessToken)始终会被自动脱敏,不会在日志中明文显示 - 日志详细程度受B2C策略的日志级别控制,需确保策略已开启详细日志记录,并正确关联App Insights资源
- 只有API调用完成后,相关跟踪事件才会发送到App Insights,需注意筛选事件的时间范围
内容的提问来源于stack exchange,提问作者myself
相关产品推荐
相关产品推荐

