【技术原创】Zimbra-SOAP-API开发指南6——预认证
2023-2-10 12:0:0 Author: www.4hou.com(查看原文) 阅读量:21 收藏

导语:本文将要继续扩充开源代码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 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址

  • 分享至

取消 嘶吼

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

扫码支持

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


文章来源: https://www.4hou.com/posts/pVDm
如有侵权请联系:admin#unsafe.sh