Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een app moet worden geregistreerd in Microsoft Entra ID voordat de Microsoft identity platform deze kan autoriseren voor toegang tot gegevens die zijn opgeslagen in Microsoft Entra of Microsoft 365 tenants. Deze voorwaarde is van toepassing op apps die u zelf ontwikkelt, die uw tenant bezit of waartoe u toegang hebt via een actief abonnement.
Veel instellingen voor apps worden vastgelegd als objecten die kunnen worden geopend, bijgewerkt of verwijderd met behulp van Microsoft Entra PowerShell. Deze objecten omvatten toepassingen, service-principals en app-roltoewijzingen.
In dit artikel leert u hoe u app-registraties en service-principal-objecten beheert met behulp van Microsoft Entra PowerShell. Het omvat het registreren van toepassingen, het configureren van eigenschappen, het toewijzen van machtigingen en het beheren van app-eigendom.
Prerequisites
Als u apps wilt beheren met Microsoft Entra PowerShell, hebt u het volgende nodig:
- Een Microsoft Entra gebruikersaccount. Als u dat nog niet hebt, kunt u gratis een account maken.
- Een van de volgende rollen:
- Geef uzelf de minst bevoegde gedelegeerde machtiging die is aangegeven voor de bewerking.
- Microsoft Entra PowerShell-module geïnstalleerd. Volg de handleiding Microsoft Entra PowerShell-module installeren om de module te installeren.
Een toepassing registreren
Met de volgende aanvraag wordt een app gemaakt door alleen de vereiste displayName eigenschap op te geven.
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
Aan de toepassing wordt een id toegewezen die uniek is voor apps in de tenant en een appId die wereldwijd uniek is in het Microsoft Entra ecosysteem.
Een service-principal maken voor een toepassing
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
Basiseigenschappen voor uw app configureren
U kunt meerdere eigenschappen voor uw app configureren. In het volgende voorbeeld ziet u hoe u de weergavenaam van een toepassing bijwerkt.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraApplication -ApplicationId $application.Id -DisplayName 'Contoso application'
U kunt ook pipelining gebruiken om eigenschappen van een toepassing bij te werken.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraApplication -Filter "DisplayName eq 'My new application'" | Set-EntraApplication -DisplayName 'Contoso application'
Zie Set-EntraApplication voor meer informatie.
App-aanmelding beperken tot alleen toegewezen identiteiten
Het beperken van app-aanmeldingen tot alleen toegewezen identiteiten met behulp van Microsoft Entra PowerShell zorgt ervoor dat alleen geautoriseerde gebruikers toegang hebben tot uw toepassingen, waardoor de beveiliging en controle worden verbeterd.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraServicePrincipal -ServicePrincipalId $application.Id -AppRoleAssignmentRequired $true
Machtigingen toewijzen aan een app
U wijst machtigingen toe aan een app via de Microsoft Entra-beheercentrum of met behulp van Microsoft Entra PowerShell. In PowerShell werkt u de eigenschap van requiredResourceAccess de app bij, inclusief zowel bestaande als nieuwe machtigingen. Als u alleen nieuwe machtigingen doorgeeft, worden bestaande machtigingen verwijderd waarvoor geen toestemming is gegeven.
Het toewijzen van machtigingen verleent deze niet automatisch aan de app. U moet nog steeds beheerderstoestemming verlenen met behulp van de Microsoft Entra-beheercentrum.
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
Eigenaren beheren
De eigenaar van een service-principal ophalen
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'
U kunt ook pipelining gebruiken om de eigenaar van de service-principal op te halen.
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'" | Get-EntraServicePrincipalOwner | Select-Object Id, DisplayName, '@odata.type'
Een eigenaar toewijzen aan een service-principal
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
In dit voorbeeld ziet u hoe u een eigenaar toevoegt aan een service-principal.
-
-ServicePrincipalId- hiermee geeft u de unieke id (ObjectId) op van de service-principal waaraan u een eigenaar wilt toevoegen. -
-OwnerId- geeft de unieke id (ObjectId) op van de gebruiker of groep die u wilt toevoegen als eigenaar van de opgegeven service-principal.
Een lijst met alle toepassingen zonder gebruikerstoewijzing ophalen
Gebruik de volgende opdracht om een lijst op te halen met alle toepassingen waarvoor geen gebruikerstoewijzing is vereist.
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
Objecten ophalen die eigendom zijn van of zijn gemaakt door een service-principal
Objecten die zijn gemaakt door een service-principal
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalCreatedObject -ServicePrincipalId $servicePrincipal.Id
Objecten die eigendom zijn van een service-principal
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'
Toepassingen met verlopende geheimen en certificaten
Verlopende toepassingsgeheimen of wachtwoorden
$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
Verlopende certificaten
$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