認証
AstroAPIは、ユースケースに応じた複数の認証方法をサポートしています。
APIキー認証
APIキーは、サーバー間通信に推奨される方法です。
APIキーの取得
- AstroAPIダッシュボードにログインする
- 設定 > APIキー に移動する
- APIキーを作成 をクリックする
- 権限とレート制限を設定する
- 生成されたキーをコピーする(再表示されません)
APIキーの使用
X-Api-Key ヘッダーにAPIキーを含めてください:
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 | 計算とコンテンツ読み取りへの基本アクセス |
ロール権限
| 権限 | owner | manager | member | 説明 |
|---|---|---|---|---|
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キーで行われた正規のリクエストと不正なリクエストを区別することができません。
リスクを最小化するには:
- 可能な限りサーバー間通信を使用する
- バージョン管理にAPIキーをコミットしない
- 漏洩が疑われる場合は直ちにキーをローテーションする
- 予期しないスパイクを検出するための使用アラートを設定する
セキュリティのベストプラクティス
- 本番アプリケーションにはサーバー間通信を使用する
- 絶対に必要な場合を除き、クライアントサイドのコードにAPIキーを公開しない
- 定期的にAPIキーをローテーションする
- 必要最小限の権限を使用する
- クライアントサイドのキーにはドメイン制限を有効にする
- 適切なレート制限を設定する
- ダッシュボードでAPIキーの使用状況を監視する