跳到主要内容

钉钉接入 NineData SSO

本文面向使用钉钉管理人员账户信息的企业,提供将钉钉接入单点登录(SSO)的最佳实践指南,以实现统一认证和授权管理。

背景信息

在企业使用 NineData 进行数据库管理、迁移和数据复制时,经常需要多名成员协作操作。为了避免为每个成员重复维护密码,推荐使用企业现有的统一身份认证系统(如钉钉)来接入 NineData,实现单点登录(SSO)。

通过配置钉钉 OAuth2.0 协议:

  • 用户可直接使用钉钉账号登录 NineData 控制台,管理员无需单独为用户创建账号。

  • 登录流程由钉钉负责,确保企业安全策略统一。

  • 管理员可以更方便地管理 NineData 的访问权限,减少账号管理成本。

本文档详细介绍如何在钉钉开放平台创建企业内部应用、配置 OAuth2.0 参数,并在 NineData 控制台完成 SSO 集成,让企业用户能够使用钉钉一键登录 NineData。

前提条件

  • 已创建或加入组织,并且该组织已开通数据库 DevOps 企业版,同时请确保您的包年包月订阅未过期。
  • 当前账号已切换到目标组织。更多信息,请参见切换到组织
  • 您使用的 NineData 为专属集群版本。
  • 您在 NineData 中的角色为系统管理员。更多信息,请参见角色
  • 您在钉钉组织中需要拥有开发者权限

步骤一:开启 NineData SSO 组织登录功能

  1. 登录 NineData 控制台,在左侧导航栏单击账户管理>组织信息

  2. 单击 SSO 账号登录右侧的开关,打开SSO 账号登录窗口。先开启顶部开启 SSO 账号登录的开关,在协议类型下方选择 OAuth2.0,然后在组织域名下方输入您的组织名称,同时记录 OAuth 服务提供商元数据下方的回复 URL (断言使用者服务 URL)

    image-20250926174317087

  3. 保留该页面,进入下一个步骤。

步骤二:在钉钉开放平台创建应用并配置

  1. 登录 钉钉开放平台

  2. 创建企业内部应用。更多信息,请参见钉钉官方文档创建应用

  3. 进入应用详情页,单击左侧导航栏的基础信息 > 凭证与基础信息,并记录 Client IDClient Secret

    image-20250926172634501

  4. 单击左侧导航栏的开发配置 > 权限管理,找到并开通【个人手机号信息】权限和【通讯录个人信息读权限】。

    image-20250926172725252

  5. 单击左侧导航栏的开发配置 > 安全设置,在重定向URL(回调域名)的文本框中,输入步骤一中记录的回复 URL (断言使用者服务 URL),单击保存

    image-20250926173123692

  6. 单击左侧导航栏的应用发布 > 版本管理与发布,发布当前应用。

步骤三:在 NineData 中接入 SSO 自建应用

  1. 回到步骤一SSO 账号登录页面,根据下表配置参数区域的所有参数。

    image-20250926180413871

    参数名说明
    client_id填写步骤二中记录的 Client ID
    client_secret填写步骤二中记录的 Client Secret
    scope填写为 openid,表示授权后可获得用户的 userid。更多信息,请参见钉钉官方文档:统一授权登录第三方网站
    授权端点uri填写为 https://login.dingtalk.com/oauth2/auth,钉钉官方提供的 OAuth 2.0 的授权接口,用于发起用户登录和授权流程。更多信息,请参见钉钉官方文档:统一授权登录第三方网站
    获取 access_token uri填写为 https://api.dingtalk.com/v1.0/oauth2/userAccessToken,钉钉 OAuth2.0 的 Token 获取接口,用来把上一步授权返回的 code 兑换成用户级别的 access_token。更多信息,请参见钉钉官方文档:获取用户token
    获取用户信息 uri填写 https://api.dingtalk.com/v1.0/contact/users/me,钉钉开放平台的获取用户信息接口,用上一步获取的 access_token 来获取当前登录用户的详细信息(姓名、手机号、邮箱)。更多信息,请参见钉钉官方文档:获取用户通讯录个人信息
  2. 单击授权端点uri 右侧的setting图标,并进行如下配置,然后单击确定

    • 请求方式GET

    • 请求参数:选择 Params,并根据下表配置各字段。

      image-20250926181203437

      平台字段
      接口映射字段
      类型
      默认值
      client_idclient_idString
      redirect_uriredirect_uriString
      scopescopeString
      promptpromptStringconsent
      response_typeresponse_typeStringcode
  3. 单击获取 access_token uri 右侧的setting图标,并进行如下配置,然后单击确定

    • 请求方式POST

    • 请求参数:选择 Body,编码方式选择 JSON,并根据下表配置各字段。

      image-20250926181401479

      平台字段
      接口映射字段
      类型
      默认值
      client_idclientIdString
      client_secretclientSecretString
      codecodeString
      grant_typegrantTypeStringauthorization_code
    • 请求返回:请根据下表配置。

      image-20250926181537820

      平台字段
      接口映射字段
      类型
      默认值
      access_tokenaccessTokenString
  4. 单击获取用户信息 uri 右侧的setting图标,并进行如下配置,然后单击确定

    • 请求方式GET

    • 请求参数:选择 Header,并根据下表配置。

      image-20250926181652366

      平台字段
      接口映射字段
      类型
      默认值
      access_tokenx-acs-dingtalk-access-tokenString
    • 请求返回:请根据下表配置各字段。

      image-20250926181719735

      平台字段
      接口映射字段
      类型
      默认值
      namenickString
      mobilemobileString
      emailemailString
  5. 开启允许 SSO 账号自动加入下方的开关,开启后用户在通过 SSO 方式登录 NineData 时,系统将自动添加该用户到 NineData,您无需再提前进行新建 SSO 用户操作。

  6. 允许 SSO 账号自动加入开启后,指定自动加入的 SSO 用户默认绑定的角色,支持单选和多选。

  7. 开启用户信息映射下方的开关,保持默认配置,然后单击确定即可。至此钉钉 SSO 接入操作已完成,钉钉组织中的成员可以通过组织登录直达地址下方的 URL,使用钉钉账号登录 NineData。

    image-20250926183204026