PowerShell 用のマイクロソフト SDK を使用して Azure AD アカウントのサインインを報告する
SDK を探索する旅を続ける
最近、PowerShell 用のマイクロソフト グラフ SDK の使用方法について説明しました。ご存知かもしれませんが、SDK コマンドレットは基本的に Graph API 呼び出しのラッパーとして機能します。マイクロソフトの希望は、SDK が使い慣れた PowerShell を通じて、開発者や管理者がグラフを受け入れ、使用しやすくすることです。
ここまで、SDK を使用する際の実践的な側面を説明しました。 Office 365 ライセンスから個々のサービス プランを削除する方法操作方法 テナントのライセンス レポートを作成するそして Exchange オンラインから電子メールを送信する方法.私はまた、いくつかを指摘しました 管理者と開発者が理解すべき考慮事項 SDK を使用する場合。この記事では、Azure AD のサインイン情報へのアクセスについて説明します。具体的には、アカウントの最後のサインインを報告する方法。
アカウントのサインイン データを確認する理由
Azure AD のサインイン データは、過去 30 日間使用できます。データに対話的にアクセスできます。 Azure AD 管理センターデータをフィルター処理し、必要なデータをダウンロードできます (CSV または JSON 形式)。データは、 取得します。 コマンドレット。
サインイン データに注意を払う理由テナント アカウントの場合、サインイン アクティビティが存在しない場合は、貴重なライセンスを保持する可能性のある未使用のアカウントを指している可能性があります。長期休暇など、アカウントが一定期間非アクティブになる理由は、次のような理由があります。それでも、アカウントが非アクティブかどうかを知るのは良いことです。
条件付きアクセスや動的な Microsoft 365 グループなどのプレミアム Azure AD 機能を使用しない限り、ゲスト アカウントはテナントのコストを生成しません。古いライセンス方法は、テナントが 1:5 の比率 (Azure AD プレミアム ライセンスごとに 5 名のゲスト) に基づいてプレミアム ライセンスを購入する必要があるという基準に基づいて動作します。2020 年 9 月以降、マイクロソフトは、テナントが超過した場合にのみ支払う新しい月次アクティブ ユーザー (MAU) モデルを提唱してきました。 50,000 月間アクティブユーザーしきい値 プレミアム機能用。
ゲスト アカウントに大きなライセンスオーバーヘッドが発生しない場合でも、ゲスト アカウントのサインインを無視する理由はありません。たとえば、情報を共有したくない競合ドメインやその他の組織からゲスト アカウントが取得されているかどうかを知っておきます (Azure B2B コラボレーション ポリシーを使用すると、ユーザーがブラックリストに登録されたドメインの新しいゲスト アカウントを追加するのを阻止できます)。
レポートのコーディング
スクリプト (GitHub からダウンロード可能) は簡単です。主な手順は次のとおりです。
- マイクロソフトグラフに接続し、 監査ログ.読み取り.すべて アクセス許可が必要です。SDK のサービス プリンシパルにこのアクセス許可に対する同意がまだない場合は、管理者の承認を受け取るように求められます。
- を使用してすべてのアカウントを検索します。 ゲット・Mgユーザー コマンドレット。
- アカウントごとに、 取得-MgAuditLogSignin 最新のサインイン レコードを取得できるかどうかを確認するコマンドレット。一部のアプリケーション (Teams など) では、1 日に多数のサインイン レコードが生成されます。アカウントが最後にサインインした時刻を知るだけなので、Top パラメーターを使用して Graph が 1 レコードを返すように指定します。グラフが最初に最新のデータを返す場合、最初のレコードは最新です。
- 前回のサインインからの日数の計算など、サインイン データからレポートに関する情報を抽出します。
- 見つかったことを報告し、結果を含むCSVファイルを生成します。また、次を使用してデータを表示します。 アウトグリッドビュー (図1)。

使用できる SDK
この場合、Azure AD から SDK コマンドレットへの切り替えは大きな課題ではなく、この一連の記事で説明されているように SDK コマンドレットを操作する経験は、SDK が使用できる以上の機能を示しています。PowerShell 用 Microsoft Graph SDK に存在する問題は、スクリプトが対話的に実行される場合は、サービス プリンシパルの不適切なドキュメントやアクセス許可のクリープなど、他の領域にあります。ドキュメントは時間の経過とともに改善され、証明書ベースの認証を使用してバックグラウンドで Graph ベースのスクリプトを実行できます。
ポイントは、Graph SDK は開発の初期段階にまだあるプロジェクトです。マイクロソフトが粗いエッジを削除するにつれて、それは良くなります。今のところ、開発者はミght は、SDK を使用せずに直接 Graph API を呼び出すことを好みます。1年後、誰が知っていますか?
ディスカッション
コメント一覧
まだ、コメントがありません