【技术原创】Zimbra-SOAP-API开发指南6——预认证 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

【技术原创】Zimbra-SOAP-API开发指南6——预认证

3gstudent 技术 2023-02-10 12:00:00
97630
收藏

导语:本文将要继续扩充开源代码Zimbra_SOAP_API_Manage的实用功能,添加预认证的登录方式,分享开发细节。

0x00 前言

本文将要继续扩充开源代码Zimbra_SOAP_API_Manage的实用功能,添加预认证的登录方式,分享开发细节。

0x01 简介

本文将要介绍以下内容:

预认证

计算preauth

SOAP实现

开源代码

0x02 预认证

参考资料:https://wiki.zimbra.com/wiki/Preauth

简单理解:通过preAuthKey结合用户名、时间戳和到期时间,计算得出的HMAC作为身份验证的令牌,可用于用户邮箱和SOAP登录

默认配置下,Zimbra未启用预认证的功能,需要手动开启

(1)开启预认证并生成PreAuthKey

命令如下:

1.png其中,

2.png对应测试环境的命令为:/opt/zimbra/bin/zmprov generateDomainPreAuthKey mail.test.com

测试环境的输出如下:

3.png(2)读取已有的PreAuthKey

命令如下:

4.png对应测试环境的命令为:/opt/zimbra/bin/zmprov gd mail.test.com zimbraPreAuthKey

测试环境的输出如下:

5.png注:

如果Zimbra存在多个域名,那么会有多个PreAuthKey

0x03 计算preauth

参考资料中给出了多种计算preauth的示例,但是Python的实现代码不完整,这里补全Python3下的完整实现代码,详细代码如下:

6.png代码会自动生成可用的URL,浏览器访问可以登录指定邮箱

0x04 SOAP实现

SOAP格式:

7.pngSOAP格式示例:

8.png需要timestamp和preauth作为参数,使用预认证登录的详细代码如下:

9.png10.png11.png

以上代码通过预认证登录,返回可用的token,通过该token可以进行后续的SOAP操作,列出文件夹邮件数量的实现代码:

12.png13.png0x05 开源代码

新的代码已上传至github,地址如下:

https://github.com/3gstudent/Homework-of-Python/blob/master/Zimbra_SOAP_API_Manage.py

添加了使用预认证登录的功能

0x06 小结

本文扩充了Zimbra SOAP API的调用方法,添加了使用预认证登录的功能。


本文为 3gstudent 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务