Azure B2C中TOTP+Email组合MFA配置失败求助
解决Azure B2C自定义策略中SamlAssertionSigning密钥缺失错误
问题原因
你的策略B2C_1A_signup_signin_saml为SAML断言输出类型,但Jwt Issuer技术配置文件未配置用于SAML断言签名的密钥,导致完成MFA流程后生成SAML断言时触发错误。
修复步骤
1. 创建或确认SAML断言签名密钥
在Azure B2C门户中操作:
- 进入标识体验框架 -> 策略密钥
- 检查是否存在类型为
SAML Assertion Signing的密钥。若没有,点击添加:- 选择密钥类型为
SAML Assertion Signing - 可选择生成自动创建密钥,或上传已有证书文件
- 为密钥命名(例如
B2C_1A_SamlAssertionSigning),保存后记录其StorageReferenceId
- 选择密钥类型为
2. 更新Jwt Issuer技术配置文件
在你的策略文件(如B2C_1A_signup_signin_saml.xml或TrustFrameworkExtensions.xml)中,找到Id="Jwt Issuer"的技术配置文件,添加SamlAssertionSigning密钥引用:
<TechnicalProfile Id="Jwt Issuer"> <DisplayName>JWT Issuer</DisplayName> <Protocol Name="None" /> <OutputTokenFormat>SAML2</OutputTokenFormat> <Metadata> <!-- 保留原有元数据配置 --> </Metadata> <CryptographicKeys> <Key Id="JwtSigning" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" /> <!-- 添加SAML断言签名密钥 --> <Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SamlAssertionSigning" /> <Key Id="MetadataSigning" StorageReferenceId="B2C_1A_MetadataSigningKeyContainer" /> </CryptographicKeys> <InputClaims /> <OutputClaims /> </TechnicalProfile>
注意:确保
OutputTokenFormat设置为SAML2,匹配你的SAML类型用户旅程。
3. 重新上传并测试策略
将修改后的策略文件重新上传到Azure B2C,然后测试用户旅程,确认错误消失。
内容的提问来源于stack exchange,提问作者Narendra Kumar
相关产品推荐
相关产品推荐

