Skip to content

如何通过 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 请求将 AuthStrClientId 发送到以下端点:

text
https://yiban.sust.edu.cn/xgb/index.php/openapi/api/login

服务将解析当前用户的姓名和学号或工号。

  • SID 是当前登录学生的学生 ID。
  • TID 是当前登录教师的工号。

TIP

测试期间,SIDTID 可能为空。上线后,数据将按照配置的逻辑返回。