方法:Azure AD で非アクティブなユーザー アカウントを管理する
大規模な環境では、従業員が退職したときに、ユーザー アカウントが必ず削除されるとは限りません。 こうした使われなくなったユーザー アカウントはセキュリティ上のリスクとなるため、IT 管理者はそれらを検出して処理する必要があります。
この記事では、Azure AD で不使用になったユーザー アカウントを処理する方法について説明します。
重要
Microsoft Graph 内の /beta 版の API は変更されることがあります。 実稼働アプリケーションにおけるこれらの API の使用はサポートされていません。 v1.0 で API を使用できるかどうかを確認するには、バージョン セレクターを使用します。
非アクティブなユーザーアカウントとは
非アクティブなアカウントとは、組織のメンバーがリソースにアクセスするためにもう必要としなくなったユーザー アカウントのことです。 非アクティブなアカウントを見極める重要な判断基準の 1 つは、環境へのサインインにそれらがしばらくの間使用されていないことです。 非アクティブなアカウントはサインイン アクティビティに関連付けられているため、最後に成功したサインインのタイムスタンプを使用してそれらを検出できます。
この方法の課題は、環境について言えば、しばらくの間が意味するものをどう定義するかです。 たとえば、ユーザーが休暇中のために、しばらくの間環境にサインインしていない可能性があります。 非アクティブなユーザー アカウントのデルタを定義するときは、環境にサインインしていない正当な理由をすべて考慮に入れる必要があります。 多くの組織では、非アクティブなユーザー アカウントのデルタは 90 ~ 180 日です。
最後に成功したサインインによって、ユーザーがリソースへのアクセスを継続的に必要とする可能性があるかを的確に判断できます。 グループ メンバーシップまたはアプリへのアクセスがまだ必要とされているか、それとも削除された可能性があるかを判断するのに役立つこともあります。 外部ユーザーの管理では、外部ユーザーがテナント内でまだアクティブのままか、それともクリーンアップされたかを判断できます。
非アクティブなユーザー アカウントの検出方法
非アクティブなアカウントを検出するには、Microsoft Graph API のリソースの種類 signInActivity によって表示される lastSignInDateTime プロパティを評価します。 lastSignInDateTime プロパティは、ユーザーが Azure AD への対話型サインインを正常に実行した最終時刻を表示します。 このプロパティを使用すると、次のシナリオの解決策を実行できます。
名前別のユーザー:このシナリオでは、特定のユーザーを名前で検索することで、lastSignInDateTime を評価できます。
https://graph.microsoft.com/beta/users?$filter=startswith(displayName,'markvi')&$select=displayName,signInActivity日付別のユーザー:このシナリオでは、指定した日付よりも前の lastSignInDateTime を持つユーザーの一覧を要求します。
https://graph.microsoft.com/beta/users?filter=signInActivity/lastSignInDateTime le 2019-06-01T00:00:00Z
注意
すべてのユーザーの最後のサインイン日のレポートを生成する必要がある場合があります。その場合、次のシナリオを使用できます。
すべてのユーザーの最後のサインイン日時: このシナリオでは、すべてのユーザーの一覧と、それぞれのユーザーの最後の lastSignInDateTime を要求します。https://graph.microsoft.com/beta/users?$select=displayName,signInActivity
知っておくべきこと
ここでは、lastSignInDateTime プロパティについて理解しておく必要がある事項を示します。
このプロパティにアクセスするにはどうすればよいですか?
Microsoft Graph API のリソースの種類 signInActivity によって lastSignInDateTime プロパティが表示されます。
注意
signInActivity リソースの種類は、Microsoft Graph beta エンドポイントでのみ使用できます。現時点では、米国政府 GCC High 環境ではサポートされていません。
Get-AzureAdUser コマンドレットで LastSignInDateTime プロパティを使用できますか?
いいえ。
このプロパティにアクセスするために必要な Azure AD のエディションは何ですか?
このプロパティにアクセスするには、Azure Active Directory Premium エディションが必要です。
このプロパティを読み取るために必要な権限は何ですか?
このプロパティを読み取るには、次の権限を付与する必要があります。
- AuditLog.Read.All
- Directory.Read.All
このプロパティが Azure AD で更新されるのはいつですか?
対話型サインインが正常に実行されるたびに、基になるデータ ストアが更新されます。 通常、成功したサインインは、10 分以内に関連するサインイン レポートに表示されます。
空のプロパティ値は何を意味するのでしょうか?
LastSignInDateTime タイムスタンプを生成するには、サインインを成功させる必要があります。 LastSignInDateTime プロパティは新機能であるため、次の場合は lastSignInDateTime プロパティの値が空になる可能性があります。
- 前回成功したユーザーのサインインは、2020 年 4 月より前に行われました。
- 影響を受けたユーザー アカウントが、成功したサインインに使用されたことがありませんでした。
前回のサインイン情報はどのくらいの期間保持されますか?
前回のサインインの日付は、ユーザー オブジェクトに関連付けられます。 この値は、ユーザーの次回のサインインまで保持されます。