遂に3月末に Jamf Pro の Classic API ベーシック認証が廃止になります!
Jamf Classic API を利用の方はベーシック認証から OAuth認証へ変更を!
ベーシック認証なくなるのか~と思いながら記事を書いていたのが、2022年ですのでもう2年も経ったのですね。光陰矢のごとし。改めて以下の記事を読み返してみましょう。
JamfPro API のユーザ認証方式の変更に備えよう
Jamf Classic API の利用の方は・・・OAuth認証で Bearerトークンを取得
Jamf Classic API は、https://yourcorp.jamfcloud.com/JSSResource/API-ENDPOINT/ というエンドポイントになりますが、基本的な認証が変更になるのはこれらのAPIを利用しているプログラム、スクリプトとなります。
ユーザIDとパスワードは、ある意味ハードコーディングしてしまいますと、永遠に変わらない認証情報ですが、Bearer トークンには有効期限が存在します。つまりAPIエンドポイントは正しいユーザによって都度都度認可された Bearer トークンをもって、エンドポイントを利用可能になります。そのため、今までのようにスクリプト内に Bearer トークンをハードコーディングするようなことはもうできません。
小生の知る限り、Jamf API を利用して数ページにわたるUIを駆使するようなシステムは見たことないので、大抵は単機能スクリプトが多いかと思いますので、少し冗長になるかもしれませんが、皆さんトラブル前に確認をお願いします!
Classic API を使ってるスクリプトを探し出すスクリプトを作ってみました(かなり手抜きです)
というわけで、自社の Jamf Pro で登録されているスクリプトの中で Classic API を使っているものを片っ端からリストアップするためのスクリプトを作成しました。(こちらは OAuth 認証になってます)自社の Jamf Pro にアクセスして、スクリプトを入手して Classic API を呼んでるスクリプトIDと名前をリストアップするためのスクリプトです。
【動作環境】
- linux の bash
- jq
- Jamf Pro の API アカウントは必要な権限を調整ください
必要環境としては、bash と jq を使ってるので jq をインストールされてない方は以下のコマンドで jq をインストールしてください。(Ubuntu の例ね)
改行は linux 式 LF のみですので、コピーして利用される場合はご注意ください。
※APIエンドポイントにfilterでRSQLが使えるのを忘れてたのでfilter=="*JSSResource*"を指定したバージョンです😓