アプリポータルの権限設計のベストプラクティス(APIキー)
このドキュメントでは、APIキーを利用する際のアプリポータル権限を安全に運用するための推奨設定について説明します。アプリポータルの概要については、アプリポータルの概要(APIキー)を参照してください。
前提:APIキーの認証モデル
APIキーによる認証には、以下の特性があります。
- APIキーは発行したユーザーの権限でAPIを実行する
- 発行されたAPIキーは、指定したサービスの範囲内でデータにアクセスできる
- APIキーの発行権限を適切に管理することが重要
つまり、APIキーを発行できるユーザーは、そのAPIキーを使用してマネーフォワード クラウドのAPIにアクセスできます。このため、誰がAPIキーを発行できるかを適切に管理することが重要です。
各権限のセキュリティ上の意味
アプリポータルには3つの権限があります。APIキーを利用する場合、それぞれの機能とセキュリティ上の意味を理解してください。
| 権限 | できること | セキュリティ上の意味(APIキー利用時) |
|---|---|---|
| システム管理者 | ユーザーの招待・削除、全権限の設定 | アプリポータル全体の統制を担う。付与は最小限にする |
| アプリ開発 | アプリの登録・編集・削除(OAuthの場合)、APIキーの発行・無効化(APIキーの場合) | APIキーを発行できる。発行したAPIキーでマネーフォワード クラウドのAPIにアクセス可能。慎重に付与する |
| アプリ連携 | アプリとマネーフォワード クラウドのサービスの連携を認可 | APIキーには直接関係しない。OAuth認可に使用される |
アプリ開発権限を持つユーザーは、APIキーを発行し、そのAPIキーを使用してマネーフォワード クラウドのAPIにアクセスできます。APIキーの発行権限の付与先を慎重に管理し、不要なAPIキーは速やかに無効化してください。
権限の設定方法は「権限」の設定方法を参照してください。
APIキー発行権限の管理
なぜ適切な管理が必要か
APIキーを発行できる「アプリ開発」権限を持つユーザーは、以下のことができます。
- 指定したサービスへのアクセス権限を持つAPIキーを発行する
- 発行したAPIキーを使用してマネーフォワード クラウドのAPIにアクセスする
不適切な権限付与は、以下のリスクにつながります。
- 管理者の承認なしに、意図しないAPIキーが発行される
- 従業員が個人的に発行したAPIキーが、管理者の知らないうちに使用される
これらにより、たとえば次のような事態が発生する可能性があります。
- 会計データや従業員情報など機密性の高いデータが、承認されていないシステムや外部サービスからAPI経由で取得・操作される
- 従業員の異動・退職後も、その人が発行したAPIキーが有効なまま残り、事業者が把握していないアクセスが継続する
- 発行済みAPIキーの把握が困難になり、漏洩時の影響範囲の特定や無効化対応が遅れる
推奨される運用
- 必要最小限の付与: APIキーの発行を担当するユーザーのみに「アプリ開発」権限を付与する
- 定期的な棚卸し: 発行済みAPIキーの一覧を定期的に確認し、不要なAPIキーは速やかに無効化する
- ローテーション: セキュリティ強化のため、APIキーは定期的に新しいものに更新する
ユースケース別の推奨権限構成
事業者が外部のSaaSを利用する場合
事業者がすでに利用している外部SaaSを、マネーフォワード クラウドと連携して利用するケースです。外部SaaSがAPIキーによる認証をサポートしている場合に該当します。
- APIキー発行(アプリ開発権限):担当者が、アプリポータルでAPIキーを発行する。発行されたAPIキーを連携先の設定画面などで入力する
- 連携の利用:認証後、連携先の外部SaaSは発行されたAPIキーでJWTを取得し、マネーフォワード クラウドのAPIにアクセスする
| 役割 | アプリ開発 | 理由 |
|---|---|---|
| 外部SaaSの連携を担う担当者(部門担当者や情報システム部門など) | 付与する | APIキーの発行を担う |
| 事業者の管理者(情報システム部門など) | 不要 | 連携の承認・監査を担う。APIキー発行は担当者に委任し、定期的に棚卸しする |
社内システムとマネーフォワード クラウドを連携する場合
社内の開発者がAPIキーを発行・利用し、自社システムとマネーフォワード クラウドを連携するケースです。
| 役割 | アプリ開発 | 理由 |
|---|---|---|
| 社内の開発者 | 付与する | APIキーの発行、API連携の開発を担う |
| システム管理者 | 不要 | ユーザー招待・権限付与を担う(必要に応じて付与) |
開発環境と本番環境で異なるAPIキーを発行することを推奨します。本番用のAPIキーは、本番環境へのデプロイ権限を持つ担当者のみが発行・管理するようにしてください。
JWTのライフサイクル
APIキーで取得するJWTには有効期限があります。
| トークン | 有効期間 |
|---|---|
| JWT | 1時間 |
JWTが期限切れになった場合は、/auth/exchangeエンドポイントを再度呼び出して新しいJWTを取得してください。APIキー自体に有効期限はありませんが、セキュリティのため定期的なローテーションを推奨します。
APIキーの定期的な棚卸し
不要なAPIキーが残り続けるリスクを防ぐため、以下の運用を推奨します。
- 定期的な確認: 発行済みAPIキーの一覧を定期的に確認し、不要なAPIキーがないか棚卸しする
- 速やかな無効化: 不要になったAPIキーは、アプリポータルから速やかに無効化する
- 担当者変更時の引き継ぎ: APIキーの管理担当者が変わる際は、既存のAPIキー状況を引き継ぐ