Crowd Data Center のサービス アカウント

サービス アカウントは、個人に関連付けられていない特殊な Data Center アカウントです。このアカウントは OAuth 2.0 承認で Crowd にアクセスし、ログインにパスワードを必要としません。

サービス アカウントにより、Data Center インスタンスのサービス、統合、スクリプト ユーザー、アプリの ID を管理できます。サービス アカウントは、ユーザー アカウントと同じ方法で管理できます。

Crowd 7.0 リリースでは、REST API 経由で Crowd のサービス アカウントを作成および管理できるようになりました。将来的には、Crowd およびその他の製品で、ユーザー インターフェイスを介して同じ操作ができるようになる予定です。

Crowd がサポートするエンドポイント

Crowd 7.0 では、スクリプティング、バックグラウンド ジョブ、その他の自動化タスクなどにおいて、ユーザー コンテキストを必要とせずに Crowd とやり取りする手段として、サービス アカウントのサポートが導入されています。

サービス アカウントの承認は OAuth 2.0 のクライアント認証情報を介して処理されます。現時点では、サービス アカウントで次の REST エンドポイントを使用できます。

  1. Group membership (グループ メンバーシップ)

  2. Group Admin (グループ管理者) (current user のコンテキストがないため、Search administered groups は除く)

  3. User Admin (ユーザー管理者) (current user のコンテキストがないため、Search users は除く)

Crowd でサービス アカウントを作成する

Data Center 製品内からサービス アカウントを作成できます。サービス アカウントの作成時に、OAuth 2.0 承認に使用するクライアント ID とクライアント シークレットが生成されます。

注: 現在利用できるスコープは APPLICATION のみです。

Crowd でサービス アカウントを作成するには、以下を使用します。

POST {crowd_url}/rest/service-accounts/latest/service-accounts

{ "displayName": "Brand new service account", "scopes": ["APPLICATION"], "expiryDuration": 2592000, "description": "This is my new service account for accessing Crowd" }


パラメーター

  • displayName (文字列) → サービス アカウントの名前。

  • scopes (文字列の配列) → 現時点では、スコープは APPLICATION とする必要があります。これ以外の場合、Crowd’s のいずれのエンドポイントにもアクセスできません。

  • expiryDuration (秒単位の整数) → 認証情報の有効期間。これを過ぎると、認証情報のローテーションが必要になります。指定した秒数を過ぎた場合、Service Account の認証情報の再生成が必要になります (認証情報の処理の詳細については、下記を参照してください)。この期間の上限は 2 年です。

  • description (文字列) → サービス アカウントの説明。


レスポンス:

{ "id": 1179649, "active": true, "name": "service-account-35b67653-f18d-4cad-bc0e-f2834859643c", "displayName": "Brand new service account", "description": "random description", "resourceRestrictions": [], "authMethods": [ { "type": "OAuth2", "id": "89efcc0f-8fb5-4d91-98e1-3d20bdc4ec74", "clientId": "de2782fd6ff6dbd09bf8ed4082cf203c", "clientSecret": "5a6f7f83958b110419fb90bd2bb119a8b12fb431bd79b68f2c7ed01eae5e8c6f", "lastRotatedAt": "2025-07-31T12:51:37.500Z", "expiryDuration": 2592000, "expiryDate": "2025-08-30T12:51:37.500Z", "expirySoon": false, "author": "admin", "scopes": [ "APPLICATION" ] } ] }


返されるフィールド:

送信したフィールド以外に、次のフィールドが返されます。

  • idService Account の一意の識別子

  • activeService Account が現在使用されているか、アーカイブされているか。

  • nameService Account の一意の名前。監査などの場合に使用されます。

  • resourceRestrictions → これらの制限は Crowd 内では適用されないため無視して構いません。

  • authMethods → 現時点では OAuth2 のみがサポートされています。外部サービスが使用する構成を表します。OAuth2 経由で Crowd とやり取りする際には、ここにある認証情報を使用する必要があります。

    • idOAuth2 構成の一意の識別子

    • clientIdaccess token の生成に使用する必要がある OAuth2 構成の clientId。アクセス トークンを生成するにはこの値が必要です。

    • clientSecretOAuth2 構成の clientSecret。アクセス トークンを生成するにはこの値が必要です。

    • lastRotatedAtclientId/clientSecret の最終更新日時。

    • expiryDateclientId/clientSecret のセットがいつ期限切れになるか。

    • author → この Service Account を生成したユーザー

Crowd でサービス アカウントを管理する

サービス アカウントの作成後は、アカウントの詳細情報を更新したり、アカウント認証情報をローテーションしたりできます。

サービス アカウントの詳細情報を更新する

アカウントの詳細情報を更新するには、以下を使用します。

PUT {crowd_url}/rest/service-accounts/latest/service-accounts/{id}

{ "displayName": "a new display name", "description": "a new description" }

expiryDuration などその他のフィールドを変更するには、サービス アカウントをアーカイブして新しいアカウントを作成する必要があります。

サービス アカウントの認証情報をローテーションする

セキュリティ上の理由から、サービス アカウントの認証情報には有効期限が設定されています (有効期限は最長 2 年)。

認証情報をローテーションするには、次の手順を実行します。

  1. Service Account が使用している現在の OAuth2 認証情報の clientId を確認し、次のエンドポイントに POST リクエストを送信します。
    POST {{crowd_url}}/rest/oauth2/latest/rotate/{clientId}

  2. OAuth2 id2 を使用して GET リクエストを送信し、次のエンドポイントで認証情報を取得して、サービス アカウント アプリの OAuth 2 認証情報を更新します。
    GET {{crowd_url}}/rest/oauth2/latest/client/{oAuth2ConfigId}

    { "id": "cf1b543a-de85-473f-9813-b83c86387936", "clientId": "9693b2e52647e3664e3e1e15b135e035", "clientSecret": {someSecret}, "name": "service-account-edcee821-62af-43d6-8c15-91f9c41d6fc2", "redirects": [], "supportedGrantTypes": [ "client_credentials" ], "userKey": "admin", "scope": "APPLICATION", "rotatedClientId": "a226d78aa6b31a54ec8702a14b6de89e", "rotatedClientSecret": {someRotatedSecret}", "expiryDuration": 2592000 }


パラメーター

  • clientId → OAuth2 構成で使用する必要のある現在のクライアント ID

  • clientSecret → OAuth2 構成で使用する必要のある現在のクライアント シークレット

  • rotatedClientId → 古いクライアント ID。この ID を使用するアプリがある場合は、clientId で更新する必要があります。

  • rotatedClientSecret → 古いクライアント シークレット。このシークレットを使用するアプリがある場合は、古い値を clientSecret で更新する必要があります。

Crowd でサービス アカウントを検索する

サービス アカウントを検索するには、次の手順に従います。

GET {crowd_url}/rest/service-accounts/latest/service-accounts/?start=0&limit=25&active=true

このエンドポイントは、ページネーションとクエリ パラメーターによる active フィルタリングもサポートしています。既定では、開始値が 0、制限が 25active が true に設定されています。

Crowd でサービス アカウントをアーカイブする

アトラシアンはサービス アカウントの削除をサポートしていませんが、アーカイブすることは可能です。

この操作は元に戻せません。OAuth 2.0 クライアントと、このサービス アカウントに関連付けられたクライアントによって OAuth 2.0 サーバーから取得したすべてのトークンも削除されます。

サービス アカウントをアーカイブするには、次を使用します。

DELETE {crowd_url}/rest/service-accounts/latest/service-accounts/{id}


最終更新日 2025 年 9 月 1 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.