【技术原创】Zimbra-SOAP-API开发指南6——预认证
2023-2-10 12:6:16 Author: 嘶吼专业版(查看原文) 阅读量:15 收藏

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

本文将要介绍以下内容:

预认证

计算preauth

SOAP实现

开源代码

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

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

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

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

命令如下:

其中,

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

测试环境的输出如下:

(2)读取已有的PreAuthKey

命令如下:

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

测试环境的输出如下:

注:

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

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

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

SOAP格式:

SOAP格式示例:需要timestamp和preauth作为参数,使用预认证登录的详细代码如下:



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


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

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

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

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

相关阅读

Zimbra SOAP API开发指南

Zimbra-SOAP-API开发指南part 2

【技术原创】Zimbra-SOAP-API开发指南3——操作邮件

【技术原创】Zimbra-SOAP-API开发指南4——邮件导出和文件夹共享

【技术原创】Zimbra-SOAP-API开发指南5——邮件转发


文章来源: http://mp.weixin.qq.com/s?__biz=MzI0MDY1MDU4MQ==&mid=2247557304&idx=1&sn=a4c86ad69d40220eb2b81bc5bfa05a76&chksm=e9143082de63b9941057467356395a75e1ffa428a580cbc362719218c9e0b205f702456ec8b0#rd
如有侵权请联系:admin#unsafe.sh