Authing 开放 API
    Authing 开放 API
    • Authing 开放 API
    • 认证 API
      • 社会化登录
        • 移动端登录
          • 企业微信授权码认证
          • 易盾一键登录
          • 飞书移动端认证
        • 使用社会化身份源登录
        • 获取 Authing 缓存的微信小程序 AccessToken
      • 登录前
        • 登录
          • 邮箱登录
          • 用户名密码登录
          • 手机验证码登录
          • 手机号密码登录
          • LDAP 用户名密码登录
          • AD 用户名登录
          • sso 检测登录态
          • 检测 Token 登录状态
        • 密码操作
          • 密码强度检测
        • 授权
          • 【必读】授权类接口文档说明
          • code 换取 accessToken
          • authing token 换取 accessToken
          • client_credentials 模式获取 access_token
          • 获取 OIDC 授权码 code
          • 用 access_token 换取用户信息
          • 使用 refresh_token 获取新的 access_token 和 id_token
          • 检查 access_token 的有效性
          • 撤回 access token 或 refresh token
        • 注册
          • 邮箱注册
          • 用户名注册
          • 手机号注册
      • 登录后
        • CAS
          • 【必读】CAS 接口文档
          • 检验 CAS 1.0 Ticket 合法性
          • 通过远端服务验证票据合法性
        • 登录
          • 发送邮件
          • 发送短信验证码
        • 密码操作
          • 通过邮件验证码重置密码
          • 通过短信验证码重置密码
          • 通过首次登录的 Token 重置密码
          • 通过密码强制更新临时 Token 修改密码
          • 更新用户密码
          • 检查密码是否合法
        • 用户
          • 获取当前登录用户的信息
          • 获取当前登录用户
          • 修改用户资料
          • 更新用户手机号
          • 更新用户邮箱
          • 绑定邮箱
          • 解绑邮箱
          • 刷新用户 Token
          • 绑定手机号
          • 解绑手机号
          • 获取当前用户的自定义数据列表
          • 添加自定义数据 setUdv
          • 获取用户被授权的所有资源
          • 删除自定义数据
          • 获取用户所有部门
          • 设置自定义字段值
          • 判断当前用户是否有某个角色
          • 退出登录
          • 获取用户所在组织机构的路径
          • 用户安全等级 获取用户的安全等级评分
          • 获取当前用户能够访问的应用
          • 获取用户自身被授权的资源
          • 退出登录2
          • 更新用户信息
        • MFA
          • 获取 MFA 认证器
          • 请求 MFA 二维码和密钥信息
          • 确认绑定 MFA
          • 解绑 MFA 认证器
          • 检验二次验证 MFA 口令
          • 检测手机号或邮箱是否已被绑定
          • 通过图片 URL 绑定人脸
          • 人脸二次认证
          • 检验二次验证 MFA 短信验证码
          • 检验二次验证 MFA 邮箱验证码
          • 检验二次验证 MFA 恢复代码
    • 管理 API
      • 获取 Token
        • 获取 accessToken
      • 权限管理
        • 获取用户池下权限组列表
        • 创建用户池下权限组列表
        • 修改用户池下权限组列表
        • 删除用户池下权限组列表
        • 查询用户池下权限组详情
      • 管理分组
        • 分组列表
        • 获取分组详情
        • 修改分组
        • 删除分组
        • 添加成员
        • 分组成员查询
        • 创建分组
      • 审计日志
        • 用户行为日志列表
        • 管理员日志列表
        • 获取应用登录趋势
        • 获取用户池登录趋势
      • 资源管理
        • 资源列表
        • 创建资源
        • 资源详情
        • 修改资源
        • 删除资源
        • 授权业务资源
        • 撤销业务资源
        • 批量获取被授权的资源
        • 获取被授权的资源
      • 管理应用
        • 应用列表
        • 创建应用
        • 应用配置详情
        • 应用配置修改
        • 多因素认证开关
        • 已登录态用户查询
        • 获取应用授权记录
        • 拒绝 / 撤回 授权
        • 同意授权
        • 删除应用
        • 添加注册协议
        • 注册协议详情
        • 注册协议修改
        • 注册协议删除
        • 编程访问账号列表
        • 编程访问账号添加
        • 编程访问账号删除
        • 编程访问账号修改
        • 子账号开关查询
        • 子账号列表查询
        • 子账号添加
        • 子账号修改
        • 子账号删除
        • 应用密钥刷新
        • 保存应用租户配置
        • 获取应用关联的租户
      • 管理用户
        • 【必读】用户接口相关文档
        • 搜索用户
        • 删除用户
        • 批量删除用户
        • 刷新用户 Token
        • 获取用户角色列表
        • 列表查询(分页+条件)
        • 根据 ID 获取用户详情
        • 创建用户
        • 更新用户信息
        • 检测用户是否存在
        • 获取用户所在租户
        • 关联账号,将社交账号绑定到主账号
        • 主账号解绑社会化登录账号
        • 检查某个用户在应用下是否具备 Session 登录态
      • 管理注册白名单
        • 白名单列表查询
        • 添加白名单
        • 删除白名单
        • 开启或关闭白名单
      • 管理组织机构
        • 获取组织机构详情
        • 删除组织机构
        • 修改节点
        • 删除节点
        • 节点详情
        • 判断是否为根节点
        • 获取根节点
        • 获取子节点列表
        • 移动部门
        • 获取成员列表
        • 移动成员
        • 移除成员
        • 设置用户主部门
        • 列表查询
        • 创建组织机构
        • 创建节点
        • 搜索组织机构节点
        • 添加成员
        • 导入组织机构
        • 导出所有组织机构
        • 导出某个机构
      • 管理角色
        • 角色列表
        • 角色详情
        • 修改角色
        • 删除角色
        • 创建角色
        • v3 获取用户角色
      • 管理策略
        • 获取策略列表
        • 添加策略
        • 获取策略详情
        • 编辑策略
        • 删除策略
        • 批量删除策略
        • 获取策略授权记录
        • 添加策略授权
        • 撤销策略授权
        • 设置策略授权状态为关闭
        • 设置策略授权状态为开启
      • 个人中心
        • 个人信息查询
        • 获取身份源连接列表(web 端)
        • 用户身份源连接列表
        • 个人信息编辑
        • 认证信息查询
        • 认证信息修改
        • 安全等级查询
        • 用户解绑社会化登录账号
      • 用户池管理
        • 用户池
          • 基础信息修改
          • 用户池列表查询
          • 用户池详情
          • 用户池密钥刷新
          • 用户池删除
          • 用户池创建
          • 协作管理员列表
          • 协作管理员邀请
          • 协作管理员移除
          • 用户池安全登录设置修改
          • 密码安全设置修改
          • 获取环境变量
          • 添加环境变量
          • 删除环境变量
          • 获取协作管理员用户池列表
          • 开启关闭用户池
          • 打开用户池
        • 自定义字段
          • 自定义字段列表查询
          • 添加自定义字段
          • 删除自定义字段
          • 修改自定义字段
        • 消息服务
          • 邮件模板列表查询
          • 邮件模板更新
          • 第三方邮件服务查询
          • 第三方邮件服务更新
      • 账号绑定
        • 用户是否绑定了 MFA
        • 按类型解绑用户 MFA
        • 为用户导入 TOTP
      • 身份源
        • 【必读】身份源接口相关文档
        • 获取身份源模板列表
        • 获取指定身份源配置模板
        • 获取身份源列表
        • 获取身份源详细信息
        • 创建身份源
        • 更新身份源
        • 删除身份源
        • 创建身份源连接
        • 更新身份源连接
        • 删除身份源连接
        • 检查连接唯一标识是否冲突
        • 开关身份源连接
        • 批量开关身份源连接
        • 批量开关所有应用
        • 获取身份源连接对于应用的状态列表
        • 获取身份源对于应用的状态列表
      • 租户
        • 获取用户池下租户列表
        • 创建租户
        • 获取租户相关统计信息
        • 根据 ID 查询租户
        • 修改租户
        • 配置租户品牌化
        • 配置租户品牌化
        • 删除租户
      • 租户成员
        • 更新租户成员
        • 添加租户成员
        • 设置租户管理员
        • 取消租户管理员
        • 获取租户成员列表
        • 删除租户成员

    Authing 开放 API

    为了给开发者持续提供更全面、更开发者友好的开放能力,Authing V3 版本的 API、SDK 已于 2022 年 10 月 24 日正式上线。推荐您使用最新版的 API 和 SDK, 点击此处跳转 〉
    Authing 是一款国内领先的、基于云原生架构的 IDaaS 产品,兼容 OAuth 2.0, OIDC, SAML, AD/LDAP, WS-Fed 等所有主流认证 / 授权协议,可以帮助你快速实现任何 Web、App 和企业软件的身份认证和用户管理,为你的客户和员工提供安全且完善的登录解决方案。
    drawing

    基本概念#

    Authing API 分类#

    Authing API 分为两大类:认证(Authentication) API 和管理(Management) API。
    认证 API 全部以终端用户(End User)的身份进行请求。Authing 认证 API 提供了登录、注册、登出、检查登录态、OIDC 标准协议等所有认证相关接口。此模块适合用于在浏览器环境或者后端服务器环境调用。
    管理 API 全部以管理员(Administrator)的身份进行请求。用于管理用户池资源和执行管理任务,提供了管理用户、角色、应用、资源等方法;一般来说,你在 Authing 控制台中能做的所有操作,都能用此模块完成。此模块适合在后端服务器环境使用。
    针对认证 API 中的社会化登录、OIDC code 换 token 等操作,我们使用提供了多种语言的 SDK ,在 API 之上进行了更高的封装,使得你无需过多关注协议、session 维护等细节,专注业务开发,更推荐你使用 SDK 来实现认证功能。

    用户池#

    用户池是 Authing 租户与租户之间的隔离单位,你拥有的所有用户数据、应用、资源等,都在一个用户池下。如果你还没有注册 Authing 账号,或者还未创建用户池,请先前往 https://authing.co/ 创建你的第一个用户池。创建完成之后,你可以获取到自己用户池的用户池 ID(UserPool Id)和用户池密钥(UserPool Secret),当你需要调用管理 API 的时候,你会需要用到他们。
    drawing

    应用#

    Authing 中的应用对应了你实际开发的应用,比如当你要基于 Authing 开发一个商城 APP 的时候,你在 Authing 的用户池中也会创建一个对应的应用。每个应用有自己的应用 ID 和二级域名,当你需要调用认证 API 时,你需要用到他们。
    drawing

    API 端点#

    Authing 开放 API Root 端点为:https://core.authing.cn . 所有请求均通过 HTTPS 加密传输,所有数据通过 JSON 格式传递。
    如果是私有化部署的 Authing 服务,API 端点信息请联系你的客户经理获取。

    HTTP 请求动词#

    针对每一个接口,Authing 尽可能使用合适的 HTTP 请求动词,以下是 Authing 使用到的所有 HTTP 请求动词:
    HTTP 请求动词描述
    GET用于获取资源。
    POST用于创建新资源。
    PATCH用于部分修改资源。例如,一个用户包含很多属性,一个 PATCH 请求可以接收一个或多个用户属性,对用户的部分属性进行修改。
    PUT用于替换资源。
    DELETE用于删除资源。

    HTTP 请求头#

    Authing API 会经常使用下面三个请求头,调用 API 时必须带上相应的请求头。
    请求头含义​适用 API
    x-authing-app-idAuthing 应用 ID认证 API
    x-authing-userpool-idAuthing 用户池 ID管理 API
    authorization终端用户或者管理员的 token认证 API 需要使用终端用户的 token(已登录情况下),管理 API 需要使用管理员的 token。

    接口鉴权#

    认证 API 和管理 API 鉴权方式存在差异,认证 API 不需要提供 Token 等访问凭证,调用管理侧 API 需要先使用用户池 ID 和密钥获取管理 Token,详情请见:https://www.apifox.cn/apidoc/project-548164/api-13674992 .

    安全域配置#

    默认情况下,Authing 不会校验 API 请求来源,你可以在 Authing 控制台中的安全设置 - 基础安全配置安全域(CORS),如果有多个域名,可以通过换行符(\n)进行分割。配置之后,只有在你安全域配置白名单中的域,才能调用相关 API。
    drawing

    密码传输加密#

    涉及到用户密码的接口,需要先对用户输入的密码进行加密。Authing 使用 RSA256 非对称加密方式对密码进行安全传输,你需要使用 Authing 的公钥对密码进行加密,发送到 Authing 服务器后端之后,Authing 会使用只有 Authing 知道的私钥进行解密。
    Authing 的公钥如下,你也可以通过此端点拉取:
    -----BEGIN PUBLIC KEY-----
    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4xKeUgQ+Aoz7TLfAfs9+paePb
    5KIofVthEopwrXFkp8OCeocaTHt9ICjTT2QeJh6cZaDaArfZ873GPUn00eOIZ7Ae
    +TiA2BKHbCvloW3w5Lnqm70iSsUi5Fmu9/2+68GZRH9L7Mlh8cFksCicW2Y2W2uM
    GKl64GDcIq3au+aqJQIDAQAB
    -----END PUBLIC KEY-----
    你还可以参考此 Demo,内置了加密密码的方法:https://github.com/Authing/password-encryption .

    接口限流#

    针对免费账户,Authing 默认的接口限流频率为 300 QPS / 用户池。如果触发了我们的 QPS 限制,你将收到以下错误提示:HTTP code 为 429,响应体为:
    {
        "code": 429,
        "message": "您的请求已超过最大数量限制,请稍后重试"
    }
    如果你触发了接口限流阈值,请升级套餐并联系 Authing 客服申请更大的 QPS 限制。

    错误码#

    错误代码消息格式如下:
    {
        message: "系统繁忙,请稍后再试",
        code: 1000,
        data: null
    }

    获取帮助#

    有任何使用上的问题,可以在 Authing 论坛 中提出,我们会尽快为你解答。
    下一页
    企业微信授权码认证
    Built with