栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用第三方账号认证(一):钉钉扫码登录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用第三方账号认证(一):钉钉扫码登录

一、需求

要使用钉钉扫码登录,也就是需要把kintone的登录画面替换成扫码画面。

而在扫码后,则需要获取钉钉用户的身份信息并将其转化为对应的kintone用户。

最后服务端生成相应的session,并展示登录后的画面。

在无法修改kintone源码的前提下,该如何实现这一功能?

二、原理

其实使用其他账号登录kintone系统,这个就是一个单点登录(SSO)的需求。

kintone本身则自带SSO相关设置。

当kintone作为SP提供服务时,我们只需要改造与之对接的IdP端,让它对接钉钉扫码登录即可。

三、程序

程序设计图如下:

我们需要实现的是IdP部分,这部分代码可以从以下地址获取:

GitHub - cyaoc/Dingtalk-IdP-demo

由于项目采用了Node.js来开发,并且在配置方面需要生成验证身份用的证书文件。

所以请大家自行安装Node.js和openssl。

四、代码说明
  1. 使用express搭建http服务器。

  2. 使用samlp作为saml中间件,来处理saml请求。

  3. 使用memory-cache作为缓存。缓存token、设定及用户信息。

  4. 这次的demo不建立本地的用户session。

  5. kintone saml的关联项只有登录名,所以绑定手机号和登录名即可。

五、配置

钉钉端配置
  1. 申请成为钉钉开发者

  2. 创建一个H5微应用
    注:完成步骤一的创建和权限部分即可。

  3. 开通 “企业员工手机号信息” 及 “成员信息读权限” 2个权限

  4. 登录与分享->接入登录 中添加任意回调域名 

六、数据库端配置

为简化安装,这里使用kintone app来实现数据的存储。

  • 创建用户对应关系app,并设置查询token

    字段名类型字段代码
    kintone用户登录名单行文本框loginName
    手机号单行文本框mobile
  • 创建钉钉管理app,并设置查询token     

    字段名类型字段代码 描述
    kintone域名单行文本框domain需要使用SSO功能的kintone域名,如:xxxx.cybozu.cn
    APPID数值appid用户对应关系APPID
    用户对应关系APPToken单行文本框token用户对应关系APP查询token
    corpId单行文本框corpId钉钉的corpId
    AppSecret单行文本框appSecret钉钉微应用的AppSecret
    AppKey单行文本框appKey钉钉微应用的AppKey
    callbackurl单行文本框callback钉钉微应用中设置的回调域名

七、IdP端配置
  1. 安装依赖:进入Dingtalk-IdP-demo目录,执行:

    1

    npm i

  2. 生成证书:

    执行cert.sh脚本或者你也可以直接复制并执行脚本中的openssl命令。

    执行成功将会新增2个pem文件。

  3. 在项目根目录下新建.env文件,添加如下内容:

    1

    2

    3

    DOMAIN=管理app所在的kintone域名

    APPID=管理appID

    TOKEN=管理app的查询token

  4. 启动项目,在终端中输入:

    1

    npm start

八、kintone共通管理配置

进入共通管理需要admin权限,没有权限的请去申请自己的开发者账号。

  1. 进入cybozu共通管理->系统管理->安全性->登录

  2. 勾选启用SAML身份验证

  3. Identity Provider的SSO终结点URL(HTTP-Redirect)中输入 http://127.0.0.1:3000/saml/sso

  4. 退出cybozu.cn后的跳转URL 中输入 http://127.0.0.1:3000/signout

  5. Identity Provider在签名时使用的公钥证书 上传IdP端根目录中生成的 idp-public-cert.pem

  6. 点击保存

九、运行效果

请看完整文章:使用第三方账号认证(一):钉钉扫码登录

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号