如果您正在测试或构建内部应用程序,您可能不希望API请求与特定用户相关联,就像使用基本身份验证,需要输入用户名和密码,或者使用API令牌认证,它仍然需要用户名。第三种选择是使用OAuth访问令牌。
乍一看,创建带有详细授权流的OAuth令牌似乎是一项艰巨的任务。但是,您可以跳过该过程中最复杂的部分,直接从API获取访问令牌。本文介绍了如何通过几个简单的步骤为测试目的创建您自己的OAuth令牌。
重要的是:本文中描述的技术基本上包括将Zendesk用户名和密码交换为访问令牌。亚博因此,令牌具有与密码相同的安全漏洞。任何有令牌的人都可以访问这个账户。将令牌保存在安全的地方,不要将其硬编码到应用程序代码中。将其存储在环境变量中。
创建OAuth客户端
第一步是创建用于测试的OAuth客户端。
- 在管理中心,单击应用程序和集成图标(),然后选择api >亚博Zendesk API。
- 在OAuth客户选项卡上,单击添加OAuth客户端在列表的右上角。
为测试目的设置客户机与创建普通的OAuth客户机略有不同。注意以下区别:
- 您的重定向需要是一个有效的HTTPS URL,但它不一定是一个真正的网站为这个项目。例子:https://somesite.com。
- 唯一标识符是在代码中使用的客户端的名称。方法获取客户端ID客户列表OAuth Client API的端点。
- 您可能需要复制您的秘密以备将来参考。创建后它不会再次显示,但如果你打算用它来构建OAuth web应用程序或其他项目,你会想要这个。
- 所有其他字段都可以用虚拟数据填写。
创建访问令牌
创建令牌所需的一切都已经具备了OAuth token API。下面是如何使用cURL发出请求:
curl https://{subdomain}.亚博zendesk.com/api/v2/oauth/tokens.json \ -H "Content-Type: application/json" \ -d '{"token": {"client_id": "your_client_id", "scopes": ["read", "write"]}}' \ -X POST -v -u {email_address}:{password}
关于这段代码有几点需要注意:
- 记住用您自己的子域替换子域占位符
- “client_id”的值是从OAuth Clients页面复制的数字
- 设置你的作用域为["read", "write"],除非你特别测试对资源的只读访问
- 如果您的组织使用单点登录(SSO)和Zendesk密亚博码已从Zendesk帐户中删除,您必须使用API令牌来验证请求:
- u {email_address} /令牌:{api_token}
。看到API的令牌在支持API文档中。
运行cURL请求。它应该返回一个JSON包,由一个带有几个属性的token对象组成:
“full_token”的值是访问令牌。复制并妥善保管!
请注意,响应的“expires_at”属性为“null”,这意味着在删除客户端之前令牌不会停止工作。还有,下次你访问OAuth客户列表中,您的新客户端的活动令牌数量应该增加1。
使用新的访问令牌
如果你没有任何东西可以使用,那么访问令牌有什么用呢?下面的示例都不使用用户名或密码。这是故意的!OAuth访问令牌不依赖于任何用户帐户,这是在应用程序和脚本中使用OAuth访问令牌的优点之一。
使用访问令牌验证API请求
任何需要身份验证的API调用都可以使用OAuth访问令牌进行。例如,对票据端点的调用通常看起来像这样:
Curl https://{subdomain}.亚博zendesk.com/api/v2/tickets.json \ -u {email_address}:{password}
下面是一个访问令牌:
curl https://{subdomain}.亚博zendesk.com/api/v2/tickets.json \ -H "Authorization: Bearer {access_token}"
在API客户机中使用访问令牌
您还可以在我们的任何API的客户。的Ruby客户机,例如,通常需要使用用户名和密码(或API令牌)进行身份验证,如下所示:
config.username=“用户电子邮件"config.password=“用户密码"
如果你使用访问令牌,它看起来是这样的:
config.access_token="您的OAuth访问令牌"
0评论
请登录留下评论。