カスタム アプリケーションを作成する

この記事では、カスタム アプリケーションを作成し、Microsoft Entra PowerShell を使用してアクセス許可を付与する方法について説明します。 このプロセスには、ロールの定義、ユーザーとグループの割り当て、Microsoft Entraリソースを効果的に管理するための API アクセス許可の設定が含まれます。

これらの手順を理解することは、アクセスを安全に管理し、アプリケーションが適切なアクセス許可を持っていることを確認するために不可欠です。 Microsoft Entraエコシステム内のセキュリティと運用効率を維持するのに役立ちます。

前提条件

カスタム アプリケーションを作成してアクセス許可を付与するには、次のものが必要です。

PowerShell を使用してアプリケーションを作成する

カスタム アプリケーションを使用して、Microsoft Entra リソースに付与されるアクセス許可を分離して制限します。

# Connect to Entra with required scopes
Connect-Entra -Scopes 'Application.ReadWrite.All'

# Define application name and redirect URI
$appName = 'Entra PowerShell Helpdesk App'
$redirectUri = 'http://localhost'

# Create a new application
$app = New-EntraApplication -DisplayName $appName -PublicClient @{ RedirectUris = $redirectUri } -IsFallbackPublicClient $False

# Create a service principal for the application
$servicePrincipal = New-EntraServicePrincipal -AppId $app.AppId

PowerShell を使用して割り当てに必要な機能を有効にする

# Set service principal parameters
Set-EntraServicePrincipal -ServicePrincipalId $servicePrincipal.Id -AppRoleAssignmentRequired $True

PowerShell を使用してユーザーとグループを割り当てる

# Get a user and a group
$user = Get-EntraUser -UserId 'AdeleV@contoso.com'
$group = Get-EntraGroup -Search 'Sales and Marketing'

# Assign users and groups to the application
$emptyGuidUser = [Guid]::Empty.ToString()
New-EntraUserAppRoleAssignment -ObjectId $user.Id -PrincipalId $user.Id -ResourceId $servicePrincipal.Id -Id $emptyGuidUser

$emptyGuidGroup = [Guid]::Empty.ToString()
New-EntraGroupAppRoleAssignment -GroupId $group.Id -PrincipalId $group.Id -ResourceId $servicePrincipal.Id -Id $emptyGuidGroup

PowerShell を使用して必要なリソースとアクセス許可を定義する

# Get Graph service principal
$graphApiId = '00000003-0000-0000-c000-000000000000'
$graphServicePrincipal = Get-EntraServicePrincipal -Filter "AppId eq '$graphApiId'"
$delegatedPermission = 'User.Read.All'
$app = Get-EntraApplication -Filter "DisplayName eq '$appName'"

# Create resource access object
$resourceAccessDelegated = New-Object Microsoft.Open.MSGraph.Model.ResourceAccess
$resourceAccessDelegated.Id = ((Get-EntraServicePrincipal -ServicePrincipalId $graphServicePrincipal.Id).Oauth2PermissionScopes | Where-Object { $_.Value -eq $delegatedPermission }).Id
$resourceAccessDelegated.Type = 'Scope'

# Create required resource access object
$requiredResourceAccessDelegated = New-Object Microsoft.Open.MSGraph.Model.RequiredResourceAccess
$requiredResourceAccessDelegated.ResourceAppId = $graphApiId
$requiredResourceAccessDelegated.ResourceAccess = $resourceAccessDelegated

# Set application required resource access
Set-EntraApplication -ApplicationId $app.Id -RequiredResourceAccess $requiredResourceAccessDelegated

PowerShell を使用してアプリに API アクセス許可を割り当てる

委任されたアクセス許可またはアプリケーションのアクセス許可をアプリケーションに割り当てることができます。

$delegatedPermission = 'User.Read.All'
$graphApiId = '00000003-0000-0000-c000-000000000000'
$servicePrincipal = Get-EntraServicePrincipal -Filter "DisplayName eq '$appName'"
$graphServicePrincipal = Get-EntraServicePrincipal -Filter "AppId eq '$graphApiId'"

# Grant OAuth2 permission
New-EntraOauth2PermissionGrant -ClientId $servicePrincipal.Id -ConsentType 'AllPrincipals' -ResourceId $graphServicePrincipal.Id -Scope $delegatedPermission

Resources

完全なスクリプトをダウンロードして実行します。

Microsoft Entra 管理センターでアプリケーションを作成する

Microsoft Entra PowerShell を使用してMicrosoft Entra IDに接続するためのカスタム アプリケーションを作成するには、次のセクションの手順に従います。 カスタム アプリケーションを使用して、Microsoft Entra リソースに付与されるアクセス許可を分離して制限します。

  1. クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
  2. Identity>Applications>アプリの登録 に移動し、[新規登録] を選択します。
  3. アプリケーションの名前を入力します (例: Entra PowerShell Five)。
  4. [サポートされているアカウントの種類] で、この組織ディレクトリの [アカウント] を選択します。
  5. [リダイレクト URI] の場合は、ドロップダウンから [パブリック クライアント/ネイティブ] - [URI] の値を選択します。http://localhost
  6. 登録を選択します。

Note

アプリの [概要 ] セクションで、アプリケーション (クライアント ID) とディレクトリ (テナント) ID をコピーします。 この値は、Microsoft Entra IDに接続するときに使用します。

Microsoft Entra 管理センターで割り当て必須機能を有効にする

アプリケーションがテナントでアクセスできるリソースを管理するには、[ エンタープライズ アプリケーション ] ウィンドウでアプリケーションのサービス プリンシパルを見つけます。

  1. Identity>Applications>Enterprise アプリケーション>すべてのアプリケーションを参照し、作成したアプリケーションを選択します。
  2. [ 管理] で [ プロパティ ] を選択し、[ 割り当てが必要][はい] に設定します。
  3. 保存を選びます。

Microsoft Entra 管理センターでユーザーとグループを割り当てる

  1. [ 管理] で、[ ユーザーとグループ] を選択します。
  2. [ ユーザー/グループの追加] を選択し、このアプリケーションの使用を許可されているユーザーとグループを追加します。
  3. すべてのユーザーとグループを追加したら、[ 割り当て] を選択します。

Microsoft Entra 管理センターでアプリに API アクセス許可を割り当てる

新しいアプリケーションがMicrosoft Entra IDに接続し、Microsoft Entraリソースを管理するためのMicrosoft Graphアクセス許可を設定する必要があります。

  1. Identity>Applications>App Registrations>すべてのアプリケーション に移動し、作成したアプリケーションを選択します。
  2. [API のアクセス許可] で、[アクセス許可の追加] を選択し、>Microsoft APIs > Microsoft Graph を選択します。
  3. 必要なアクセス許可の種類 (委任されたアクセス許可またはアプリケーションのアクセス許可) を選択します。
    • Microsoft Entra IDでリソースを管理するためにアプリにサインインする必要がある場合は、[委任されたアクセス許可] を選択します。
    • ユーザーの操作なしでアプリがリソースMicrosoft Entra独自にアクセスできるようにする場合は、[アプリケーションのアクセス許可] を選択します
  4. 必要なアクセス許可 (たとえば、 User.Read.All) を検索します。
  5. [ TenantName に管理者の同意を付与する] を選択しますはいを選択します。 状態に緑色のチェックマークが表示されていることを確認します。

新しいアプリを使用してサインインする

これで、新しく作成されたアプリを次の方法で接続して使用できるようになりました。

Connect-Entra -ClientId <Your_APPLICATION_Id_Here> -TenantId <Your_TENANT_Id_Here>

接続オプションの詳細については、 Connect-Entra コマンドの詳細を参照してください。