# 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