OAuth 2.0トークン
Workatoでは、API platformユーザーがOAuth 2.0 (Client Credentials grant) に基づいて認証できます。 静的トークンの代わりに、クライアントはOAuth 2.0フローを通じて取得したアクセストークンでAPIリクエストを行います。 ユーザーはまずWorkatoのトークンリクエストエンドポイントからアクセストークンを取得し、その後、そのアクセストークンを使用してWorkato APIエンドポイントへのAPIコールを行うことができます。
OAuth 2.0を設定する
VIRTUAL PRIVATE WORKATO (VPW)のお客様
この機能を使用するには、お使いのVirtual Private Workato(VPW)インスタンスに固有の設定手順が必要です。 VPWをご利用のお客様は、インスタンスの設定詳細について、VPWのプライベートドキュメントを参照してください。
新しいアクセスプロファイルを作成します。
認証方法としてOAuth 2.0を選択します。
アクセスプロファイル - OAuth 2.0認証方法
アクセスプロファイルの認証情報(Client IDおよびClient Secret)をコピーします。
アクセスプロファイル - OAuth 2.0認証情報
アクセストークンをリクエストする
| パラメーター | 説明 |
|---|---|
grant_type | 必須。 トークンリクエストを認可するためのメカニズム。 client_credentialsである必要があります。 |
client_id | 必須。 アクセスプロファイルから取得したClient ID。 |
client_secret | 必須。 アクセスプロファイルから取得したClient Secret |
WorkatoトークンリクエストエンドポイントにPOSTリクエストを送信します。 トークンリクエストには、クライアント認証情報とgrant_typeパラメーターを含める必要があります。 RFCでは、クライアント認証情報をエンコードし、client_idとclient_secretをそれぞれユーザー名とパスワードとして使用して、Basic Authヘッダーとして送信することを推奨しています。 次の例を参照してください。
POST /oauth2/token HTTP/1.1
Host: apim.workato.com
Authorization: Basic ${Base64(<CLIENT_ID>:<CLIENT_SECRET>)}
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentialsその他のサポートされている形式
一部のHTTPクライアントでは、この正確な形式がサポートされていない場合があることを認識しています。 Workatoは次の代替形式をサポートしています。
CONTENT-TYPEの一貫性
Content-Typeヘッダーは必須であり、ペイロード形式と一致している必要があります。 一致していない場合、リクエストは拒否されます。
JSON形式
POST /oauth2/token HTTP/1.1
Host: apim.workato.com
Content-Type: application/json
{
"grant_type": "client_credentials",
"client_id": "<CLIENT_ID>",
"client_secret": "<CLIENT_SECRET>"
}URLエンコードされた本文
POST /oauth2/token HTTP/1.1
Host: apim.workato.com
Content-Type: application/x-www-form-urlencoded
client_secret=<CLIENT_SECRET>&client_id=<CLIENT_ID>&grant_type=client_credentialsMultipart form
POST /oauth2/token HTTP/1.1
Host: apim.workato.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="grant_type"
client_credentials
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="client_id"
<CLIENT_ID>
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="client_secret"
<CLIENT_SECRET>
----WebKitFormBoundary7MA4YWxkTrZu0gWPostmanのようなツールを使用してアクセストークンを生成することもできます。
Postmanでアクセストークンを生成する
トークンリクエストエンドポイント
Workatoのデータセンターについては、次のトークンリクエストエンドポイントを参照してください。
米国(US)
https://apim.workato.com/oauth2/token欧州連合(EU)
https://apim.eu.workato.com/oauth2/token日本(JP)
https://apim.jp.workato.com/oauth2/tokenシンガポール(SG)
https://apim.sg.workato.com/oauth2/tokenオーストラリア(AU)
https://apim.au.workato.com/oauth2/tokenイスラエル(IL)
https://apim.il.workato.com/oauth2/token中国(CN)
https://apim.workatoapp.cn/oauth2/token韓国(KR)
https://apim.kr.workato.com/oauth2/token開発者サンドボックス
https://apim.trial.workato.com/oauth2/token
カスタムドメインを有効にしているAPI platform所有者の場合、トークンリクエストエンドポイントはカスタムドメインに従います。 たとえば、カスタムドメインapi.boltcompany.comの場合、トークンリクエストエンドポイントはhttps://api.boltcompany.com/oauth2/tokenです。
OAuth 2.0アクセストークンを取得する
アクセストークンリクエストが正常に送信されると、Workatoの認可サーバーは次のプロパティを含むJSONオブジェクトで応答します。
{
"access_token": "eyJhbGciOiJIUzI1NiIsImtpZCI6ImFlZTM5NGExZTZiOGZmY2VhZGZhZmRhZDk4ZTJjZTdhNDE0YmU3NWU2ODcyNmNkOTQ3YjBjMmU3OTI1MTUzNGQiLCJ0eXAiOiJKV1QifQ.eyJzdWIiOiJhZWUzOTRhMWU2YjhmZmNlYWRmYWZkYWQ5OGUyY2U3YTQxNGJlNzVlNjg3MjZjZDk0N2IwYzJlNzkyNTE1MzRkIiwiZXhwIjoxNjQ5MzAzMDM4LCJuYmYiOjE2NDkyOTk0MzgsImlhdCI6MTY0OTI5OTQzOH0.TJySFOomyLkvyQHbvQBtm6qGj0bLDqSuUBqbkTSbXm4",
"token_type": "bearer",
"expires_in": 3600
}有効期限
アクセストークンは3600秒間有効です。 その後、トークンは期限切れとなり、使用できなくなります。 APIリクエストを継続して行うには、クライアントで新しいアクセストークンを生成する必要があります。
/oauth2/tokenへの各リクエストによって、独立した有効期限を持つ新しいアクセストークンが生成されます。
APIリクエストでOAuth 2.0アクセストークンを使用する
OAuth 2.0アクセストークンを使用して、Workato APIエンドポイントへのAPIコールを行います。
取得したアクセストークンを認可ヘッダーで指定し、ベアラー認証スキームを使用します。 APIリクエストの実行について詳細を確認します。
curl -XGET 'https://apim.workato.com/prefix/collection/endpoint/call?email=john-doe%40acme.com'\
-H 'Authorization: Bearer <ACCESS_TOKEN>'クライアント認証情報を更新する
Client Secretは更新できます。 セキュリティ体制を強化するために、これを定期的に実行することをお勧めします。 当然ながら、更新後は古いClient Secretは機能しなくなります。 さらに、以前に生成されたアクセストークンは、Client Secretとともに取り消されます。
Last updated: