アプリケーションに対するユーザーのサインインを無効にする
アプリケーションの構成または管理中に、アプリケーションへのトークンを発行したくない場合があります。 あるいは、従業員にアクセスしてほしくないアプリケーションをブロックしたい場合もあります。 ユーザーによるアプリケーションへのアクセスをブロックするために、アプリケーションへのユーザー サインインを無効にできます。その結果、対象のアプリケーションに対してすべてのトークンが発行されなくなります。
この記事では、Microsoft Entra 管理センターと PowerShell の両方を使用して、Microsoft Entra ID のアプリケーションにユーザーがサインインできないようにする方法について説明します。 特定のユーザーがアプリケーションにアクセスできないようにする方法を探している場合は、ユーザーまたはグループの割り当てを使用してください。
前提条件
ユーザーのサインインを無効にするには、以下が必要です。
- Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 次のいずれかのロール: クラウド アプリケーション管理者、アプリケーション管理者、サービス プリンシパルの所有者。
Microsoft Entra 管理センター を使用してユーザー サインインを無効にする
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。
- ユーザーがサインインすることを無効にするアプリケーションを検索し、そのアプリケーションを選択します。
- [プロパティ] を選択します。
- [ユーザーのサインインが有効になっていますか?] では [いいえ] を選択します。
- [保存] を選択します。
Azure AD PowerShell を使用してユーザー サインインを無効にする - ポータル
Enterprise アプリの一覧に表示されないアプリの AppId がわかっている場合があります。 たとえば、アプリを削除した場合、または Microsoft が事前認証を行うため、サービス プリンシパルがまだ作成されていない場合です。 アプリ用のサービス プリンシパルを手動で作成し、次の Azure AD PowerShell コマンドレットを使用してこれを無効にすることができます。
Azure AD PowerShell モジュールをインストール済みであることを確認します (コマンド Install-Module -Name AzureAD
を使用)。 NuGet モジュールまたは新しい Azure AD PowerShell V2 モジュールをインストールするように求められたら、「Y」と入力して Enter キーを押します。 少なくともクラウド アプリケーション管理者としてサインインする必要があります。
# Connect to Azure AD PowerShell
Connect-AzureAD -Scopes
# The AppId of the app to be disabled
$appId = "{AppId}"
# Check if a service principal already exists for the app
$servicePrincipal = Get-AzureADServicePrincipal -Filter "appId eq '$appId'"
if ($servicePrincipal) {
# Service principal exists already, disable it
Set-AzureADServicePrincipal -ObjectId $servicePrincipal.ObjectId -AccountEnabled $false
} else {
# Service principal does not yet exist, create it and disable it at the same time
$servicePrincipal = New-AzureADServicePrincipal -AppId $appId -AccountEnabled $false
}
Microsoft Graph PowerShell を使用してユーザー サインインを無効にする
Enterprise アプリの一覧に表示されないアプリの AppId がわかっている場合があります。 たとえば、アプリを削除した場合、または Microsoft が事前認証を行うため、アプリが原因でサービス プリンシパルがまだ作成されていない場合です。 アプリ用のサービス プリンシパルを手動で作成し、次の Microsoft Graph PowerShell コマンドレットを使用してこれを無効にすることができます。
Microsoft Graph モジュールをインストール済みであることを確認します (コマンド Install-Module Microsoft.Graph
を使用)。 少なくともクラウド アプリケーション管理者としてサインインする必要があります。
# Connect to Microsoft Graph PowerShell
Connect-MgGraph -Scopes "Application.ReadWrite.All"
# The AppId of the app to be disabled
$appId = "{AppId}"
# Check if a service principal already exists for the app
$servicePrincipal = Get-MgServicePrincipal -Filter "appId eq '$appId'"
# If Service principal exists already, disable it , else, create it and disable it at the same time
if ($servicePrincipal) { Update-MgServicePrincipal -ServicePrincipalId $servicePrincipal.Id -AccountEnabled:$false }
else { $servicePrincipal = New-MgServicePrincipal -AppId $appId –AccountEnabled:$false }
Microsoft Graph API を使用してユーザー サインインを無効にする
Enterprise アプリの一覧に表示されないアプリの AppId がわかっている場合があります。 たとえば、アプリを削除した場合、または Microsoft が事前認証を行うため、アプリが原因でサービス プリンシパルがまだ作成されていない場合です。 アプリ用のサービス プリンシパルを手動で作成し、次の Microsoft Graph 呼び出しを使用してこれを無効にすることができます。
アプリケーションへのサインインを無効にするには、少なくともクラウド アプリケーション管理者として Graph エクスプローラーにサインインします。
Application.ReadWrite.All
アクセス許可に同意する必要があります。
次のクエリを実行して、アプリケーションへのユーザー サインインを無効にします。
PATCH https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
Content-type: application/json
{
"accountEnabled": false
}