使用Streamlit+Python连接AD B2C自定义策略遇AADSTS50049错误
解决Streamlit连接Azure AD B2C自定义策略的AADSTS50049错误
使用Streamlit结合streamlit_msal库连接Azure AD B2C自定义策略时出现AADSTS50049错误(提示"未知或无效实例"),核心原因是Authority URL格式不符合B2C自定义策略的要求,以下是修复方案:
1. 修正Authority URL格式
Azure AD B2C自定义策略的正确Authority URL必须包含tfp(Trust Framework Policy)标识段,格式如下:
https://<TENANT_DOMAIN>.b2clogin.com/tfp/<TENANT_DOMAIN>/<CUSTOM_POLICY_ID>/
替换你的代码中authority参数,修正后的示例代码:
import streamlit as st from streamlit_msal import Msal auth_data = Msal.initialize_ui( client_id=<MY_CLIENT_ID>, authority="https://<TENANT>.b2clogin.com/tfp/<TENANT>.onmicrosoft.com/B2C_1A_CUSTOM_POLICY/", scopes=[], connecting_label="Conectado", disconnected_label="Desconectado", sign_in_label="Entrar", sign_out_label="Desconectar" )
2. 验证关键参数正确性
- 确认
<TENANT>替换为你的B2C租户完整域名(如your-tenant.onmicrosoft.com),需与Azure门户中显示的租户信息完全一致。 - 确认
B2C_1A_CUSTOM_POLICY是Azure门户中已发布的自定义策略ID,无拼写错误或格式偏差。
3. 可选:补充Scopes配置
如果你的应用需要访问受B2C保护的API,需在scopes参数中添加对应的权限范围,例如:
scopes=["https://<TENANT>.onmicrosoft.com/api/read"]
内容的提问来源于stack exchange,提问作者Tiago Lopes
相关产品推荐
相关产品推荐

