已标记为可信应用仍遇Google Classroom 400 admin_policy_enforced错误
关于Google Classroom OAuth2登录时400
admin_policy_enforced错误的排查求助 问题描述
学生通过OAuth2登录服务时,出现无额外信息的400 admin_policy_enforced错误,测试的两所学校均存在该问题。由于这些学校已有其他第三方应用成功获取权限,推测问题出在自身配置。
我们尝试通过学生OAuth权限访问Google Classroom(GC)API,请求的权限范围如下:
https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/classroom.courses.readonly https://www.googleapis.com/auth/classroom.coursework.me.readonly
移除后两个GC相关权限范围时,学生可正常登录,说明这两个权限是问题根源。
使用的代码配置
我们使用googleapis包,服务器端OAuth客户端初始化代码:
const oauth2StudentClient = new google.auth.OAuth2({ clientId: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, redirectUri: `${process.env.ORIGIN}/api/oauth/google` })
生成授权链接的代码:
const googleStudentAuthUrl = oauth2StudentClient.generateAuthUrl({ access_type: 'offline', prompt: 'select_account', scope: studentScope //上述4个权限范围 })
已尝试的排查操作
此前通过管理员OAuth令牌结合域级权限可正常访问GC API,但因权限过大希望改用学生授权,尝试第三方可信应用方式时出现错误,已做以下操作:
- 在对应组织单元(OU)中将应用标记为第三方可信应用,试过自定义权限及默认“可信”权限
- 已获取GC访问权限
- 确认权限范围未被限制或阻止
- 已标记为限制豁免
目前无法进一步诊断,寻求帮助。
内容的提问来源于stack exchange,提问作者Corey Wolff
相关产品推荐
相关产品推荐

