Get-EntraServicePrincipal

서비스 주체를 가져옵니다.

구문

GetQuery (기본값)

Get-EntraServicePrincipal

    [-Top <Int32>]
    [-All]
    [-Filter <String>]
    [-Property <String[]>]
    [-AssignmentRequired <Boolean>]
    [-ApplicationType <String>]
    [<CommonParameters>]

GetVague

Get-EntraServicePrincipal

    [-SearchString <String>]
    [-All]
    [-Property <String[]>]
    [-AssignmentRequired <Boolean>]
    [-ApplicationType <String>]
    [<CommonParameters>]

GetById

Get-EntraServicePrincipal

    -ServicePrincipalId <String>
    [-All]
    [-Property <String[]>]
    [<CommonParameters>]

Description

cmdlet은 Get-EntraServicePrincipal Microsoft Entra ID 서비스 주체를 가져옵니다.

예제

예제 1: 디렉터리에서 모든 서비스 주체 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal
ObjectId                             AppId                                DisplayName
--------                             -----                                -----------
bbbbbbbb-1111-2222-3333-cccccccccccc 00001111-aaaa-2222-bbbb-3333cccc4444 Demo App
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 22223333-cccc-4444-dddd-5555eeee6666 Demo Two App
dddddddd-3333-4444-5555-eeeeeeeeeeee 33334444-dddd-5555-eeee-6666ffff7777 ProjectWorkManagement

이 예제에서는 디렉터리에서 모든 서비스 주체를 검색합니다.

예제 2: ServicePrincipalId로 서비스 주체 검색

Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipal -ServicePrincipalId $servicePrincipal.Id
DisplayName                         Id                                   AppId                                SignInAudience      ServicePrincipalType
-----------                         --                                   -----                                --------------      --------------------
Helpdesk Application                aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application

이 명령은 특정 서비스 주체를 검색합니다.

  • -ServicePrincipalId 매개 변수는 서비스 주체의 ID를 지정합니다.

예제 3: 디렉터리에서 모든 서비스 주체 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -All
DisplayName                         Id                                   AppId                                SignInAudience      ServicePrincipalType
-----------                         --                                   -----                                --------------      --------------------
Helpdesk Application                aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application
Microsoft Device Management Checkin bbbbbbbb-1111-2222-3333-cccccccccccc 11112222-bbbb-3333-cccc-4444dddd5555 AzureADMultipleOrgs Application
ProvisioningPowerBi                 cccccccc-2222-3333-4444-dddddddddddd 22223333-cccc-4444-dddd-5555eeee6666                     Application

이 예제에서는 디렉터리에서 모든 서비스 주체를 검색합니다.

예제 4: 디렉터리에서 상위 2개 서비스 주체 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Top 2
DisplayName                         Id                                   AppId                                SignInAudience      ServicePrincipalType
-----------                         --                                   -----                                --------------      --------------------
Helpdesk Application                aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application
Microsoft Device Management Checkin bbbbbbbb-1111-2222-3333-cccccccccccc 11112222-bbbb-3333-cccc-4444dddd5555 AzureADMultipleOrgs Application

이 명령은 디렉터리에서 상위 두 서비스 주체를 검색합니다. -Limit -Top별칭으로 사용할 수 있습니다.

예제 5: 표시 이름으로 서비스 주체 가져오기

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
DisplayName                         Id                                   AppId                                SignInAudience      ServicePrincipalType
-----------                         --                                   -----                                --------------      --------------------
Helpdesk Application                aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application

이 예제에서는 표시 이름으로 서비스 주체를 가져옵니다.

예제 6: "기술 지원팀 애플리케이션"이 포함된 표시 이름이 있는 모든 서비스 주체 목록을 검색합니다.

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -SearchString 'Helpdesk Application'
DisplayName                         Id                                   AppId                                SignInAudience      ServicePrincipalType
-----------                         --                                   -----                                --------------      --------------------
Helpdesk Application                aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application

이 예제에서는 지정된 표시 이름을 가진 서비스 주체 목록을 가져옵니다.

예제 7: 모든 엔터프라이즈 앱 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "tags/Any(x: x eq 'WindowsAzureActiveDirectoryIntegratedApp')"
DisplayName         Id                                   AppId                                SignInAudience         ServicePrincipalType
-----------         --                                   -----                                --------------         --------------------
Enterprise App1     00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777                         Application
Enterprise App2     11112222-bbbb-3333-cccc-4444dddd5555 22223333-cccc-4444-dddd-5555eeee6666 AzureADMultipleOrgs    Application

이 예제에서는 모든 엔터프라이즈 앱을 검색하는 방법을 보여 줍니다.

예제 8: 모든 앱 프록시 앱 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "tags/Any(x: x eq 'WindowsAzureActiveDirectoryOnPremApp')"
DisplayName         Id                                   AppId                                SignInAudience         ServicePrincipalType
-----------         --                                   -----                                --------------         --------------------
App proxy 1     00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777                         Application
App proxy 2     11112222-bbbb-3333-cccc-4444dddd5555 22223333-cccc-4444-dddd-5555eeee6666 AzureADMultipleOrgs    Application

이 예제에서는 모든 앱 프록시 앱을 검색하는 방법을 보여 줍니다.

예제 9: 비활성화된 모든 앱 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "accountEnabled eq false"
DisplayName         Id                                   AppId                                SignInAudience         ServicePrincipalType
-----------         --                                   -----                                --------------         --------------------
Disabled App1     00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777                         Application

이 예제에서는 비활성화된 모든 앱을 검색하는 방법을 보여 줍니다.

예제 10: 모든 전역 보안 액세스 앱 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "tags/Any(x: x eq 'PrivateAccessNonWebApplication') or tags/Any(x: x eq 'NetworkAccessManagedApplication')"
DisplayName         Id                                   AppId                                SignInAudience         ServicePrincipalType
-----------         --                                   -----                                --------------         --------------------
Global secure access app     00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777                         Application

이 예제에서는 모든 전역 보안 액세스 앱을 검색하는 방법을 보여 줍니다.

예제 11: 사용자 할당 없이 모든 애플리케이션 나열

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -All | Where-Object {$_.appRoleAssignmentRequired -ne 'true'}
DisplayName                     Id                                   AppId                                SignInAudience         ServicePrincipalType
-----------                     --                                   -----                                --------------         --------------------
App without user assignment     00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777                         Application

이 예제에서는 사용자 할당 없이 모든 애플리케이션을 검색하는 방법을 보여 줍니다.

예제 12: 모든 SAML 애플리케이션 세부 정보 나열

Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "PreferredSingleSignOnMode eq 'saml'"
$servicePrincipal | Select-Object Id, DisplayName, AccountEnabled, AppId, PreferredSingleSignOnMode, AppRoleAssignmentRequired, SignInAudience, NotificationEmailAddresses, PreferredTokenSigningKeyEndDateTime, PreferredTokenSigningKeyValid, ReplyUrls,LoginUrl, LogoutUrl | Format-Table -AutoSize
Id                                   DisplayName                           AccountEnabled AppId                                PreferredSingleSignOnMode AppRoleAssignmentRequired SignInAudience NotificationEmailAddresses
--                                   -----------                           -------------- -----                                ------------------------- ------------------------- -------------- --------------
00001111-aaaa-2222-bbbb-3333cccc4444 SAML App                             True            33334444-dddd-5555-eeee-6666ffff7777 saml                              True                    AzureADMyOrg   {admin@Contoso}

이 예제에서는 모든 SAML 애플리케이션 세부 정보를 검색하는 방법을 보여 줍니다.

예제 13: 서비스 주체 앱 역할 나열

Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -SearchString 'Contoso Helpdesk Application'
$servicePrincipal.AppRoles | Format-Table -AutoSize
AllowedMemberTypes    Description        DisplayName       Id                                   IsEnabled  Origin       Value
------------------    -----------        -----------       --                                   ---------  ------       -----
{User, Application}   General All        General All       gggggggg-6666-7777-8888-hhhhhhhhhhhh  True       Application  Survey.Read
{Application}         General App Only   General Apponly   hhhhhhhh-7777-8888-9999-iiiiiiiiiiii  True       Application  Task.Write
{User}                General role       General           bbbbbbbb-1111-2222-3333-cccccccccccc  True       Application  General

이 예제에서는 서비스 주체에 대한 앱 역할을 검색하는 방법을 보여 줍니다.

예제 14: 테넌트 외부의 애플리케이션(서비스 주체) 나열

Connect-Entra -Scopes 'Application.Read.All'
$tenantId = Get-EntraContext | Select-Object -ExpandProperty TenantId
$servicePrincipals = Get-EntraServicePrincipal -All -Property AppOwnerOrganizationId, Id, DisplayName, AppId
$externalServicePrincipals = $servicePrincipals | Where-Object { $_.AppOwnerOrganizationId -ne $tenantId }
$externalServicePrincipals | Select-Object DisplayName, Id, AppId, AppOwnerOrganizationId | Format-Table -AutoSize
DisplayName                                             Id                                   AppId                                AppOwnerOrganizationId
-----------                                             --                                   -----                                ----------------------
Azure MFA StrongAuthenticationService                   aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 f8cdef31-a31e-4b4a-93e4-5f571e91255a
M365 Label Analytics                                    bbbbbbbb-1111-2222-3333-cccccccccccc 11112222-bbbb-3333-cccc-4444dddd5555 f8cdef31-a31e-4b4a-93e4-5f571e91255a
PowerApps-Advisor                                       cccccccc-2222-3333-4444-dddddddddddd 22223333-cccc-4444-dddd-5555eeee6666 f8cdef31-a31e-4b4a-93e4-5f571e91255a

이 예제에서는 내 테넌트 외부에서 애플리케이션(서비스 주체)을 검색하는 방법을 보여 줍니다.

예제 15: 사용자 할당이 필요한 서비스 주체 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -AssignmentRequired $true
DisplayName                Id                                   AppId                                SignInAudience      ServicePrincipalType
-----------                --                                   -----                                --------------      --------------------
Restricted App             aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMyOrg        Application

이 예제에서는 애플리케이션에 액세스하기 위해 사용자 할당이 필요한 모든 서비스 주체를 검색합니다.

예제 16: ApplicationType 매개 변수를 사용하여 엔터프라이즈 앱 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -ApplicationType EnterpriseApps
DisplayName         Id                                   AppId                                SignInAudience         ServicePrincipalType
-----------         --                                   -----                                --------------         --------------------
Enterprise App1     00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777                         Application
Enterprise App2     11112222-bbbb-3333-cccc-4444dddd5555 22223333-cccc-4444-dddd-5555eeee6666 AzureADMultipleOrgs    Application

이 예제에서는 ApplicationType 매개 변수를 사용하여 모든 엔터프라이즈 앱을 검색하는 방법을 보여 줍니다. 유효한 값은 AppProxyApps, EnterpriseApps, ManagedIdentity, MicrosoftApps입니다.

예제 17: 관리 ID 검색

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -ApplicationType ManagedIdentity
DisplayName         Id                                   AppId                                SignInAudience         ServicePrincipalType
-----------         --                                   -----                                --------------         --------------------
MyVM-Identity       00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777                         ManagedIdentity

이 예제에서는 모든 관리 ID를 검색합니다.

예제 18: AssignmentRequired 및 ApplicationType 필터 결합

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -AssignmentRequired $true -ApplicationType EnterpriseApps
DisplayName                Id                                   AppId                                SignInAudience      ServicePrincipalType
-----------                --                                   -----                                --------------      --------------------
Secured Enterprise App     aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMyOrg        Application

이 예제에서는 AssignmentRequired 및 ApplicationType 매개 변수를 결합하여 사용자 할당이 필요한 엔터프라이즈 앱을 필터링하는 방법을 보여 줍니다.

매개 변수

-All

모든 페이지를 나열합니다.

매개 변수 속성

형식:System.Management.Automation.SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-ApplicationType

애플리케이션 유형별로 필터링합니다. 유효한 값은 다음과 같습니다.

  • AppProxyApps: 애플리케이션 프록시 애플리케이션
  • EnterpriseApps: 엔터프라이즈 애플리케이션
  • ManagedIdentity: 관리 ID 서비스 주체
  • MicrosoftApps: 자사 애플리케이션 Microsoft

매개 변수 속성

형식:System.String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

GetQuery
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False
GetVague
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-AssignmentRequired

애플리케이션에 액세스하는 데 사용자 할당이 필요한지 여부를 필터링합니다. 로 $true설정하면 사용자 할당이 필요한 서비스 주체만 반환합니다. 로 $false설정하면 사용자 할당이 필요하지 않은 서비스 주체만 반환합니다.

매개 변수 속성

형식:System.Boolean
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

GetQuery
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False
GetVague
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Filter

OData v4.0 필터 문을 지정합니다. 이 매개 변수는 반환되는 개체를 제어합니다.

매개 변수 속성

형식:System.String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

GetQuery
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Property

반환할 속성을 지정합니다.

매개 변수 속성

형식:

System.String[]

Default value:None
와일드카드 지원:False
DontShow:False
별칭:선택

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-SearchString

검색 문자열을 지정합니다.

매개 변수 속성

형식:System.String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

GetVague
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-ServicePrincipalId

Microsoft Entra ID 서비스 주체의 ID를 지정합니다.

매개 변수 속성

형식:System.String
Default value:None
와일드카드 지원:False
DontShow:False
별칭:ObjectId (오브젝트아이디)

매개 변수 집합

GetById
Position:Named
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Top

반환할 최대 레코드 수를 지정합니다.

매개 변수 속성

형식:System.Int32
Default value:None
와일드카드 지원:False
DontShow:False
별칭:Limit

매개 변수 집합

GetQuery
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.