如何通过 SUST API 实现 SSO
本系统采用非对称加密进行数据集成。使用 OpenSSL 生成 RSA 公钥和私钥,用于数据加密和解密。集成流程如下。
1. 获取 SSO 公钥
在学生事务系统中注册。密钥由学生事务部信息科提供。您需要提供应用名称、应用 URL 和所需的 API 名称。测试期间应用 URL 不是必需的,但生产上线时必须提供。
2. 获取 SSO 应用 ID
应用注册完成后,会同时生成一个应用编号。该值用作 ClientId。
3. SSO 集成端点
统一登录 API 端点为:
- 公网:
https://yiban.sust.edu.cn/xgb/index.php/openapi/api/login - 内网:
http://10.40.0.15/xgb/index.php/openapi/api/login
请求方法:POST。
4. 集成流程
参数构造完成后,系统从以下域名链接发起 GET 请求:
text
https://yiban.sust.edu.cn/xgb/index.php/openapi/api/login?ClientId=1e968d647bc1b6215&other_parameters其他参数可以提前约定,以帮助第三方进行业务逻辑决策。
系统自动重定向到与 ClientId 对应的 URL,附加包含学生或教师信息的密文,并携带所有原始参数。
例如,如果配置的 URL 是 https://www.abc.com/yanzheng.html,则重定向目标为:
text
https://www.abc.com/yanzheng.html?AuthStr=XXXXXXX&ClientId=1e968d647bc1b6215&other_parameters在 https://www.abc.com/yanzheng.html 页面,通过 HTTPS POST 请求将 AuthStr 和 ClientId 发送到以下端点:
text
https://yiban.sust.edu.cn/xgb/index.php/openapi/api/login服务将解析当前用户的姓名和学号或工号。
SID是当前登录学生的学生 ID。TID是当前登录教师的工号。
TIP
测试期间,SID 和 TID 可能为空。上线后,数据将按照配置的逻辑返回。