# API のセキュリティに関するベストプラクティス
Workato API レシピは、Workato の外部のソースから Workato の機能を利用できるようにする強力な機能です。しかし、レシピはユーザーの業務システム内で処理を実行できるため、システムに対する API 経由の不正アクセスを防ぐことが重要になります。
# API トークンはパスワードのように扱う
API トークンはパスワードのように扱う必要があります。トークンを所有する誰もが API にアクセスできます。
ベストプラクティスとしては、安全でない手段で API トークンをクライアントに配布すべきではありません。API の所有者と対象のクライアントの両方がアクセスできる、安全なメッセージングシステムやドキュメントシステムを使用してください。
# 同じ API トークンを再利用しない
API トークンはクライアントを特定し、API ダッシュボードでリクエストをクライアントごとに監視できるようにします。複数のユーザーが同じ API トークンを持っていると、API を呼び出しているユーザーを確実に判別する手段がなくなります。
# API トークンを定期的に更新する
API トークンを定期的に更新 (変更) していれば、もし API トークンが漏洩しても、長期間の不正アクセスは防止できます。API トークンを更新するのは、パスワードを期限切れにするのと同様のことです。
別の方法として、JWT トークンを配布し、有効期限を設定することもできます。これを行うことで、トークンの有効期間を制限できます。
# IP の許可リストを使用する
IP アドレスを許可リストに追加すると、API にアクセスできる発信元 IP を制限できます。これを行うには、クライアントのアクセスプロファイルを使用します。
セキュリティの観点からは許可リストの利用をお勧めしますが、いくつか考慮することがあります。
- 一部のクライアントは固定の IP アドレスを持っていないことがあります。 たとえば、クライアントがホームネットワークから接続する場合、そのクライアントのインターネットプロバイダは、セッションごとに異なる IP を割り当てる場合があります。
- 一部のクライアントは複数の IP アドレスから接続することがあります。 たとえばクライアントが移動中の場合には、いつも使用しているネットワークとは異なる IP が割り当てられているかもしれません。
この場合は、IP アドレスを簡単に許可リストに登録できない可能性があります。
# JWT トークンの使用を検討する
認証シークレットを直接配布する代わりに、JWT トークンを使用するとよいでしょう。JWT トークンは、シークレットそのものではなく、Auth トークンシークレットをカプセル化します。JWT トークンは署名されており、クライアント ID が含まれています。また、有効期限も設定できます。JWT トークンの設定方法についてはこちらを参照してください。
# API へのユーザーアクセスを監視する
解雇された従業員などのユーザーが、今後 API にアクセスしてはならない場合は、そのユーザーのクライアントプロファイルを Workato 内で無効化または削除してください。
Last updated: 2023/8/31 1:07:14