REST API を使用してサービス アカウント作成する
このページでは、タスクと統合を自動化するために、Data Center 製品でサービス アカウントを作成、管理、および使用する方法について説明します。
アトラシアンでは、スクリプティング、バックグラウンド ジョブ、その他の自動化タスクなどにおいて、ユーザー コンテキストを必要とせずに製品とやり取りする手段として、サービス アカウントのサポートを導入します。
サービス アカウントの承認は OAuth 2.0 のクライアント認証情報を介して処理されます。
サービス アカウントを作成する
Data Center 製品内からサービス アカウントを作成できます。サービス アカウントの作成時に、OAuth 2.0 承認に使用するクライアント ID とクライアント シークレットが生成されます。
サービス アカウントを作成するには、以下を使用します。
POST {product_url}/rest/service-accounts/latest/service-accounts
{
"displayName": "Brand new service account",
"description": "This is my new service account"
"scopes": ["YOU_SCOPE"],
"expiryDuration": 2592000,
"resourceRestrictions": [
{
"id": "PRODUCT_RESOURCE_ID",
"typeId": "PRODUCT_RESOURCE_TYPE"
}
]
}
パラメーター
displayName (文字列) → サービス アカウントの名前。
scopes (文字列の配列) → 現時点では、スコープは
APPLICATIONとする必要があります。これ以外の場合、いずれの製品のエンドポイントにもアクセスできません。expiryDuration (秒単位の整数) → 認証情報の有効期間。これを過ぎると、認証情報のローテーションが必要になります。指定した秒数を過ぎた場合、s
ervice accountの認証情報の再生成が必要になります (認証情報の処理の詳細については、下記を参照してください)。この期間の上限は 2 年です。description (文字列) → サービス アカウントの説明。
resourceRestrictions → サービス アカウントは、リストアップされたリソースにのみアクセスします。サービス アカウントにすべての製品リソースへのアクセス権を付与するには、このフィールドを空白のままにします。
レスポンス:
{
"id": 1179649,
"active": true,
"name": "service-account-RANDOM_UUID",
"displayName": "Brand new service account",
"description": "This is my new service account",
"resourceRestrictions": [
{
"id": "PRODUCT_RESOURCE_ID",
"typeId": "PRODUCT_RESOURCE_TYPE"
}
],
"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": ["YOUR_SCOPE"]
}
]
}
返されるフィールド:
送信したフィールド以外に、次のフィールドが返されます。
id → サービス アカウントの一意の識別子。
active → サービス アカウントが現在使用されているか、アーカイブされているか。
name → サービス アカウントの一意の名前。監査などの場合に使用されます。
resourceRestrictions → サービス アカウントがアクセスできるリソース。
authMethods → 現時点では OAuth2 のみがサポートされており、外部サービスが使用する構成を表します。OAuth2 経由で製品とやり取りする際には、ここにある認証情報を使用する必要があります。
id → OAuth2 構成の一意の識別子
clientId → アクセス トークンの生成に使用する必要がある OAuth2 構成の clientId。アクセス トークンを生成するにはこの値が必要です。
clientSecret → OAuth2 構成の clientSecret。アクセス トークンを生成するにはこの値が必要です。
lastRotatedAt → clientId/clientSecret の最終更新日時。
expiryDate → clientId/clientSecret のセットがいつ期限切れになるか。
author → このサービス アカウントを生成したユーザー
サービス アカウントを管理する
サービス アカウントの作成後は、アカウントの詳細情報をアップデートしたり、アカウント認証情報をローテーションしたりできます。
サービス アカウントの詳細情報を更新する
アカウントの詳細情報を更新するには、以下を使用します。
PUT {product_url}/rest/service-accounts/latest/service-accounts/{id}
{
"displayName": "a new display name",
"description": "a new description",
"resourceRestrictions": [
{
"id": "NEW_RESOURCE_ID",
"type": "PRODUCT_RESOURCE_TYPE"
}
]
}
expiryDuration などその他のフィールドを変更するには、サービス アカウントをアーカイブして新しいアカウントを作成する必要があります。
サービス アカウントの認証情報をローテーションする
セキュリティ上の理由から、サービス アカウントの認証情報には有効期限が設定されています (有効期限は最長 2 年、既定では 90 日)。
認証情報をローテーションするには、次の手順を実行します。
サービス アカウントで使用されている現在の OAuth2 認証情報の clientId を確認し、次のエンドポイントに POST リクエストを送信します。
POST {product_url}/rest/oauth2/latest/rotate/{clientId}
それに応じて、クライアント ID とクライアント シークレットの新しいペアが取得されます。
{
"clientId": "NEW_CLIENT_ID",
"clientSecret": "NEW_CLIENT_SECRET"
}
リクエスト パラメーター
clientId → ローテーションする必要がある現在のクライアント ID
レスポンス
clientId → 後続のリクエスト用の新しいクライアント ID。
clientSecret → 後続のリクエスト用の新しいクライアント シークレット。
サービス アカウントを検索する
サービス アカウントを検索するには、次の手順に従います。
GET {product_url}/rest/service-accounts/latest/service-accounts/?start=0&limit=25
このエンドポイントはページネーションをサポートしていることに注意してください。既定では、開始値が 0 で、制限が 25 となっています。
サービス アカウントをアーカイブする
アトラシアンはサービス アカウントの削除をサポートしていませんが、アーカイブすることは可能です。
この操作は元に戻せません。OAuth 2.0 クライアントと、このサービス アカウントに関連付けられたクライアントによって OAuth 2.0 サーバーから取得したすべてのトークンも削除されます。
サービス アカウントをアーカイブするには、次を使用します。
DELETE {product_url}/rest/service-accounts/latest/service-accounts/{id}