您可以通过以下两种方式进行用户认证。
检查请求Request发送者的真实身份
即请求发送后,参数包括用户名和密码,服务端会验证用户名和密码是否正确,以此判断Request发送者的身份是否可信。
使用此方法有可能在请求时间较长的情况下,受到黑客攻击,导致密码泄露。
使用消息签名机制
通过(AccessID、请求时间、请求参数)+签名的方式,根据AccessID获取userID、key等信息服务,验证提交端和服务端是否一致,MaxCompute也是通过此方式进行验证。
验证过程中,根据消息签名算法HMAC-SHA1来保证消息在传输过程中的完整性(Integrity)和真实性(Authenticity)。
通过身份验证后,需要控制请求来源—IP白名单。
IP白名单作用于整个项目空间,它的格式有以下三种:
- 设置IP:如101.132.236.134
- 设置子网掩码:如100.116.0.0/16
- 设置网段:如101.132.236.134-101.132.236.144
这三种格式可以写在同一个命令中,用逗号分割。
例如项目管理员执行setproject odps.security.ip.whitelist=101.132.236.134,100.116.0.0/16,101.132.236.134-101.132.236.144;
命令开启白名单设置。
IP白名单清空后,MaxCompute便默认Project关闭了白名单功能。
用户提交请求后的流程如下图所示:
首先经过HTTPServer获取SourceIP,OdpsWorker根据您的SourceIP匹配元数据中的信息。
如果两边的信息一致,则该请求正常。