如何配置Apache Superset的Azure OAuth2实现强制MFA认证?
解决Apache Superset Azure SSO强制触发MFA登录的问题
你的场景是Apache Superset集成Azure SSO后,未提前完成MFA的用户登录时直接收到"Access is denied"错误,日志提示AADSTS50076,核心原因是当前OAuth请求未触发Azure AD的MFA验证流程。
只需在Azure SSO配置的remote_app节点下添加authorize_params字段,指定prompt=login参数,即可强制触发完整的身份验证流程(包含MFA)。
修改后的完整配置示例:
{ "name": "azure", "icon": "fa-windows", "token_key": "access_token", "remote_app": { "client_id": "AZURE_APPLICATION_ID", "client_secret": "AZURE_SECRET", "api_base_url": "https://login.microsoftonline.com/AZURE_TENANT_ID/oauth2", "client_kwargs": { "scope": "User.read name preferred_username email profile upn", "resource": "AZURE_APPLICATION_ID", "verify_signature": false }, "request_token_url": null, "access_token_url": "https://login.microsoftonline.com/AZURE_TENANT_ID/oauth2/token", "authorize_url": "https://login.microsoftonline.com/AZURE_TENANT_ID/oauth2/authorize", "authorize_params": { "prompt": "login" } } }
关键说明:
prompt=login参数会强制Azure AD要求用户重新完成身份验证流程,无论是否存在有效会话,确保MFA步骤被触发。- 若需要让用户选择登录账户,可将参数值改为
prompt=select_account,同样能触发MFA验证。
修改配置后,重启Superset服务即可生效。
内容的提问来源于stack exchange,提问作者Sam Firke
相关产品推荐
相关产品推荐

