准备工作
创建应用
应用接入MDP平台,第一步都是在 MDP 平台注册您的应用。配置应用有 2 种方式:
应用字段说明
| 字段 | 说明 |
|---|---|
| 应用名称 | 您的应用显示名称 |
| 应用ID(appKey) | 系统自动生成,客户端唯一标识 |
| 应用类型 | 第三方应用 / 自建应用,仅用于区分应用是否自建 |
| 状态 | 禁用后,无法单点登录到此应用 |
| 权重 | 在「我的应用」列表的排序 |
| 是否公开 | true:任何人可以查看和登录;false:有权限的用户才能查看和登录该应用 |
| 是否显示 | true:在「我的应用」列表显示;false:隐藏 |
| 允许授权的IP | 多个 IP 使用英文逗号分割。接口调用、单点登录、单点注销时,会校验请求方 IP 是否与之匹配。第三方应用请填写您服务器的外网出口 IP |
| 登录方式 | ticket模式(sa-token 模式三)/ OAuth2认证(标准 OAuth2 协议),决定单点登录走哪条链路 |
| 免登录跳转地址 | 在「我的应用」点击应用图标时,跳转到应用并完成自动登录的地址。注意:应用需要提前开发该页面 |
| 跳转地址白名单 | 允许重定向的地址白名单,支持 * 通配符,多个地址使用 , 分割 |
| 是否接收推送 | 使用 ticket 模式三对接的应用必须开启,依托「接收消息推送」才能完成单点注销 |
| 消息推送地址 | 应用后台接口地址,用于接收消息推送和单点注销推送 |
获取凭证
应用新建后,应用ID(appKey)和应用秘钥(appSecret)会自动生成,可点击【秘钥】按钮查看。

| 凭证 | 来源 | 用途 |
|---|---|---|
appKey(应用ID) | 系统生成 | 每次接口调用必传;ticket 模式中作为 sa-token 的 client |
appSecret(应用秘钥) | 系统生成 | 换取 accessToken、接口调用签名,请妥善保管,切勿外泄 |
安全提示
appSecret、notifyToken、notifyEncodingAesKey、应用私钥等敏感信息,请保存在您自己的后端配置文件或配置中心中,切勿存放在前端页面,防止泄露。
配置应用密钥(回调链路)

在应用【秘钥】配置中,事件回调与接口回调共用的参数如下:
| 参数名 | 说明 |
|---|---|
| 通知地址(notifyUrl) | 接收回调的后端接口地址。 注意:务必确保MDP服务器能正常访问该地址。 |
| 事件订阅状态(notifyState) | 通知开关,必须开启才会被推送 |
| 加密类型(notifyEncryptionType) | 加密模式:0-明文模式、1-兼容模式、2-安全模式(推荐) |
| 签名校验令牌(notifyToken) | 生成和验证 signature / msgSignature |
| 消息加解密秘钥(notifyEncodingAesKey) | AES 加解密密钥,43 字符 |
- 平台提供
MdpBizMsgCrypt.generateToken()生成新的notifyToken /generateEncodingAesKey()生成新的notifyEncodingAesKey。 - 加密模式确定后建议只实现一种模式的处理逻辑,强烈建议使用安全模式。
生成并上传应用公钥(接口调用)
如果您需要调用开启了签名校验的接口(如 accessToken.get),需要:
在本地生成 RSA2(SHA256WithRSA,建议 2048 位)密钥对;
将公钥上传到平台(即平台侧
AppKeys.publicKeyApp字段);
私钥自己保留,用于对请求参数签名。
- 应用公钥:应用自行生成,需提供给平台;
- 应用私钥:应用自行生成、自行存储,不要泄露给第三方。
密钥对生成示例代码(使用 SDK 提供的 RsaTool 工具类,位于 mdp-sdk-core 的 top.mddata.sdk.core.sign.RsaTool):
import top.mddata.sdk.core.sign.RsaTool;
public class KeyPairDemo {
public static void main(String[] args) throws Exception {
// PKCS8 格式适用于 Java 端;密钥长度建议 2048 位
RsaTool rsaTool = new RsaTool(RsaTool.KeyFormat.PKCS8, RsaTool.KeyLength.LENGTH_2048);
RsaTool.KeyStore keyStore = rsaTool.createKeys();
// 公钥:上传到平台(AppKeys.publicKeyApp),平台用它验证您的签名
String publicKey = keyStore.getPublicKey();
// 私钥:本地妥善保管,用于签名(即 OpenClient 构造方法的 privateKeyIsv 参数)
String privateKey = keyStore.getPrivateKey();
}
}引入官方 SDK(推荐)
平台提供 mdp-sdk(Maven 依赖),封装了参数组装、签名、请求、响应解析、回调验签解密的全部细节:
mdp-sdk-core:核心工具类,提供OpenClient请求客户端、RsaTool、SignUtil、MdpBizMsgCrypt等;mdp-simple-sdk:封装了所有开放接口,每个接口一个XxxApi类。
<dependency>
<groupId>top.mddata.sdk</groupId>
<artifactId>mdp-simple-sdk</artifactId>
<version>最新版本</version>
</dependency>非 Java 技术栈可以不使用 SDK,按各链路文档中的 HTTP 协议说明自行实现即可。
网络与环境检查清单
接入前请确认:

