OAuth クライアント
Zendesk の OAuth クライアントを理解する
グラントタイプ
グラントタイプについては、Zendesk のドキュメントをご覧ください。
なお、私たちは client_credentials グラントタイプの使用を推奨します。
スコープ
スコープについては、Zendesk のドキュメントをご覧ください。
OAuth クライアントを使う
OAuth クライアントを使う一般的な流れは次のとおりです。
- ベアラートークンを生成する
- API アクションを実行する
- トークンを失効させる
ベアラートークンを生成する
注意
- これらは API またはリダイレクト URL フローでのみ生成できます。リダイレクト URL フローはセットアップによって異なる場合があるため、ここでは API の使用に焦点を当てます。
ベアラートークンを生成するには、OAuth クライアントの識別子(identifier)とシークレット(secret)の値を知っておく必要があります。そのうえで、必要なペイロードとともにエンドポイント oauth/tokens に POST リクエストを行います。
使用するペイロードは次の形式にします。
{
"client_id": "CLIENT_IDENTIFIER",
"client_secret": "CLIENT_SECRET",
"grant_type": "client_credentials",
"scope": "SCOPE VALUES TO USE"
}
返されたボディの中で、access_token 属性がベアラートークンとして使用するものです。
ベアラートークンを失効させる
UI 経由
UI からベアラートークンを失効させるには次のようにします。
- Zendesk インスタンスの管理ダッシュボードに移動します
Apps and integrations > APIs > OAuth clientsに移動します- ベアラートークンを失効させたい OAuth クライアントを見つけます
- その OAuth クライアントの右側にある縦に並んだ 3 つの点をクリックします
View tokensをクリックします- 失効させるベアラートークンを見つけ、その右側にある縦に並んだ 3 つの点をクリックします
Deleteをクリックします- 確認のポップアップで
Deleteをクリックします
API 経由
API からベアラートークンを失効させるには、そのベアラートークンの ID を知っておく必要があります。そのうえで、エンドポイント api/v2/oauth/tokens/:token_id(:token_id をベアラートークンの ID に置き換えます)に DELETE リクエストを行います。
API でベアラートークンを生成する通常のプロセスでは、生成されたベアラートークンの ID を知らない可能性が非常に高いです。そのため、すでに知っていること(OAuth クライアントの識別子とベアラートークンそのもの)を使って、そこにたどり着く必要があるかもしれません。
例として、OAuth クライアントの識別子が test123、ベアラートークンが abcdefg123456789 の場合のプロセスは次のようになります。
client_identifier = 'test123'
bearer_token = 'abcdefg123456789'
# Get the OAuth client object
url = 'api/v2/oauth/clients'
oauth_clients = request_with_retry(zendesk_client, :get, url)
client_to_use = oauth_clients['clients'].detect { |c| c['identifier'] == client_identifier }
# Get the bearer token object
url = "api/v2/oauth/tokens?client_id=#{client_to_use['id']}"
tokens = request_with_retry(zendesk_client, :get, url)
token_to_use = tokens['tokens'].detect { |t| t['token'] == "...#{bearer_token[-10..]}" }
# Revoke it
url = "api/v2/oauth/tokens/#{token_to_use['id']}"
request_with_retry(zendesk_client, :delete, url)
管理者のタスク
危険
セキュリティに関する考慮事項:
- OAuth クライアントは管理者レベルのタスクを実行でき、極めて危険な場合があります。
OAuth クライアントを作成する
OAuth クライアントを作成するには次のようにします。
- Zendesk インスタンスの管理ダッシュボードに移動します
Apps and integrations > APIs > OAuth clientsに移動しますAdd OAuth clientをクリックします- 必要な情報を入力します
SaveをクリックしますSecretの値をどこかにコピーします(ベアラートークンの生成に必要になるため)SaveをクリックしますEnforce expirationをクリックして確認します
OAuth クライアントを編集する
OAuth クライアントを編集するには次のようにします。
- Zendesk インスタンスの管理ダッシュボードに移動します
Apps and integrations > APIs > OAuth clientsに移動します- 編集したい OAuth クライアントを見つけます
- その OAuth クライアントの右側にある縦に並んだ 3 つの点をクリックし、
Editをクリックします - 変更したい値を変更します
Saveをクリックします
OAuth クライアントを削除する
OAuth クライアントを削除するには次のようにします。
- Zendesk インスタンスの管理ダッシュボードに移動します
Apps and integrations > APIs > OAuth clientsに移動します- 削除したい OAuth クライアントを見つけます
- その OAuth クライアントの右側にある縦に並んだ 3 つの点をクリックし、
Deleteをクリックします - 確認のために
Delete clientをクリックします
bfd74782)