アプリケーションに対するユーザーのサインインを無効にする

アプリケーションの構成または管理中に、アプリケーションへのトークンを発行したくない場合があります。 あるいは、従業員にアクセスしてほしくないアプリケーションをブロックしたい場合もあります。 ユーザーによるアプリケーションへのアクセスをブロックするために、アプリケーションへのユーザー サインインを無効にできます。その結果、対象のアプリケーションに対してすべてのトークンが発行されなくなります。

この記事では、Microsoft Entra 管理センターと PowerShell の両方を使用して、Microsoft Entra ID のアプリケーションにユーザーがサインインできないようにする方法について説明します。 特定のユーザーがアプリケーションにアクセスできないようにする方法を探している場合は、ユーザーまたはグループの割り当てを使用してください。

前提条件

ユーザーのサインインを無効にするには、以下が必要です。

  • Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
  • 次のいずれかのロール: グローバル管理者、クラウド アプリケーション管理者、アプリケーション管理者、またはサービス プリンシパルの所有者。

Microsoft Entra 管理センター を使用してユーザー サインインを無効にする

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

  1. クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
  2. [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。
  3. ユーザーがサインインすることを無効にするアプリケーションを検索し、そのアプリケーションを選択します。
  4. [プロパティ] を選択します。
  5. [ユーザーのサインインが有効になっていますか?] では [いいえ] を選択します。
  6. [保存] を選択します。

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/2a8f9e7a-af01-413a-9592-c32ec0e5c1a7

Content-type: application/json

{
    "accountEnabled": false
}

次のステップ