AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

認証情報ローテーション Webhook の実装

このページでは、統合を通じてプロビジョニングされたリソースのデータベースユーザーの認証情報のローテーションについて説明します。 OAuth のローテーションとは無関係です。詳しくは、「client_secret アプリを Atlas App 接続と統合 」の「 トークンとシークレット ストレージ 」を参照してください。

Atlas が統合を通じてプロビジョニングされたリソースに関連付けられているデータベースユーザーの認証情報をローテーションすると、Atlas は更新された認証情報を事前登録された HTTPSコールバックエンドポイントに送信します。 Atlas は、通常はセキュリティ インシデントに応じて、独立して認証情報のローテーションを開始します。このエンドポイントの実装は任意ですが、推奨されています。これにより、プロビジョニングされたデータベースユーザーに依存するエンドユーザーのアプリケーションが、更新された認証情報を自動的に受け取れるようになります。エンドポイントは、統合と Atlas 間の OAuth 接続を更新または置換しません。

エンドポイントを実装しない場合、これらのエンドユーザー アプリケーションはローテーションされたデータベースユーザーの認証情報を自動的に受信しません。アプリケーションがデータベースに対して引き続き認証できるようにするには、別のメカニズムを介して認証情報を更新する必要があります。

次の構造を使用してエンドポイントを公開します。

PUT https://<your-registered-base-url>/v1/organizations/{organizationId}/projects/{projectId}/secrets

オンボード時に Atlas にベースURLを登録します。 organizationId と projectId のパスパラメータは、統合に関連付けられた Atlas組織とプロジェクトを識別します。オンボード時に Atlas と同意した場合は、別のURL構造を使用できますが、登録されたベースURLと必須識別子は明確なままである必要があります。

Atlas は、プロビジョニング中に確立されたインストールスコープの Bearer トークンを使用して各リクエストを認証します。

Authorization: Bearer <installation-access-token>
Content-Type: application/json

エンドポイントは、次の条件を満たす必要があります。

  • すべてのリクエストでベアラー トークンを検証し、無効または期限切れのトークンは 401 Unauthorized で拒否します。

  • トークンを機密情報として扱い、適切なアクセス制御を使用して保存します。

  • 信頼できる認証局からの TLS 証明書とともに HTTPS を使用します。 Atlas はプレーンHTTP経由でエンドポイントを呼び出しません。自己署名証明書は本番環境ではサポートされていません。

リクエスト本文には、更新する認証情報のキーと値のペアが含まれています。

{
"secrets": [
{
"name": "ATLAS_CONNECTION_STRING",
"value": "mongodb+srv://user:pass@cluster.mongodb.net/"
},
{
"name": "ATLAS_DB_USERNAME",
"value": "app_user"
},
{
"name": "ATLAS_DB_PASSWORD",
"value": "rotated_password"
}
],
"partial": true
}
フィールド
必須
説明

secrets

必須

更新対象の認証情報のキーと値のペアの配列。

secrets[].name

必須

オンボード時に Atlas と一致した標準認証情報名。同意した各名前を、安定したバージョン管理された契約として扱います。

secrets[].value

必須

更新された認証情報の値。値には特殊文字が含まれる場合があります。

partial

任意

true の場合は、提供された認証情報のみを更新し、その他は変更しないままにします。省略された場合、または false の場合は、 に完全な認証情報セットを置き換えます。

ステータス
意味
期待される動作

200 OK or 204 No Content

認証情報は受け入れられ、正常に保存されました。

レスポンス本体は必要ありません。

400 Bad Request

リクエスト本文の形式が正しくありませんでした。

認証情報を公開しないエラーメッセージを返します。

401 Unauthorized

トークンの検証に失敗しました。

リクエストを拒否します。

404 Not Found

組織またはプロジェクトの識別子は認識されません。

リクエストを拒否します。

5xx

一時的なサーバー側エラーが発生しました。

Atlas がリクエストを再試行できるようにエラーを返します。

Atlas は失敗したリクエスト(5xx 応答またはネットワーク タイムアウト)を指数バックオフと限られた再試行回数で再試行します。

エンドポイントは冪等である必要があります。同じ ローテーションイベントに対して重複するリクエストを受け取る場合、同じ認証情報値を複数回適用してもエラーのない結果が得られます。

上記の認証要件に加えて、エンドポイントは次の条件を満たす必要があります。

  • 保管中の認証情報を暗号化する。

  • アプリケーションログ、リクエストログ、エラー メッセージ、テレメトリ、またはプレーンテキスト構成ファイルに認証情報が表示されないようにします。

  • 保存された認証情報へのアクセスは、それを必要とするシステムと担当者に制限します。

  • 10 秒以内に応答します。新しい認証情報の保持にバックグラウンド処理が必要な場合は、リクエストを同期的に確認し、処理を非同期に完了します。

  • インストール アクセス トークンが侵害されたと思われる場合は、同意された Atlas サポート プロセスに従ってください。

Atlas がローテーションされた認証情報を統合に送信する前に、次の手順を実行する必要があります。

  • オンボード時にコールバックベースURLを登録します。

  • インストール アクセス トークンを確立して安全に保存します。

  • ドキュメント認証情報名と更新セマンティクスが一致します。

  • エンドポイントを HTTPS 経由でアクセスできるようにデプロイします。

  • エンドポイントが期待されるステータス コードを返すことを確認します。

  • 非本番環境でのエンドツーエンドのローテーションを非本番インストールで手動でテストします。

  • 重複配信と再試行の動作をテストします。