# 安全鉴权模式介绍

微信开放平台的接口通信鉴权体系,使用了数据加密与签名的机制,防止数据泄漏与篡改,且具备不可否认性。开发者可在小程序管理后台 API安全模块,为应用配置密钥与公钥,以此来保障开发者应用和微信开放平台交互的安全性。

# 一、 签名与验签

在请求API的过程中,为了保护数据的安全,开发者在应用中使用自己的私钥生成请求的签名(签名算法支持RSA及SM2),平台会在收到请求后使用应用的公钥进行签名的验证,开发者则使用平台证书中的公钥验证回调的签名,来保证互相请求的真实性和数据的完整性。

# 1.应用公钥

公钥是指应用公钥,开发者通过平台工具生成公钥信息,并保存在API安全配置中,用于平台进行接口调用时的验签。

# 2.应用私钥

私钥是指应用私钥,开发者可以通过平台工具生成私钥信息,用于生成请求的签名,请妥善保管好私钥文件,务必自行保障其安全性。

# 3.平台证书

平台证书是指包含微信开放平台公钥信息的证书,用于开发者验证API回包的平台签名。开发者可在配置应用公钥后在API安全模块下载。

# 二、 接口内容加密介绍

平台支持对接口的请求内容和响应内容进行 AES256/SM4 加密(资源上传类API暂不支持加密),加密后,在网络上传输的接口报文内容将会由明文内容变为密文内容,可以大幅提升接口内容传输的安全性。 接口数据加密与签名,可以在接口数据泄露的情况下,确保接口内容保密且不被篡改。 开发者应先加密请求数据,然后对密文签名。

# 三、 生成并配置密钥

开发者可根据本文指引,快速完成密钥生成、配置及平台证书获取。

# 1.进入配置页

开发者登录小程序管理后台,可在“开发 - 开发管理 - 开发设置 - API安全”进行API密钥的配置。

点击“开始配置”后,需使用管理员微信扫码验证身份,通过后进入配置页面。

# 2.配置接口内容加密密钥

可在API对称密钥处进行配置,点击“随机生成密钥”后,再点击“下载密钥”进行密钥下载(如开发者已准备好密钥,可直接将已准备好的密钥填充进输入框),验证无误后点击“确认”,即可完成对称密钥的配置。

# 3.配置应用私钥和公钥

可在API非对称密钥处进行配置,点击“随机生成密钥对”后,再点击“下载私钥”进行私钥下载,请妥善进行保管(如开发者已准备好密钥对,可直接将已准备好的应用公钥填充进输入框),验证无误后点击“确认”,即可完成应用公钥的上传。

# 4.获取平台证书

开发者配置完应用公钥后,需下载开放平台证书,用于后续接口回调时的验签操作。在此页面,也可查看对应的API密钥及密钥编号。