基于Python代码的单点登录
1. 简介
1.1 案例简介
本案例通过 Python 代码配置自定义接口,实现简道云的单点登录业务。
1.2 使用场景
企业拥有自己的企业微信、中台等账号时,需要通过单点登录实现企业成员登录简道云的效果,则可以通过自定义接口实现。
1.3 预期效果
以本地登录为例,成员访问简道云企业 URL 时,点击单点登录后即可自动登录至简道云工作台中,退出登录后进入官网页面。效果如下所示:
2. 设置步骤
2.1 Python的安装及配置
2.1.1 Python安装
登录 Python 官网,根据企业需求选择合适的Python版本,点击「下载使用」进行下载,如下所示:
2.1.2 安装依赖包
1)Python 安装完成后,下载对应的依赖包:依赖包下载链接。如下所示:
2)在电脑中同时按住 windows+R,输入 cmd 后,进入命令行后,输入执行命令进行安装。执行命令如下所示:
pip install -r D:\requirements.txt
注:
1)该示例在 windows 环境中进行。
2)输入执行命令时,需根据 txt 文件位置在执行命令中补充完整文件的绝对路径。
2.1.3 下载demo
您可以根据企业自身需求,自己开发编写出对应的 Python 代码。简道云也为您提供了对应的 Python demo 示例供您参考:Python 代码示例工程。
2.2 在简道云中配置单点登录
本文自定义接口中的相关配置,是以本地登录进行演示。企业可根据自身的服务器配置对应的登录信息,服务器信息配置完成后,即可实现企业内成员登录的效果。
2.2.1 开启单点登录
1)登录 简道云账号,进入「企业管理>>企业信息」页面中。
2)在「高级设置>>单点登录」处,打开单点登录的开关,并点击「配置」按钮。
2.2.2 配置单点登录
单点登录配置项如下所示:
- 单点登录配置方式:自定义接口
- Idp登录接口:http://127.0.0.1:8000/sso
- 认证密钥:可点击「生成密钥」按钮,生成对应的密钥。
- 认证加密算法:下拉框内选择 HS256
- Issuer URL:自定义设置对应内容,如:Issuer.test
- IdP 登出接口:自定义设置对应登出接口地址,如:https://www.jiandaoyun.com
配置完成后点击「保存」。
注:
1)除了系统自动生成密钥外,您也可以自定义密钥内容,保证自定义接口配置与 Python demo中的密钥一致即可。
2)认证加密算法支持 HS256、HS384、HS512,Python demo 中默认为 HS256。
2.2.3 生成单点登录信息
完成单点登录配置后,会生成如下对应信息:
注:需要根据生成的信息去修改代码中的相关内容,故可以暂时不关闭此页面。
2.3 修改并运行demo
根据【2.1.3 下载demo】中的内容,下载好 Python 代码后,通过软件 Pycharm 打开 demo,并按照以下步骤修改demo 中的内容。
2.3.1 修改ACS信息
将【2.2.3 生成单点登录信息】中的「认证返回地址」,复制在代码中的 ACS 处。如下所示:
2.3.2 修改SECRET和ISSUER
1)根据【2.2.2 配置单点登录】中的信息,对代码进行如下所示的修改:
- 将「认证密钥」复制在代码中的 SECRET 处;
- 将「Issuer URL」中的内容复制在代码中的 ISSUER 处。
2)若简道云的自定义接口处,未配置 Issuer URL相关内容,则代码中对应的 ISSUER 留空,并且注释掉 audience和 iss 这两行代码。如下所示:
2.3.3 配置成员账号
1)进入「简道云 >> 通讯录 >> 内部组织」页面中,点击需要配置单点登录成员的姓名,在成员信息详情页中,查看并复制成员编号。
2)将查看到的成员编号,复制到代码中的 USERNAME 处。如下所示:
2.3.4 修改algorithm内容
根据【2.2.2 配置单点登录】中的信息,将「认证加密算法」复制在代码中的 algorithm 处。如下所示:
2.3.5 配置登录重定向
登录后自动重定向参数,即登录后跳转到指定地址。如设置成员通过单点登录后,直接跳转至定价页面,则修改redirect_uri 为:https://www.jiandaoyun.com/index/price/。
2.3.6 运行代码
代码全部修改完后,在代码页面点击鼠标右键,选择「Run 'sso_pydemo'」后运行代码。
2.4 效果演示
效果参见本文【1.3 预期效果】。