1 つのプロジェクトに 1 つの組織サービス アカウントを作成・割り当て
- Cloud Managerへのプログラムによるアクセスのための OAuth 2.0認証はプレビュー機能として利用できます。
- 機能および関連するドキュメントは、プレビュー期間中にいつでも変更される可能性があります。 OAuth2.0 認証を使用するには、 Cloud Manager Public APIへのリクエストで使用する サービス アカウント を作成します。
ベース URL: https://cloud.mongodb.com/api/public/v 1.0
Resource
POST /groups/{PROJECT-ID}/serviceAccounts
リクエスト パス パラメーター
名前 | タイプ | 説明 |
---|---|---|
| string | サービス アカウントを作成して割り当てるプロジェクトの一意の識別子です。 認証済みユーザーがアクセスできるすべての組織を取得するには、 /groups エンドポイントを使用します。 |
リクエスト クエリ パラメータ
次のクエリ パラメータは 任意です。
名前 | タイプ | 説明 | default | ||||||
---|---|---|---|---|---|---|---|---|---|
pageNum | integer | ページ番号(1 インデックス ベース)。 |
| ||||||
itemsPerPage | integer | 1 ページあたりに返す項目の数は最大 500 です。 |
| ||||||
pretty | ブール値 | レスポンス本体を pretty-print にするかどうかを示します 形式。 |
| ||||||
envelope | ブール値 | 応答をエンベロープでラップするかどうかを示します。 一部の APIクライアントは、 HTTPレスポンス ヘッダーまたはステータス コードにアクセスできません。 これを修正するには、クエリで 1 つの結果を返すエンドポイントの場合、レスポンス本体には次のものが含まれます。
結果のリストを返すエンドポイントの場合、 | なし |
リクエスト ボディ パラメータ
すべての本体パラメータが必要です。
名前 | タイプ | 説明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| string | サービス アカウントの名前。 使用可能な文字は、 | ||||||||||||||||||||||
| string | サービス アカウントの説明。 長さは 1 文字と 250 文字の間でなくてはなりません。使用可能な文字は、 | ||||||||||||||||||||||
| string | このサービス アカウントのシークレットが期限切れになる時間数 | ||||||||||||||||||||||
| string 配列 | サービス アカウントが持つ必要があるロールのリスト。 少なくとも 1 つのロールがリストされ、すべてのロールがプロジェクトで有効である必要があります。 プロジェクト ロールには、以下が含まれます。
|
応答
名前 | タイプ | 説明 |
---|---|---|
| string | サービス アカウントのユニーク識別子です。 |
| タイムスタンプ | サービス アカウントの作成時間。 |
| string | サービス アカウントの名前。 |
| string | サービス アカウントの説明。 |
| string 配列 | プロジェクト内でサービス アカウントが持つロールの一覧。 プロジェクト ロールには、以下が含まれます。 |
| オブジェクト配列 | サービス アカウント シークレットのリスト。 |
| string | シークレットを識別する一意の 24桁の 16 進数文字列。string |
| タイムスタンプ | シークレットの作成時間を表すタイムスタンプ。 |
| タイムスタンプ | シークレットの有効期限を表すタイムスタンプ。 |
| string | サービス アカウント シークレット。作成時にのみ利用可能です。 |
リクエストの例
注意
リクエストを行うユーザーは、 {PUBLIC-KEY}:{PRIVATE-KEY}
としてフォーマットできます。
1 curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ 2 --header "Accept: application/json" \ 3 --header "Content-Type: application/json" \ 4 --include \ 5 --request POST "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/serviceAccounts?pretty=true" \ 6 --data '{ 7 "name" : "Cloud Manager service account", 8 "description" : "Service account for Cloud Manager users.", 9 "secretExpiresAfterHours" : "3600", 10 "roles": ["GROUP_READ_ONLY", "GROUP_DATA_ACCESS_ADMIN"] 11 }'
応答例
応答ヘッダー
401 Unauthorized Content-Type: application/json;charset=ISO-8859-1 Date: {dateInUnixFormat} WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false Content-Length: {requestLengthInBytes} Connection: keep-alive
201 Created Vary: Accept-Encoding Content-Type: application/json Strict-Transport-Security: max-age=300 Date: {dateInUnixFormat} Connection: keep-alive Content-Length: {requestLengthInBytes} X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
レスポンス本体
注意
レスポンス本体では secret
は編集されていません。この例は、セキュリティ上の理由から編集されています。
1 { 2 "createdAt" : "2024-08-03T14:02:40Z", 3 "description" : "Service account for Cloud Manager users.", 4 "clientId" : "mdb_sa_id_66ae38803cdf55582cb01144", 5 "name" : "Cloud Manager service account", 6 "roles" : [ "GROUP_READ_ONLY", "GROUP_DATA_ACCESS_ADMIN" ], 7 "secrets" : [ { 8 "createdAt" : "2024-08-03T14:02:40Z", 9 "expiresAt" : "2024-12-31T14:02:40Z", 10 "id" : "66ae38803cdf55582cb01143", 11 "secret" : "mdb_sa_sk_...hcOL" 12 } ] 13 }