OAuth 2.0 是一个授权框架,它允许第三方应用通过代表用户和一个服务提供者之间进行交互来获取对HTTP服务的有限访问权限。如今,OAuth 2.0 被广泛应用于各种行业,包括社交媒体、电子商务、在线服务、企业软件等,这使得它成为连接不同市场和用户群体的通用语言。OAuth 2.0 通过将用户身份验证委派给托管用户账户的服务以及批准请求的访问权限来工作。常用的单点登录协议有 OIDC、OAuth 2.0、CAS、LDAP 等,本教程将介绍使用 OAuth 2.0 协议对接 Github 并集成对接到 DataEase,实现单点登录。
平台对接功能参考:平台对接 - DataEase 文档
需求:实现 DataEase V2 对接 Github 平台,实现平台互通,一账号登录多平台。
DataEase 版本:V2.10.1
实践教程:
一、Github 界面操作
登录 Github ,右上角头像,点击 Settings
选择 Developer settings
选择 Oauth Apps
输入应用名称、URL,两处 URL 均填入实际访问 DE 的域名 / IP 。例如我这里是本地 IP 端口访问。
点击 Register Application 后,此处有 Client ID ,收集该信息,点击下方生成密码
点击更新
在 DataEase 中, 系统设置-平台对接-OAuth2,输入参数,测试保存。
在另一个浏览器测试登录,点击 OAUTH2 ,输入 Github 账号密码,如已登录则点击确认。
点击授权登录。
单点登录成功。
此时管理平台可以看见新增一个用户:
参数说明
授权端地址,https://github.com/login/oauth/authorize 请求用户的 GitHub 标识
Token 端地址,https://github.com/login/oauth/access_token,用户被 GitHub 重定向回你的站点
用户信息端地址,https://api.github.com/user 访问令牌可用于代表用户向 API 提出请求
client_id,客户端 ID,从 GitHub 收到的 OAuth app 的客户端 ID。
client_secret,客户端密钥,从 GitHub 收到的 OAuth app 的客户端密码。
回调地址:实际访问 DataEase 的地址
字段映射:平台映射字段
参考:
GitHub OAuth2 文档:https://docs.github.com/zh/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#step-3-app-polls-github-to-check-if-the-user-authorized-the-device