#58でご紹介したように、Dynatrace API は大きく3つのカテゴリに分けられます。
#58でご紹介したように、Dynatrace API は大きく3つのカテゴリに分けられます。
そのうち、アカウント管理用のAPI(Account management API )を実行する場合は、bearer token の発行が必要になります。
本日は、bearer token の発行についての手順をお伝えいたします。
bearer token の取得には、次の2ステップを実施する必要があります。
1. OAuth2 clients を作成
アカウント管理のAPIを使用する場合、プロバイダー構成には、OAuth Clientの資格情報が必要です。
2. bearer tokenを要求
APIでbearer token を呼び出して使用します。
①アカウント画面表示後、[Identity & access management] > [OAuth clients] をクリックします。
② [Create clients] をクリックします。
③以下の情報を入力、選択します。
Service user email:APIを実行するユーザ
アカウント編集権限を持つユーザを入力します。
※権限がない場合、以下のメッセージが表示されます。
④ [Permissions] > [Account] で下記権限を選択
View users and groups(account-idm-read)
Manage users and groups(account-idm-write)
※ユーザー追加、グループ編集に必要な権限は上記のみですが、実行するAPIに応じて、必要な権限を付与して下さい。
https://docs.dynatrace.com/docs/shortlink/account-api-authentication#token-scopes
⑤画面下部の [Create client] をクリックします。
⑥表示される以下の情報をコピーします。
Client ID
Client secret
Dynatrace account URN
※注意: Client secretはこの画面でのみ表示されます(後から確認することはできません)。
必要に応じて、必ず情報をコピーして保管してください。
⑦ [Finish] を選択します。
※注意: bearer token の有効時間は5分(5分を過ぎた場合、再リクエストが必要)となります。
OAuth2 clientを作成した後、API callを介して Dynatrace SSO システムにbearer token を要求します。
下記の <Client ID>、<Client_secret>、<Dynatrace account UID> を、先ほどコピーした内容に置き換え、リクエストを行います。
set ClientID=<Client ID>
set Clientsecret=<Client_secret>
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials&client_id=%ClientID%&client_secret=%Clientsecret%&scope=account-idm-read%20account-idm-write&resource=<Dynatrace account UID>" https://sso.dynatrace.com/sso/oauth2/token
APIの戻り値の例(赤字箇所が bearer token に該当します)
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials&client_id=%ClientID%&client_secret=%Clientsecret%&scope=account-idm-read%20account-idm-write&resource=urn:dtaccount:xxxxx" https://sso.dynatrace.com/sso/oauth2/token
{"scope":"account-idm-read account-idm-write","token_type":"Bearer","expires_in":300,"access_token":“< bearer token >","resource":"urn:dtaccount:xxxxx"}
以上がbearer token の作成手順です。
アカウント管理APIを実行する際は、必ずbearer token が必要になりますので、ぜひ本手順を参考にしてみてください!
User management API- Dynatrace Docs
OAuth clients - Dynatrace Docs