Site24x7 の API 認証が OAuth 2.0 に変更されたので、アクセストークンを取得してみる。


0.はじめに

以下の記事にある様に、サイト監視に Site24x7 を利用しているんですが…、


先日、以下の様なメールが届きまして…、

どうやら、

「API の認証が OAuth 2.0 に変更になるから、対応ヨロシク〜♪」

ということみたいで…、

とりあえず、今回は API の OAuth 2.0 認証のアクセストークンを取得してみます。


基本的に、以下のドキュメントの手順通りに進めます。

1.ZOHO Developer Console で セルフクライアント を作成する

  1. 以下のリンクの「United States」リンクをクリックし、ZOHO Developer Console を表示します。
  2. 表示されたページの「GET STARTED NOW」ボタンをクリックします。
  3. 表示されたページの「Self Client」ボタンをクリックします。
  4. 表示されたページの「CREATE」ボタンをクリックします。
  5. 表示されたダイアログの「OK」ボタンをクリックします。
  6. 表示されたページに、以下の項目が表示されますので、メモしておきます。
    • Client ID
    • Client Secret

2.作成した セルフクライアント の コード を生成し、合わせて各種トークンを取得する

  1. 作成したセルフクライアントの詳細ページを表示、「Generate Code」タブを選択後、以下の項目を入力し、「GENERATE」ボタンをクリックします。
    • Scope :
      • Site24x7.Account.All,Site24x7.Admin.All,Site24x7.Reports.Read,Site24x7.Operations.All
      • ※ 詳細は、Site24x7 | API Reference の「List of scopes available in Site24x7」を参照。
    • Time Duration :
      • 10 minutes
      • ※ 念の為、長めに。
    • Scope Description :
      • ※ 任意
  2. 表示されたダイアログの「COPY」ボタンをクリック、生成されたコードをコピーします。その後、ダイアログを閉じます。
    • ※ 生成されたコードは次の手順に絶対に必要なので、忘れない様にすること !!
    • ※ あと、生成されたコードは、有効期限が非常に短いので、とっとと次の手順を行うこと !!
  3. 以下のコマンドを実行し、各種トークン (アクセストークンとリフレッシュトークン) を取得します。
curl  https://accounts.zoho.com/oauth/v2/token -X POST \
-d "client_id=[Client ID]" \
-d "client_secret=[Client Secret]" \
-d "code=[生成されたコード]" \
-d "grant_type=authorization_code"
{
"access_token":"****",
"refresh_token":"****",
"expires_in_sec":3600,
"api_domain":"https://www.zohoapis.com",
"token_type":"Bearer",
"expires_in":3600000
}
  • ※ 念の為、以下のコマンドを実行し、取得したアクセストークンが正常に利用出来るか確認します。
curl https://www.site24x7.com/api/monitors \
-H 'Authorization: Zoho-oauthtoken [アクセストークン]'

3.アクセストークンを更新する

  1. 以下のコマンドを実行し、アクセストークンを更新します。
curl https://accounts.zoho.com/oauth/v2/token -X POST \
-d "client_id=[Client ID]" \
-d "client_secret=[Client Secret]" \
-d "refresh_token=[リフレッシュトークン]" \
-d "grant_type=refresh_token"
{
"access_token":"****",
"expires_in_sec":3600,
"api_domain":"https://www.zohoapis.com",
"token_type":"Bearer",
"expires_in":3600000
}

99.ハマりポイント

  • そこまでハマった訳じゃ無いですが…、日本語の記事が全然無くて、ちょっと手間取りました…。
  • やっぱり日本語の記事ってありがたいですよね♪

XX.まとめ

今回、OAuth 2.0 のアクセストークンを取得してみましたが…、

これまでのアクセストークンと異なり、(実行頻度にもよりますが…、)これからは毎回アクセストークンを取得する必要が出てきました。

以下の記事の様に、AWS Lambda で Python スクリプトを実行しているので、Python スクリプトの修正も必要となります。

今のスクリプトには、各種シークレットコードをソースにベタ書きしており、そのままアクセストークンを取得する処理を追加しても良いんですが、出来れば AWS SSM Parameter Store を使って、よりセキュアに出来ればとも思います。

時間作って、対応できればと!


以上、ご参考になれば♪

👋👋👋