Azure B2C App Insights日志:如何屏蔽密码声明防止开发者查看用户密码?
在Azure B2C的App Insights日志中屏蔽密码声明的方法
一、通过自定义策略过滤敏感声明
在Azure B2C自定义策略中,可通过以下操作避免密码声明被写入App Insights日志:
- 替换密码声明值:在处理用户认证的技术配置文件中,将
password类型声明的输出值替换为掩码字符串。例如在<TechnicalProfile>的<OutputClaims>节点中配置:<OutputClaim ClaimTypeReferenceId="password" DefaultValue="***" /> - 用声明转换清空密码:定义声明转换规则,在日志记录前清空密码字段内容。示例配置如下:
随后在对应技术配置文件的<ClaimsTransformations> <ClaimsTransformation Id="MaskPassword" TransformationMethod="SetClaimsStringValue"> <InputParameters> <InputParameter Id="claimTypeReferenceId" DataType="string" Value="password" /> <InputParameter Id="value" DataType="string" Value="***" /> </InputParameters> </ClaimsTransformation> </ClaimsTransformations><OutputClaimsTransformations>节点中引用该转换,确保日志采集前密码已被屏蔽。
二、配置App Insights数据掩码
直接在App Insights端对已采集的日志数据进行掩码处理,即使密码意外写入日志也会被自动屏蔽:
- 进入目标App Insights资源,在左侧菜单找到“数据掩码”选项。
- 添加新掩码规则,设置字段路径为密码声明在日志中的存储路径(例如
properties.claims.password,需根据实际日志结构调整)。 - 选择“替换为固定字符串”的掩码方式,设置替换值为
***,保存规则后,后续采集的日志中密码字段会被自动替换。
三、禁用敏感声明的全局日志记录
在Azure B2C门户或自定义策略中,禁止记录包含密码的敏感声明:
- 门户配置:登录Azure门户,进入目标B2C租户的“诊断设置”,在关联的App Insights日志配置中,排除包含敏感声明的日志类别。
- 自定义策略配置:在
<RelyingParty>节点中添加配置,明确排除password声明的日志记录:<RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <UserJourneyBehaviors> <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="YOUR_INSTRUMENTATION_KEY"> <ExcludedClaims> <ClaimTypeReferenceId="password" /> </ExcludedClaims> </JourneyInsights> </UserJourneyBehaviors> </RelyingParty>
内容的提问来源于stack exchange,提问作者Erkan Y.
相关产品推荐
相关产品推荐

