Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma aplicação tem de estar registada no Microsoft Entra ID para que a plataforma de identidades da Microsoft a possa autorizar a aceder a dados armazenados em locatários do Microsoft Entra ou do Microsoft 365. Esta condição aplica-se a aplicações que desenvolve por si próprio, que o seu inquilino possui ou que acede através de uma subscrição ativa.
Muitas definições de aplicações são registadas como objetos que podem ser acedidos, atualizados ou eliminados usando o Microsoft Entra PowerShell. Estes objetos incluem aplicações, princípios de serviço e atribuições de papéis de aplicação.
Neste artigo, aprende como gerir registos de aplicações e objetos principais de serviço usando o Microsoft Entra PowerShell. Abrange o registo de aplicações, a configuração de propriedades, a atribuição de permissões e a gestão da propriedade da aplicação.
Pré-requisitos
Para gerir aplicações com o Microsoft Entra PowerShell, precisa de:
- Uma conta de usuário do Microsoft Entra. Se ainda não tiver uma, pode criar uma conta gratuitamente.
- Uma das seguintes funções:
- Atribua a si próprio a permissão delegada com o menor nível de privilégios indicada para a operação.
- Módulo PowerShell Microsoft Entra instalado. Siga o guia Instalar o módulo Microsoft Entra PowerShell para instalar o módulo.
Registar uma candidatura
O pedido seguinte cria uma aplicação especificando apenas a propriedade necessária displayName .
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
A aplicação recebe um ID único para as aplicações no tenant, e um appID globalmente único no ecossistema Microsoft Entra.
Crie um princípio de serviço para uma aplicação
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
Configure propriedades básicas para a sua aplicação
Pode configurar várias propriedades para a sua aplicação. O exemplo seguinte mostra como atualizar o nome de exibição de uma aplicação.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraApplication -ApplicationId $application.Id -DisplayName 'Contoso application'
Em alternativa, utilize o encadeamento para atualizar as propriedades de uma aplicação.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraApplication -Filter "DisplayName eq 'My new application'" | Set-EntraApplication -DisplayName 'Contoso application'
Para mais informações, consulte Set-EntraApplication.
Limitar o início de sessão da aplicação apenas às identidades atribuídas
Limitar o início de sessão de aplicações apenas a identidades atribuídas usando o Microsoft Entra PowerShell garante que apenas utilizadores autorizados possam aceder às suas aplicações, aumentando a segurança e o controlo.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraServicePrincipal -ServicePrincipalId $application.Id -AppRoleAssignmentRequired $true
Atribuir permissões a uma aplicação
Atribui permissões a uma aplicação através do centro de administração Microsoft Entra ou usando o Microsoft Entra PowerShell. No PowerShell, atualiza-se a propriedade da requiredResourceAccess aplicação, incluindo as permissões existentes e as novas. Fornecer apenas novas permissões remove quaisquer permissões existentes às quais não tenha sido dado consentimento.
Atribuir permissões não as concede automaticamente à aplicação. Deve ainda assim conceder consentimento de administrador através do centro de administração 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
Gerir proprietários
Obter o proprietário de um principal de serviço
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'
Em alternativa, utilize o pipeline para recuperar o proprietário do principal do serviço.
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'" | Get-EntraServicePrincipalOwner | Select-Object Id, DisplayName, '@odata.type'
Atribuir um proprietário a um principal de serviço
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
Este exemplo mostra como adicionar um proprietário a um principal de serviços.
-
-ServicePrincipalId- especifica o identificador único (ObjectId) do principal de serviço ao qual pretende adicionar um proprietário. -
-OwnerId- especifica o identificador único (ObjectId) do utilizador ou grupo que pretende adicionar como proprietário do principal de serviço especificado.
Obtenha uma lista de todas as aplicações sem atribuição de utilizador
Para obter uma lista de todas as aplicações que não requerem atribuição de utilizador, use o seguinte comando.
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
Recuperação de objetos pertencentes ou criados por um principal de serviço
Objetos criados por um principal de serviço
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalCreatedObject -ServicePrincipalId $servicePrincipal.Id
Objetos pertencentes a um principal de serviço
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'
Aplicações com segredos e certificados prestes a expirar
Secretos ou palavras-passe de candidatura a expirar
$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
Certificados a expirar
$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