Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aby ji platforma Microsoft identity mohla autorizovat pro přístup k datům uloženým v Microsoft Entra nebo tenantech Microsoft 365, musí být aplikace předtím zaregistrována v Microsoft Entra ID. Tato podmínka platí pro aplikace, které vyvíjíte sami, které vlastní váš tenant nebo ke kterým přistupujete prostřednictvím aktivního předplatného.
Mnoho nastavení pro aplikace se zaznamenává jako objekty, ke kterým se dá přistupovat, aktualizovat nebo odstranit pomocí Microsoft Entra PowerShellu. Mezi tyto objekty patří aplikace, instanční objekty a přiřazení rolí aplikací.
V tomto článku se dozvíte, jak spravovat registrace aplikací a instanční objekty pomocí Microsoft Entra PowerShellu. Popisuje registraci aplikací, konfiguraci vlastností, přiřazování oprávnění a správu vlastnictví aplikace.
Předpoklady
Pokud chcete spravovat aplikace pomocí Microsoft Entra PowerShellu, potřebujete:
- Uživatelský účet Microsoft Entra. Pokud ho ještě nemáte, můžete si zdarma vytvořit účet.
- Jedna z následujících rolí:
- Udělte sobě nejméně privilegované delegované oprávnění označené pro operaci.
- Modul PowerShellu Microsoft Entra byl nainstalován. Postupujte podle průvodce instalací Microsoft Entra modulu PowerShellu a nainstalujte ho.
Registrace aplikace
Následující požadavek vytvoří aplikaci zadáním pouze požadované displayName vlastnosti.
Connect-Entra -Scopes 'Application.ReadWrite.All'
New-EntraApplication -DisplayName 'My new application'
DisplayName Id AppId SignInAudience PublisherDomain
----------- -- ----- -------------- -----------
My new application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb bbbbbbbb-1111-2222-3333-cccccccccccc MyOrg
Aplikace má přiřazené ID, které je jedinečné pro aplikace v tenantovi, a id aplikace, které je globálně jedinečné v ekosystému Microsoft Entra.
Vytvořte instanční objekt pro aplikaci
Connect-Entra -Scopes 'Application.ReadWrite.All'
$myApp = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
New-EntraServicePrincipal -AppId $myApp.AppId -DisplayName 'My new service principal'
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
My new application bbbbbbbb-1111-2222-3333-cccccccccccc 00001111-aaaa-2222-bbbb-3333cccc4444 MyOrg Application
Konfigurace základních vlastností aplikace
Pro aplikaci můžete nakonfigurovat více vlastností. Následující příklad ukazuje, jak aktualizovat zobrazovaný název aplikace.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraApplication -ApplicationId $application.Id -DisplayName 'Contoso application'
Alternativně můžete k aktualizaci vlastností aplikace použít pipelining.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraApplication -Filter "DisplayName eq 'My new application'" | Set-EntraApplication -DisplayName 'Contoso application'
Další informace naleznete v tématu Set-EntraApplication.
Omezení přihlašování aplikací jenom na přiřazené identity
Omezení přihlašování aplikací jenom na přiřazené identity pomocí Microsoft Entra PowerShellu zajišťuje, aby k vašim aplikacím mohli přistupovat jenom oprávnění uživatelé, což zvyšuje zabezpečení a kontrolu.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraServicePrincipal -ServicePrincipalId $application.Id -AppRoleAssignmentRequired $true
Přiřazení oprávnění k aplikaci
Oprávnění aplikaci přiřadíte prostřednictvím centra pro správu Microsoft Entra nebo pomocí Microsoft Entra PowerShellu. V PowerShellu aktualizujete vlastnost aplikace requiredResourceAccess , včetně existujících i nových oprávnění. Předáním pouze nových oprávnění se odeberou všechny existující, se kterými nesouhlasíte.
Přiřazení oprávnění je aplikaci automaticky neudělí. Souhlas správce musíte přesto udělit pomocí Centrum pro správu Microsoft Entra.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
$requiredResourceAccess = @(
@{resourceAppId = '00000003-0000-0000-c000-000000000000'
resourceAccess = @(
@{
id = 'c79f8feb-a9db-4090-85f9-90d820caa0eb'
type = 'Scope'
}
@{
id = '9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30'
type = 'Role'
} )
})
Set-EntraApplication -ApplicationId $application.Id -RequiredResourceAccess $requiredResourceAccess
Správa vlastníků
Získat vlastníka instančního objektu služby
Connect-Entra -Scopes 'Application.ReadWrite.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalOwner -ServicePrincipalId $servicePrincipal.Id -All | Select-Object Id, DisplayName, '@odata.type'
Alternativně můžete k načtení vlastníka instančního objektu použít pipelining.
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'" | Get-EntraServicePrincipalOwner | Select-Object Id, DisplayName, '@odata.type'
Přiřaďte vlastníka instančnímu objektu služby
Connect-Entra -Scopes 'Application.ReadWrite.All', 'Application.ReadWrite.OwnedBy'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
$owner = Get-EntraUser -UserId 'SawyerM@contoso.com'
Add-EntraServicePrincipalOwner -ServicePrincipalId $servicePrincipal.Id -OwnerId $owner.Id
Tento příklad ukazuje, jak přiřadit vlastníka k instančnímu objektu služby.
-
-ServicePrincipalId– určuje jedinečný identifikátor (ObjectId) instančního objektu služby, kterému chcete přidat vlastníka. -
-OwnerId– určuje jedinečný identifikátor (ObjectId) uživatele nebo skupiny, které chcete přidat mezi vlastníky zadaného instančního objektu služby.
Získání seznamu všech aplikací bez přiřazení uživatele
Pokud chcete získat seznam všech aplikací, které nevyžadují přiřazení uživatele, použijte následující příkaz.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraServicePrincipal -All | Where-Object {$_.appRoleAssignmentRequired -ne 'True'}
DisplayName Id AppId SignInAudience ServicePrincipalType
----------------------------------- ----------------------------------- --------------------------------- ----------------- ------------------
Microsoft password reset service 00aa00aa-bb11-cc22-dd33-44ee44ee44ee 93625bc8-bfe2-437a-97e0-3d0060024faa AzureADMultipleOrgs Application
Microsoft.Azure.SyncFabric 11bb11bb-cc22-dd33-ee44-55ff55ff55ff 00000014-0000-0000-c000-000000000000 AzureADMultipleOrgs Application
Azure Security Insights 22cc22cc-dd33-ee44-ff55-66aa66aa66aa 98785600-1bb7-4fb9-b9fa-19afe2c8a360 AzureADMultipleOrgs Application
Načítání objektů, které instanční objekt vlastní nebo vytvořil
Objekty vytvořené instančním objektem služby
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalCreatedObject -ServicePrincipalId $servicePrincipal.Id
Objekty vlastněné objektem služby
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalOwnedObject -ServicePrincipalId $servicePrincipal.Id -All | Select-Object Id, DisplayName, '@odata.type'
Aplikace s prošlými tajnými kódy a certifikáty
Vypršení platnosti tajných kódů nebo hesel aplikací
$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringPasswords = Get-EntraApplication -All | Where-Object { $_.PasswordCredentials } |
ForEach-Object {
$app = $_
$app.PasswordCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
ForEach-Object {
[PSCustomObject]@{
DisplayName = $app.DisplayName
AppId = $app.AppId
SecretDisplayName = $_.DisplayName
KeyId = $_.KeyId
ExpiringSecret = $_.EndDate
}
}
}
$appsWithExpiringPasswords | Format-Table DisplayName, AppId, SecretDisplayName, KeyId, ExpiringSecret -AutoSize
Vypršení platnosti certifikátů
$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringKeys = Get-EntraApplication -All | Where-Object { $_.KeyCredentials } |
ForEach-Object {
$app = $_
$app.KeyCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
ForEach-Object {
[PSCustomObject]@{
DisplayName = $app.DisplayName
AppId = $app.AppId
CertificateDisplayName = $_.DisplayName
KeyId = $_.KeyId
ExpiringKeys = $_.EndDate
}
}
}
$appsWithExpiringKeys | Format-Table DisplayName, AppId, CertificateDisplayName, KeyId, ExpiringKeys -AutoSize