Skip to content

認証

AstroAPIは、ユースケースに応じた複数の認証方法をサポートしています。

APIキー認証

APIキーは、サーバー間通信に推奨される方法です。

APIキーの取得

  1. AstroAPIダッシュボードにログインする
  2. 設定 > APIキー に移動する
  3. APIキーを作成 をクリックする
  4. 権限とレート制限を設定する
  5. 生成されたキーをコピーする(再表示されません)

APIキーの使用

X-Api-Key ヘッダーにAPIキーを含めてください:

bash
curl -X GET "https://api.astroapi.cloud/api/calc/natal" \
  -H "X-Api-Key: ak_live_xxxxxxxxxxxx"

APIキーの権限

APIキーは特定の権限にスコープを設定できます:

権限説明
calc:read計算エンドポイントへのアクセス
content:readコンテンツ・解釈エンドポイントへのアクセス
chart:readチャートレンダリングエンドポイントへのアクセス
modules:read購入済みモジュールへのアクセス

ロール

AstroAPIは組織内でロールベースのアクセス制御を使用します:

ロール説明
ownerすべての組織機能へのフルアクセス
managerユーザー、請求、コンテンツを管理できる
member計算とコンテンツ読み取りへの基本アクセス

ロール権限

権限ownermanagermember説明
org:create組織の作成
org:read組織の読み取り
org:update組織の更新
org:users:readユーザーの読み取り
org:users:createユーザーの招待
org:users:updateユーザーの更新
org:users:deleteユーザーの削除
billing:read請求の表示
billing:manage請求の管理
content:readコンテンツの読み取り
content:createコンテンツの作成
content:updateコンテンツの更新
content:deleteコンテンツの削除
content:custom-copyカスタムコピーの作成
content:restoreコンテンツの復元
calc:use計算エンドポイントの使用
chart:useチャートエンドポイントの使用
modules:readモジュール情報の読み取り
admin:access管理者アクセス

組織コンテキスト

マルチテナントアプリケーションでは、APIキーは組織にスコープされます。使用するAPIキーに基づいて、組織コンテキストが自動的に適用されます。

ドメイン制限

APIキーには、使用できるウェブサイトを制限するためのドメイン制限を設定できます:

  • example.com - 完全一致ドメイン
  • *.example.com - すべてのサブドメイン
  • * - すべてのドメインを許可(非推奨)

APIキーを作成または編集する際に、ダッシュボードでドメイン制限を設定してください。

重要な制限事項

ドメイン制限はブラウザベースの不正使用に対してのみ保護されます。Origin および Referer ヘッダーに依存しており、ブラウザはこれを強制しますが、ブラウザ外(例:curl、スクリプト、サーバーサイドコード)では簡単に偽装できます。

クライアントサイド vs サーバーサイドの使用

サーバー間通信(推奨)

本番アプリケーションでは、常にバックエンドサーバーでAPIキーを使用してください:

┌─────────────┐      ┌─────────────────┐      ┌─────────────┐
│   ブラウザ   │ ───► │  あなたのバックエンド │ ───► │  AstroAPI   │
│(キーなし)  │      │  (APIキーはここ) │      │             │
└─────────────┘      └─────────────────┘      └─────────────┘

このアプローチの利点:

  • APIキーを安全に保ち、隠す
  • 独自の認証レイヤーを追加できる
  • エンドユーザーによるAPIキーの抽出を防ぐ
  • リクエスト署名と追加のセキュリティ対策が可能

クライアントサイド / ブラウザ使用

ブラウザで直接APIキーを使用する必要がある場合(例:静的サイトの埋め込みウィジェット)は、制限事項に注意してください:

  • APIキーが表示される JavaScriptのソースコードとネットワークリクエストに
  • 誰でもキーを抽出できる あなたのウェブサイトから
  • ドメイン制限 は他のウェブサイトがJavaScript経由でキーを使用することを防ぐだけで、誰かがキーをコピーして別の場所で使用することは防げません

クライアントサイド使用の場合は次を推奨します:

  • ドメイン制限を有効にする
  • 厳格なレート制限を設定する
  • 短い有効期限を使用する
  • 異常なアクティビティを監視する

お客様の責任

重要

APIキーのセキュリティと使用はお客様の責任です。

あなたのAPIキーで行われたすべてのAPIリクエストは、それがあなた自身によるものか、キーを入手した第三者によるものかに関わらず、クォータに計上され、アカウントに請求されます。

クライアントサイドのコードでAPIキーを公開し、それが悪用された場合、発生した使用量とコストはお客様の責任です。AstroAPIは有効なAPIキーで行われた正規のリクエストと不正なリクエストを区別することができません。

リスクを最小化するには:

  1. 可能な限りサーバー間通信を使用する
  2. バージョン管理にAPIキーをコミットしない
  3. 漏洩が疑われる場合は直ちにキーをローテーションする
  4. 予期しないスパイクを検出するための使用アラートを設定する

セキュリティのベストプラクティス

  • 本番アプリケーションにはサーバー間通信を使用する
  • 絶対に必要な場合を除き、クライアントサイドのコードにAPIキーを公開しない
  • 定期的にAPIキーをローテーションする
  • 必要最小限の権限を使用する
  • クライアントサイドのキーにはドメイン制限を有効にする
  • 適切なレート制限を設定する
  • ダッシュボードでAPIキーの使用状況を監視する

AstroAPI Documentation