自己搭建CodiMD的过程中,尝试了许久,才将这个应用接入到了Authing的单点登录系统中,分享一下经验,希望给有需要的人使用!如果官方可以集成为官方的模板,那么一定会锦上添花
我使用的是Authing的认证!

在线文档Codimd官方地址如下,这是一个在线协作文档的服务,对于需要协作Markdown文档的朋友们,非常有帮助。而且界面非常的简介。
CodiMD官方地址 (github.com)

第一步:选择自建一个应用

第二步,选择标准web应用

  • 应用名称填写:您自己的webapp的名字,可以随意一些
  • 认证地址填写:一段英文字符,例如我选择的是markdown,后面是.authing.cn,可以忽略不计

第三步,在Authing官网配置相关信息

  • 请选择OIDC默认的协议

    有人会问其他的要不要改,我觉得不需要,如果有问题的话可以去更多配置里面,打开Oauth2身份提供商,看下图哈哈

    格式是(下面的两种都可以)
    http://<your-codimd-ip:port>/auth/oauth2/callback
    http://<your-codimd-website-Domain>/auth/oauth2/callback

第五步,到你的Codimd填写环境变量:

如果不懂环境变量的到文章末尾去看环境变量怎么改hhh

      - CMD_OAUTH2_PROVIDERNAME=统一认证# 显示在首页的,登录按钮的文字- CMD_OAUTH2_CLIENT_ID=62a4**************************# 国际惯例ClientID- CMD_OAUTH2_CLIENT_SECRET=6e****************************# 国际惯例SECRET_ID- CMD_OAUTH2_BASEURL=https://********.authing.cn/oidc/# 填写不填写,真的无所谓BASEURL,没什么用的东西- CMD_OAUTH2_USER_PROFILE_URL=https://*******.authing.cn/oidc/me# 重要:有人会问认证地址在哪,请回忆一下最开始的时候,你填那个webapp名字的时候就已经填写了!- CMD_OAUTH2_AUTHORIZATION_URL=https://*******.authing.cn- CMD_OAUTH2_TOKEN_URL=https://*******.authing.cn/oidc/token# 特别重要!USERNAME_ATTR一定要配置成sub才行- CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR=sub- CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR=name- CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR=email

找不到认证地址的回忆一下!

第六步,登录查看

有问题就查docker的日志即可!

补充,环境变量怎么配置

version: "3"
services:database:image: postgres:11.6-alpineenvironment:- POSTGRES_USER=codimd- POSTGRES_PASSWORD=I7HHOC061U71CS9- POSTGRES_DB=codimdvolumes:- "database-data:/var/lib/postgresql/data"restart: alwayscodimd:image: hackmdio/hackmd:2.4.1environment:# 下面的就是环境变量- CMD_DB_URL=postgres://codimd:I7HHOC061U71CS9@database/codimd- CMD_USECDN=false- CMD_GITHUB_CLIENTID=219ba1be6c66b0d97f23- CMD_GITHUB_CLIENTSECRET=9fab2213486135d8ec510a643b4afa2cd8988803# 上面的就是环境变量# 注释:就是那种简单的key value的格式depends_on:- databaseports:- "51014:3000"volumes:- upload-data:/home/hackmd/app/public/uploadsrestart: always
volumes:database-data: {}upload-data: {}

把Codimd的官方文档的链接放上来,由于一般打不开,所以我把原文也放在这里面了,给有需要的同志们参考一下!
Generic OAuth 2.0 - HackMD

Generic OAuth 2.0 provider

CodiMD can integrate any OAuth 2.0 provider via generic oauth 2.0 provider .

Before setup OAuth 2.0 provider, you need to contact your OAuth 2.0 service to request some parameter described below.

  1. the authorization url for OAuth 2.0 service
    The first step of OAuth 2.0 is redirect user to OAuth 2.0 service, and the service will authenticate the user credential. If success, return access code to callback url (http://<your-codimd-server.example>/auth/oauth2/callback ).
  2. the access token url for backend to request a access token for OAuth 2.0 service.
    The second step, CodiMD server use access code in step 1 to fetch access token for the login user.
  3. user profile api url
    After CodiMD server get access token , we need to known the username, email, display name. CodiMD server use access token with user profile api to get user profile data. In this step you can also specify scope to limit OAuth 2.0 service return what message CodiMD server can see. default scope is email
  4. CodiMD need a id for identify difference user in same auth provider, you need to provide a object path (user profile username attr ) to retrive username/id in user profile data

Setting

Environment variable name description required? default value example
CMD_OAUTH2_PROVIDERNAME OAuth 2.0 service name true MyService
CMD_OAUTH2_BASEURL OAuth 2.0 service url false https://my-service.xyz/
CMD_OAUTH2_CLIENT_ID Client ID for OAuth 2.0 protocol true atc93jf9vasdfasdf
CMD_OAUTH2_CLIENT_SECRET Client Secret for OAuth 2.0 protocol true asdfasdfavvtv88v@
CMD_OAUTH2_SCOPE OAuth 2.0 scope (use space to seperate) false email basic email
CMD_OAUTH2_AUTHORIZATION_URL redirect to OAuth 2.0 url true https://my-service.xyz/oauth/authorize
CMD_OAUTH2_TOKEN_URL backend to fetch access token api endpoint true https://my-service.xyz/oauth/token
CMD_OAUTH2_USER_PROFILE_URL backend to fetch user profile api endpoint true https://my-service.xyz/oauth/user/profile
CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR Object path to fetch username in profile data false username user.username
CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR Object path to fetch display in profile data false displayName user.displayname
CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR Object path to fetch email in profile data false email user[0].email

Codimd接入单点登录相关推荐

  1. 业务系统接入单点登录服务

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11377620.html 一:单点登录业务接入场景 对于大型企业,内部有各种各样的办公OA.业务系统,员工使用 ...

  2. 单点登录的三种实现方式

    假如你是企业管理者,你的公司正在使用包括考勤系统.差旅报销系统.在线协同工具等十几甚至几十套不同的软件系统,你的员工是否可以在这些不同的系统中,一次登录全部搞定?有没有发生多人共享同一账号,造成身份管 ...

  3. Cookie Domain设置错误引发的单点登录死循环问题

    问题现象 在业务系统B登录之后,打开B系统的一个内嵌iframe页面page1,page1需要访问业务系统A/create接口,屏幕出现一片白色,跟踪chrome network发现请求截图如下: 可 ...

  4. 自动化运维平台中的统一认证接入与单点登录实现

    前言: 在运维开发的众多系统中,怎么能更好的管理用户账号和密码,以及做到统一的brac权限角色配置系统. 以前记得最初做运维开发项目的时候,每个app都是一套用户密码,顶多做了一个加密流转,申请接入的 ...

  5. Dynamics 365 CRM 接入统一身份认证平台(单点登录集成)

    打算将D365 CRM接入公司统一身份认证平台. 前提:D365 已IFD部署,因为要借助ADFS来完成单点登录. 登录ADFS服务器,打开ADFS,本次集成,统一身份认证为上游,ADFS是下游,因为 ...

  6. 若依ruoyi框架实现单点登录或者接入统一认证

    目录 1.业务场景 2.前端改造 2.1.新增login_sso.vue 2.2.index.js注册路由 2.3.permission.js增加白名单过滤 2.4.login.js增加后端登录接口 ...

  7. 在浙江大学做全校单点登录接入的心得体会,采用sun公司的单点登录技术

    去年在浙大做项目,遇到了单点登录需要,总结感受如下: 1. 不想花钱,又想办事,不大可能,不烧个上千万,能做出个像样的东西,还真不太可能, 你在网上看,到处是开源,到处是免费的,但是真正想搞点儿事出来 ...

  8. 使用http的asp.net项目接入https的CAS单点登录系统

    使用http的应用网站,接入https的CAS单点登录系统,结果就是登录之后,提示重定向次数太多,打不开应用网站的页面. 猜测原因是单点登录服务器与集成应用网站之间没有建立起有效连接.实际上应该也是, ...

  9. 搜狐畅言社交化评论插件接入之单点登录

    2019独角兽企业重金招聘Python工程师标准>>> 很久以前就想做关于Jfinal的社区,可是苦于不像去写那种留言与回复的那种功能,于是就想着要通过第三方的那种社交评论插件去完成 ...

最新文章

  1. linux中shell脚本启动报错
  2. python新手入门教程-Python简明入门教程
  3. Spring.NET企业架构实践之 JQuery + FlexiGrid + ASP.NET MVC + NVelocity + WCF + LINQ + NHibernate 综合应用...
  4. gulp html 压缩,gulp-gzip压缩
  5. 移动端开发的知识系统介绍
  6. 顶级程序员的心得 - Coders at Work
  7. IOS 文本文字下面添加下划线
  8. tomcat安装成功页面翻译
  9. python 阮一峰_Python模块整理
  10. java html5 上传_Java实现HTML5拖拽文件上传
  11. java验证码图片工具类_工具类:VerifyCode.java:图片验证码
  12. 威纶和s7200通讯线_威纶触摸屏如何与西门子PLC进行通信,教你两种方法吧!
  13. 电化学血糖传感器原理及发展
  14. 瑞利衰落AWGN带限信道BPSK基带传输系统误码性能仿真-python实现
  15. uboot_v2016 版本中fw_printenv的编译问题
  16. Ubuntu虚拟机使用桥接模式设置IP
  17. PHP 生成PDF文件并向PDF添加图片
  18. 写给理工科人看的乐理(一)声学基础
  19. 春节快乐,iPhone11 抱回家!
  20. Taro微信小程序实现 美团购物车小红点动画效果

热门文章

  1. Windows程序调试----第三部分 调试技术----第9章 内存调试
  2. com.netflix.hystrix.exception.HystrixRuntimeException: 类名#方法名(String,String) failed错误引起的一连串思考
  3. Browser(一)
  4. 02进阶对Linux了解
  5. iOS app开源项目
  6. 301和302状态码区别
  7. android7禁用selinux,Android7关闭selinux(设置为Permissive模式)
  8. http的post和get方法性能上的区别
  9. 印刷报价系统源码_皇家印刷术-设计系统案例研究
  10. cf卡中毒了?别担心,这2种方法帮助你恢复数据