首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python进行Zscaler身份验证

使用Python进行Zscaler身份验证
EN

Stack Overflow用户
提问于 2021-06-30 12:39:00
回答 1查看 659关注 0票数 1

我试图使用API对Zscaler进行身份验证。通过阅读文档并遵循以下站点中的示例

我编写了以下代码:

代码语言:javascript
复制
import time
import http.client
import json


def obfuscate_api_key():
    seed = 'myActualKey'
    time_now = int(time.time() * 1000)
    n = str(time_now)[-6:]
    r = str(int(n) >> 1).zfill(6)
    obf_key = ""
    for i in range(0, len(str(n)), 1):
        obf_key += seed[int(str(n)[i])]
    for j in range(0, len(str(r)), 1):
        obf_key += seed[int(str(r)[j]) + 2]

    return time_now, obf_key


now, key = obfuscate_api_key()

conn = http.client.HTTPSConnection('zsapi.zscalertwo.net')

payload = {"username": "my@username.com", "password":"mypassword", "apiKey": key,
           "timestamp": now}

headers = {
    'content-type': "application/json",
    'cache-control': "no-cache"
}

conn.request("POST", "/api/v1/authenticatedSession", json.dumps(payload), headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

然而,我一直收到以下信息:

{“代码”:“AUTHENTICATION_FAILED”,“消息”:“AUTHENTICATION_FAILED”}

我的凭据是正确的,因为我使用它们在web中进行身份验证。我有使用api的必要权限,因为我有一个api密钥。主机名也是正确的,这就是我从浏览器登录时使用的。我也尝试过使用admin.zscalertwo.net,但是结果是一样的。任何可能导致这一问题的想法都是值得欢迎的。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-07-20 23:21:08

您可能已经解决了这个问题,但添加了一些更多的信息,以防任何人遇到这个问题。

您的代码没有什么问题--使用有效的凭据可以正常工作。

有三个条件将返回AUTHENTICATION_FAILED,它们是:

  • 不正确的用户名
  • 密码不正确
  • 不正确的Zscaler云URL

不正确的用户名格式将返回:

代码语言:javascript
复制
{"code":"INVALID_USERNAME_OR_PASSWORD","message":"INVALID_USERNAME_OR_PASSWORD"}

不正确的API键或时间戳将返回:

代码语言:javascript
复制
{"code":"INVALID_API_KEY","message":"INVALID_API_KEY"}

我建议您查看pyZscaler (我是作者),这是一个用于Zscaler的Python,您可能会发现它很有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68194949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档