对接 Disney MyId 认证系统 (SAML2.0)

Scroll Down

有需求对接 Disney 认证, 沟通后给开通了认证客户端信息, 认证方式为SAML2.0!

这玩意完全没见过, 我也是第一次对接, 沟通后配置了 client id 和 redirect url;

上测试程序, SpringBoot demo, 就一个 Mapping, @RequestMapping 安排上.

然后打日志, 请求方式, 然后获取到所有参数, 还有 RequestBody(防止Post请求带Body),

拿到内容后得出表单提交, key = SAMLResponse, 返回值为 Base64 解析后为 XML,

最后一步 免认证登录, 查看XML内容后得出, 返回信息中包涵一个 EmailEmail 为登录账号给后台创建了一个账户.

这里有一个坑就是前段负责路由的话无法接受 Post 请求会返回405错误, 特别不能使用 Hash 路由!!!

这里跳过了前段路由的想法就用后端路由, 直接接收到后重定向到首页了.

解析 XML 比较吃力, 之前一直使用的 JSON, 这里使用了 Hutool

JSONUtil.parseFromXml(xmlStr);

这里还会有一个漏洞, 不太确定有 Mock Body 恶意请求, 后续看看来判断请求来源或者怎么来尽量规避掉这个问题, 再去补补 SAML2.0 协议

最后补充一句, 希望能过 Disney 的漏洞扫描!