2015-02-21 4 views
1

Я использую REST API, предоставляемый Zimbra, периодически (программно) для сообщений на моем почтовом сервере Zimbra.Доступ к Zimbra через REST API (как получить zauthtoken?)

Согласно documentation, мне необходимо передать zauthtoken через строку запроса, чтобы успешно извлечь данные.

Единственная проблема заключается в том, что в документе не упоминается, как можно получить или создать zauth_token, что означает, что я ничего не могу сделать.

Я подробно искал документацию Zimbra, а также онлайн, но я не могу найти ничего, что показывает, как создать или получить токен аутентификации.

Кто-нибудь знает, как я могу получить/создать токен аутентификации, чтобы я мог запрограммировать доступ к электронной почте в своем почтовом ящике?

ответ

2

Я собираюсь предположить, что вы являетесь конечным пользователем, а не администратором почтового сервера. Токен, который вы ищете, - это файл cookie с именем ZM_AUTH_TOKEN, который обычно устанавливается при входе пользователя в систему. При этом вам не нужно использовать аутентификацию с помощью токена для доступа к папке «Входящие» через API; вы можете так же легко аутентифицироваться, указав свое имя пользователя/пароль как часть вашего запроса (например, используя опцию curl's --user). Если вы действительно нужен маркер, в частности, вот пример того, как вы можете создать его с завитком:

curl --user 'your-username-here:your-password here' 'https://your-zimbra-server-here.com/home/[email protected]/Inbox/?fmt=sync&auth=sc' -c 'where-you-want-to-save-your-cookie-file' 

Это довольно простая команда локона, но есть несколько Zimbra конкретных бит, которые я хочу подчеркивание: запрос в конце URL-адреса (?fmt=sync&auth=sc) имеет жизненно важное значение для получения маркера, который вы ищете. Часть auth=sc заставляет Zimbra возвращать файл cookie. fmt=sync может быть технически любым допустимым форматом, но вы должны указать что-то; Я выбрал синхронизацию, поскольку на самом деле не ищет никаких электронных данных и, следовательно, должен работать быстрее, чем команды, которые возвращают данные электронной почты.

Как только эта команда curl завершится, вы сохраните файл cookie ZM_AUTH_TOKEN в любой файл, указанный вами после опции -c. Затем вы можете передать значение этого печенья в качестве значения zauthtoken в вашем REST URL-запросов, и они будут проверять подлинность должным образом без вас поставляя полномочия в любом другом формате:

curl 'https://your-zimbra-server-here.com/home/[email protected]/Inbox/?auth=qp&zauthtoken=0_your-zauth-token-always-starts-with-zero-and-an-underscore-dont-append-an-additional-one-this-is-just-an-example'

Опять же, это несколько бессмысленно, если вам 'уже использует curl, поскольку вы можете просто использовать опцию --user, но это может помочь, если вам нужно получить доступ к URL-адресу другими способами, которые не имеют аналогичных возможностей. Если вы должны использовать токен, имейте в виду, что вам придется генерировать новый файл cookie/токен каждый раз, когда истекает текущий.

+0

Или вы можете выполнить шаги, описанные в: https://github.com/jimedler/Zimbra-1/blob/master/ZimbraServer/docs/preauth.txt –