配置pgAdmin4通过Azure AD OAuth2登录遇scope错误求助
解决pgAdmin4 Azure AD OAuth2登录的Scope错误问题
错误原因
错误提示AADSTS70011明确说明:
- 请求必须包含
scope参数 - 当前scope无效,且必须包含
openidscope(这是Azure AD OpenID Connect流程的强制要求) - 你的pgAdmin4配置未显式指定正确的scope参数,导致默认scope不符合Azure AD的规则
有效Scope的获取与配置
1. 标准必填与可选Scope
Azure AD针对OpenID Connect提供的通用有效Scope无需额外创建,直接使用即可:
openid:必填,启用OpenID Connect流程,用于获取ID Tokenprofile:可选,获取用户基本资料(姓名、头像等)email:可选,获取用户邮箱地址
2. 修改pgAdmin4配置
在config_local.py的OAUTH2_CONFIG字典中添加OAUTH2_SCOPE参数,同时修正两处配置错误:
- 修正
OAUTH2_API_BASE_URL为Graph API地址(用户信息通过Graph API获取) - 修正
OAUTH2_USERINFO_ENDPOINT为Graph API的用户端点
修改后的配置片段:
OAUTH2_CONFIG = [ { 'OAUTH2_NAME': 'azure', 'OAUTH2_DISPLAY_NAME': 'azure', 'OAUTH2_CLIENT_ID': '你的应用客户端ID', 'OAUTH2_CLIENT_SECRET': '你的应用密钥', 'OAUTH2_TOKEN_URL': 'https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token', 'OAUTH2_AUTHORIZATION_URL': 'https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize', 'OAUTH2_API_BASE_URL': 'https://graph.microsoft.com/v1.0/', # 修正此处 'OAUTH2_USERINFO_ENDPOINT': 'me', # 修正此处 'OAUTH2_SCOPE': ['openid', 'profile', 'email'], # 添加Scope参数 'OAUTH2_BUTTON_COLOR': '#0000ff', } ]
3. 验证Azure AD应用配置
确保你的Azure AD应用注册中:
- 在API权限页面已添加
Microsoft Graph的User.Read权限(对应profile和emailscope,用于获取用户信息) - 该权限已完成租户内的授权操作
配置生效
修改配置后重启pgAdmin4服务,再次尝试Azure AD登录即可。
内容的提问来源于stack exchange,提问作者Frendom
相关产品推荐
相关产品推荐

