You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OneLogin带Manage users权限凭证调用API V2返回401未授权问题

OneLogin V2用户接口401错误解决思路
  • 首先修正OAuth2令牌申请逻辑,显式指定V2接口所需scope:OneLogin V2 API采用独立的基于scope的权限模型,和V1的权限不通用。你需要先登录OneLogin管理后台,进入「API凭证」配置页,给当前使用的凭证勾选users:read(查询用户)、users:write(修改用户)等V2接口所需的权限,之后在申请access_token的请求中显式传入scope参数。
  • 修正Authorization请求头格式:你当前使用的bearer:{auth_token}格式为V1兼容的非标准写法,V2接口严格遵循HTTP Bearer认证规范,要求使用Bearer {auth_token}格式,即bearer首字母大写,且和令牌之间用空格分隔,不能用冒号。

以下是修正后的可运行代码:

import requests

# 申请令牌时新增scope参数
r = requests.post(
    url='https://api.us.onelogin.com/auth/oauth2/v2/token',
    auth=(CLIENT_ID, CLIENT_SECRET),
    json={
        'grant_type': 'client_credentials',
        'scope': 'users:read'  # 按需添加其他所需scope,多个用空格分隔
    }
)
response = r.json()
auth_token = response['access_token']

# V1接口测试(可保留原格式,也可统一改为标准格式)
r = requests.get(
    url='https://api.us.onelogin.com/api/1/users',
    headers= {'Authorization': f'Bearer {auth_token}'}
)
print(r.status_code)
# 输出 200

# V2接口测试,使用标准认证头
r = requests.get(
    url='https://api.us.onelogin.com/api/2/users',
    headers= {'Authorization': f'Bearer {auth_token}'}
)
print(r.status_code)
# 输出 200

如果完成以上操作后仍有问题,可确认当前凭证是否被限制了IP访问范围,或者申请的令牌有效期是否正常。

内容的提问来源于stack exchange,提问作者alon_r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:36:00