Jamf Pro API を使って Jamf Pro の情報を取得してみた

Jamf Pro API を使って Jamf Pro の情報を取得してみた

Jamf Pro API を利用してみました。API ロールと API クライアントの作成から、Mac のターミナルでコンピュータ情報を取得するまでの実装手順を紹介します。
2026.09.18

はじめに

立神です。今回は Jamf Pro API を利用してみました。
Jamf Pro API を利用すると、プログラムから Jamf Pro の情報を取得したり、一部の操作を自動化したりできます。
今回は、API ロールと API クライアントの作成から、Mac のターミナルでコンピュータ情報を取得するまでの手順を紹介します。

今回は以下の環境にて実行しています。
Jamf Pro バージョン:11.32.0
API 実行環境:macOS の curl

Jamf Pro API とは

Jamf Pro API は、Jamf Pro をプログラムから操作するための REST API です。
Jamf Pro の管理画面で行う一部の操作や情報取得を、スクリプトや外部システムから自動化できます。
API のベース URL は各 Jamf Pro 環境の /api で、さらに /api/doc から利用可能なエンドポイントを確認できます。
たとえば、Jamf Pro の URL が https://example.jamfcloud.com の場合、API のベース URL は https://example.jamfcloud.com/api です。
Jamf Pro API では、カスタム権限セットを API ロールとして作成し、必要に応じて API クライアントに割り当てることができます。そのため、API クライアントはタスクに必要な権限のみを持つことが可能です。
API ロールは複数のクライアントで共有でき、1 つのクライアントに複数のロールを割り当てることも可能です。そのため、用途に応じて権限セットを柔軟に管理・再利用できます。

API ロールとは

API ロールとは、API を実行するための権限を持った、いわば権限セットです。
使用目的に合った権限を付与します。セキュリティリスクを抑えるために、必要最小限の権限のみ付与することが望ましいです。
また、API クライアントに割り当てられている API ロールは削除できません。

API クライアントとは

API クライアントとは、外部システムなどから Jamf Pro API へ接続するための、いわば連携用アカウントのようなものです。
API クライアントには API ロールを割り当てます。クライアントは client_id と client_secret を使用してアクセストークンを取得し、そのトークンを用いて Jamf Pro API を呼び出します。

Jamf Pro API の設定手順

Jamf Pro のコンソール画面を開き、「設定」→「システム」→「API ロールとクライアント」を開きます。
APIとクライアント

まずは API ロールを作成します。

API ロールを作成する

右上の「新規」ボタンから新規作成をします。
表示名の設定と必要な権限の選択を行います。
新規APIロール

権限の一覧はこちらから確認することができます。
API ロールは複数の API クライアントに割り当てることができるため、表示名はプロジェクトごとではなく、権限ごとにつけることをおすすめします。

今回は Read Computers のみ選択してコンピュータの情報を見てみます。
入力が完了したら右下の「保存」ボタンをクリックして保存してください。

API クライアントを作成する

続いて API クライアントを作成します。
API クライアントのタブを開き、同様に「新規」ボタンから新規作成をします。
表示名を入力したら、先ほど作成した API ロールを選択します。

続いて、アクセストークンの有効期間を設定します。単位は秒で、デフォルトは 60 秒です。
API クライアントを無効化しても、すでに発行済みのアクセストークンは有効期限が切れるまで利用できるため、適切な期間を設定する必要があります。

最後に、API クライアントを有効化に設定します。デフォルトでは無効化になっているため、「Enable API client」をクリックし有効化に設定します。
新規APIクライアント

ここまで設定したら「保存」ボタンをクリックして保存してください。

クライアントシークレットを生成する

API クライアントの保存を行うと設定した情報が表示されます。
APIクライアント作成完了後

続いて、クライアントシークレットを生成します。
「クライアントシークレットを生成」のボタンをクリックします。
クライアント ID とクライアントシークレットが表示されるので、安全な場所に保管してください。
クライアントシークレットは一度のみ表示され、ポップアップを閉じると確認することができないため注意してください。
クライアントシークレット

Jamf Pro API を実行する

実際に Jamf Pro API を使って Jamf Pro に登録されている Mac の情報を取得してみます。
今回は動作確認が目的のため、Mac のターミナルから実行します。
まずは Jamf Pro にアクセスするためのアクセストークンを取得します。

アクセストークンを取得する

アクセストークンの取得には、先ほど作成したクライアント ID とクライアントシークレットを使用します。
/api/v1/oauth/token エンドポイントにリクエストを送信すると、アクセストークンを取得できます。

Mac のターミナルで実行する例は以下です。
Jamf Pro の URL、クライアント ID、クライアントシークレットは、それぞれの環境に合わせて置き換えてください。

curl --location --request POST 'https://example.jamfcloud.com/api/v1/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

実行すると次のような JSON 形式でアクセストークンが返ってきます。

{
    "access_token":"xxxxxx",
    "scope":"api-role:1",
    "token_type":"Bearer",
    "expires_in":59
}

コンピュータ情報を取得する

続いて、取得したアクセストークンを使用して Jamf Pro にアクセスし、コンピュータの情報を取得します。
コンピュータ一覧を取得するには、/api/v1/computers-inventory エンドポイントへ GET リクエストを送信します。

curl --location --request GET 'https://example.jamfcloud.com/api/v1/computers-inventory' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <access_token>'

正常に実行されると、Jamf Pro に登録されているコンピュータの情報が JSON 形式で返されます。

{
  "totalCount": 2,
  "results": [
    {
      "id": "34",
      "udid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "general": {
        "name": "Mac-01",
        "platform": "Mac",
        "lastReportedIpV4": "192.168.xxx.xxx",
        "supervised": true,
        "enrolledViaAutomatedDeviceEnrollment": true,
        "userApprovedMdm": true,
        "lastContactTime": "2026-09-18T05:27:55.672Z"
      }
    },
    {
      "id": "35",
      "udid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "general": {
        "name": "Mac-02",
        "platform": "Mac",
        "lastReportedIpV4": "192.168.xxx.xxx",
        "supervised": true,
        "enrolledViaAutomatedDeviceEnrollment": true,
        "userApprovedMdm": true,
        "lastContactTime": "2026-09-18T07:30:39.648Z"
      }
    }
  ]
}

このように、コンピュータの ID や端末名、UDID、IP アドレス、管理状態、ADE(Automated Device Enrollment/自動デバイス登録)による登録状況、最終通信日時などの情報を取得できました。
なお、実際のレスポンスには、さらに Jamf Binary のバージョン、MDM 管理の可否、最終ログインユーザー、インベントリの報告日時など、さまざまな情報が含まれます。今回の例では、紹介用として一部の項目だけを抜粋しています。

注意点

Jamf Pro API を利用するうえで、アクセストークンの有効期間には注意が必要です。
API クライアントの設定でアクセストークンの有効期間を変更しても、すでに発行されているアクセストークンの有効期限は変更されません。
また、API クライアントを無効化または削除した場合でも、すでに発行されているアクセストークンは有効期限まで利用できる場合があります。

ただし、API クライアントに割り当てられた API ロールに変更を加えると、すべてのアクセストークンに直ちに影響します。
そのため、アクセストークンの有効期間は用途に応じて設定し、API ロールを変更する際は、利用中の連携処理への影響を確認することが重要です。

おわりに

今回は Jamf Pro API について紹介しました。
Jamf Pro API を利用することで、Jamf Pro の画面で確認している情報をプログラムから取得でき、定期的な情報収集や外部システムとの連携などを自動化できます。
また、利用目的に応じて API ロールに必要最小限の権限を付与することで、権限を限定した運用が可能です。Jamf Pro を効率的かつ柔軟に管理するために、ぜひ活用してみてください。

参考資料

Jamf Pro API Overview

API ロールとクライアント • Jamf Pro ドキュメント 11.32.0 • Jamf Learning Hub

Privileges and Deprecations

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AI をフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。

現在当社では Jamf の導入から運用まで、専門チームがお客様の状況に合わせて継続的にサポートしています。

・各種セキュリティ関連項目の設定支援
・構成プロファイル設計支援
・導入後のご質問対応や改善提案

Jamf の導入や運用でお困りごとがございましたら専用ページよりお問い合わせください。


クラスメソッドのエンジニアと1on1で話してみませんか?

選考に関係のないカジュアルな面談です。
「技術スタックや開発環境について詳しく知りたい」「実際のプロジェクト事例を聞きたい」「リモートワークや評価制度について確認したい」など、気になることを直接エンジニアに質問できます。
カジュアル面談に申し込む

この記事をシェアする

関連記事