プロジェクトに 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/{CLIENT-ID}:invite
リクエスト パス パラメーター
名前 | タイプ | 説明 |
---|---|---|
| string | サービス アカウントを更新するプロジェクトの一意の識別子です。 認証済みユーザーがアクセスできるすべての組織を取得するには、 /groups エンドポイントを使用します。 |
| string | 更新対象のサービス アカウントの一意な識別子です。 /groups/{PROJECT- ID}/serviceAccounts エンドポイントをリクエストして、指定された組織の認証済みユーザーがアクセスできるすべてのサービス アカウントを取得します。 |
リクエスト クエリ パラメータ
次のクエリ パラメータは 任意です。
名前 | タイプ | 説明 | default | ||||||
---|---|---|---|---|---|---|---|---|---|
pageNum | integer | ページ番号(1 インデックス ベース)。 |
| ||||||
itemsPerPage | integer | 1 ページあたりに返す項目の数は最大 500 です。 |
| ||||||
pretty | ブール値 | レスポンス本体を pretty-print にするかどうかを示します 形式。 |
| ||||||
envelope | ブール値 | 応答をエンベロープでラップするかどうかを示します。 一部の APIクライアントは、 HTTPレスポンス ヘッダーまたはステータス コードにアクセスできません。 これを修正するには、クエリで 1 つの結果を返すエンドポイントの場合、レスポンス本体には次のものが含まれます。
結果のリストを返すエンドポイントの場合、 | なし |
リクエスト ボディ パラメータ
名前 | タイプ | 必要性 | 説明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 配列 | 必須 | サービス アカウントに付与するロールのリスト。 少なくとも 1 つのロールを指定する必要があります。 提供されたロールは、割り当てられたプロジェクトに対して有効である必要があります。
|
応答
応答要素
クエリ要素envelope
をtrue
に設定すると、応答はcontent
オブジェクトによってラップされます。
HTTP レスポンスでは、次のオブジェクトを含む JSON document が返されます。
名前 | タイプ | 説明 |
---|---|---|
| string | サービス アカウントのユニーク識別子です。 |
| タイムスタンプ | サービス アカウントの作成時間。 |
| string | サービス アカウントの名前。 |
| string | サービス アカウントの説明。 |
| string 配列 | プロジェクト内でサービス アカウントが持つロールの一覧。 プロジェクト ロールには、以下が含まれます。 |
| オブジェクト配列 | サービス アカウント シークレットのリスト。 |
| string | シークレットを識別する一意の 24桁の 16 進数文字列。string |
| タイムスタンプ | シークレットの作成時間を表すタイムスタンプ。 |
| タイムスタンプ | シークレットの有効期限を表すタイムスタンプ。 |
| タイムスタンプ | 前回のシークレット使用を表すタイムスタンプ。 |
| string | プレフィックスと最後の 4 文字のみを表示するマスクされたシークレット。 |
リクエストの例
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/{CLIENT-ID}:invite?pretty=true" \ 6 --data '{ 7 "roles": [ "GROUP_READ_ONLY", "GROUP_DATA_ACCESS_READ_WRITE" ] 8 }'
応答例
応答ヘッダー
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
200 OK 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}
レスポンス本体
1 { 2 "createdAt" : "2024-08-03T14:02:40Z", 3 "description" : "Service account for developers.", 4 "clientId" : "mdb_sa_id_66ae38803cdf55582cb01144", 5 "name" : "Dev Service Account", 6 "roles" : [ "GROUP_READ_ONLY", "GROUP_DATA_ACCESS_READ_WRITE" ], 7 "secrets" : [ { 8 "createdAt" : "2024-08-03T14:02:40Z", 9 "expiresAt" : "2024-12-31T14:02:40Z", 10 "id" : "66ae38803cdf55582cb01143", 11 "lastUsedAt" : "2024-08-24T21:10:35Z", 12 "maskedSecretValue" : "mdb_sa_sk_...hcOL" 13 } ] 14 }