Een app-identiteit gebruiken om toegang te krijgen tot Azure Stack hub-resourcesUse an app identity to access Azure Stack Hub resources

Een toepassing die resources moet implementeren of configureren via Azure Resource Manager moet worden aangeduid met een eigen identiteit.An application that needs to deploy or configure resources through Azure Resource Manager must be represented by its own identity. Net zoals een gebruiker wordt vertegenwoordigd door een beveiligingsprincipal met de naam User Principal, wordt een app vertegenwoordigd door een service-principal.Just as a user is represented by a security principal called a user principal, an app is represented by a service principal. De Service-Principal biedt een identiteit voor uw app, zodat u alleen de benodigde machtigingen voor de app kunt delegeren.The service principal provides an identity for your app, allowing you to delegate only the necessary permissions to the app.

U kunt bijvoorbeeld een app voor configuratie beheer hebben die gebruikmaakt van Azure Resource Manager om Azure-resources te inventariseren.As an example, you may have a configuration management app that uses Azure Resource Manager to inventory Azure resources. In dit scenario kunt u een service-principal maken, de rol ' lezer ' toekennen aan die Service-Principal en de configuratie beheer-app beperken tot alleen-lezen toegang.In this scenario, you can create a service principal, grant the "reader" role to that service principal, and limit the configuration management app to read-only access.

OverzichtOverview

Net als bij een gebruiker moet een app tijdens de verificatie referenties presen teren.Like a user, an app must present credentials during authentication. Deze verificatie bestaat uit twee elementen:This authentication consists of two elements:

  • Een toepassings-id, ook wel een client-id genoemd.An Application ID, sometimes referred to as a Client ID. Een GUID die de registratie van de app op unieke wijze identificeert in uw Active Directory-Tenant.A GUID that uniquely identifies the app's registration in your Active Directory tenant.
  • Een geheim dat is gekoppeld aan de toepassings-id.A secret associated with the application ID. U kunt een client geheim teken reeks (vergelijkbaar met een wacht woord) genereren of een x509-certificaat opgeven (waarbij de open bare sleutel wordt gebruikt).You can either generate a client secret string (similar to a password), or specify an X509 certificate (which uses its public key).

Het uitvoeren van een app onder een eigen identiteit verdient de voor keur om deze onder de identiteit van de gebruiker uit te voeren om de volgende redenen:Running an app under its own identity is preferable to running it under the user's identity for the following reasons:

  • Sterkere referenties : een app kan zich aanmelden met een x509-certificaat in plaats van een tekst gedeeld geheim/wacht woord.Stronger credentials - an app can sign in using an X509 certificate, instead of a textual shared secret/password.
  • Er kunnen meer beperkende machtigingen worden toegewezen aan een app.More restrictive permissions can be assigned to an app. Deze machtigingen zijn doorgaans beperkt tot wat de app moet doen, ook wel bekend als het principe van minimale bevoegdheden.Typically, these permissions are restricted to only what the app needs to do, known as the principle of least privilege.
  • Referenties en machtigingen worden niet zo vaak gewijzigd als gebruikers referenties voor een app.Credentials and permissions don't change as frequently for an app as user credentials. Wanneer de verantwoordelijkheden van de gebruiker bijvoorbeeld veranderen, bepalen wachtwoord vereisten een wijziging of wanneer een gebruiker het bedrijf verlaat.For example, when the user's responsibilities change, password requirements dictate a change, or when a user leaves the company.

U begint met het maken van een nieuwe app-registratie in uw directory, waarmee een bijbehorend Service-Principal-object wordt gemaakt om de identiteit van de app in de map te vertegenwoordigen.You start by creating a new app registration in your directory, which creates an associated service principal object to represent the app's identity within the directory.

Dit artikel begint met het proces van het maken en beheren van een Service-Principal, afhankelijk van de map die u hebt gekozen voor uw Azure Stack hub-exemplaar:This article begins with the process of creating and managing a service principal, depending on the directory you chose for your Azure Stack Hub instance:

  • Azure Active Directory (Azure AD).Azure Active Directory (Azure AD). Azure AD is een map met meerdere tenants en een identiteitsbeheerservice in de cloud.Azure AD is a multi-tenant, cloud-based directory, and identity management service. U kunt Azure AD gebruiken met een verbonden Azure Stack hub-exemplaar.You can use Azure AD with a connected Azure Stack Hub instance.
  • Active Directory Federation Services (AD FS).Active Directory Federation Services (AD FS). AD FS biedt vereenvoudigde, beveiligde identiteits Federatie en mogelijkheden voor eenmalige aanmelding via het web (SSO).AD FS provides simplified, secured identity federation, and web single sign-on (SSO) capabilities. U kunt AD FS gebruiken met zowel verbonden als losgekoppelde Azure Stack hub-exemplaren.You can use AD FS with both connected and disconnected Azure Stack Hub instances.

Vervolgens leert u hoe u de Service-Principal toewijst aan een rol, waardoor de toegang tot bronnen wordt beperkt.Then you learn how to assign the service principal to a role, limiting its resource access.

Een Azure AD-App-identiteit beherenManage an Azure AD app identity

Als u Azure Stack hub hebt geïmplementeerd met Azure AD als uw identiteits beheer service, maakt u service-principals op dezelfde manier als voor Azure.If you deployed Azure Stack Hub with Azure AD as your identity management service, you create service principals just like you do for Azure. In deze sectie wordt beschreven hoe u de stappen uitvoert via de Azure Portal.This section shows you how to perform the steps through the Azure portal. Controleer voordat u begint of u over de vereiste Azure AD-machtigingen beschikt.Check that you have the required Azure AD permissions before beginning.

Een service-principal maken die gebruikmaakt van een client geheim referentieCreate a service principal that uses a client secret credential

In deze sectie registreert u uw app met behulp van de Azure Portal, die het Service-Principal-object maakt in uw Azure AD-Tenant.In this section, you register your app using the Azure portal, which creates the service principal object in your Azure AD tenant. In dit voor beeld geeft u een client geheim referentie op, maar de portal biedt ook ondersteuning voor x509-certificaat referenties.In this example, you specify a client secret credential, but the portal also supports X509 certificate-based credentials.

  1. Meld u aan bij de Azure Portal met uw Azure-account.Sign in to the Azure portal using your Azure account.

  2. Selecteer Azure Active Directory > app-registraties > nieuwe registratie.Select Azure Active Directory > App registrations > New registration.

  3. Geef een naam op voor de app.Provide a name for the app.

  4. Selecteer de juiste ondersteunde account typen.Select the appropriate Supported account types.

  5. Onder omleidings-URI selecteert u Web als het app-type en (optioneel) Geef een OMleidings-URI op als deze vereist is voor uw app.Under Redirect URI, select Web as the app type, and (optionally) specify a redirect URI if your app requires it.

  6. Nadat u de waarden hebt ingesteld, selecteert u registreren.After setting the values, select Register. De registratie van de app wordt gemaakt en de overzichts pagina wordt weer gegeven.The app registration is created and the Overview page displays.

  7. Kopieer de toepassings-id voor gebruik in uw app-code.Copy the Application ID for use in your app code. Deze waarde wordt ook wel de client-ID genoemd.This value is also referred to as the Client ID.

  8. Als u een client geheim wilt genereren, selecteert u de pagina certificaten & geheimen .To generate a client secret, select the Certificates & secrets page. Selecteer Nieuw clientgeheim.Select New client secret.

  9. Geef een Beschrijving op voor het geheim en de duur verloopt op.Provide a description for the secret, and an expires duration.

  10. Selecteer Toevoegen wanneer u klaar bent.When done, select Add.

  11. De waarde van het geheim wordt weer gegeven.The value of the secret displays. Kopieer deze waarde en sla deze op een andere locatie op, omdat u deze niet later kunt ophalen.Copy and save this value in another location, because you can't retrieve it later. U geeft het geheim op met de toepassings-ID in uw client-app om u aan te melden.You provide the secret with the Application ID in your client app for sign-in.

    Opgeslagen sleutel in client geheimen

Ga nu verder met het toewijzen van een rol voor meer informatie over het instellen van toegangs beheer op basis van rollen voor de identiteit van de app.Now proceed to Assign a role to learn how to establish role-based access control for the app's identity.

Een AD FS app-identiteit beherenManage an AD FS app identity

Als u Azure Stack hub hebt geïmplementeerd met AD FS als uw identiteits beheer service, moet u Power shell gebruiken voor het beheren van de identiteit van uw app.If you deployed Azure Stack Hub with AD FS as your identity management service, you must use PowerShell to manage your app's identity. Hieronder vindt u voor beelden voor het beheren van Service-Principal-referenties, waarbij zowel een x509-certificaat als een client geheim wordt weer gegeven.Examples are provided below for managing service principal credentials, demonstrating both an X509 certificate and a client secret.

De scripts moeten worden uitgevoerd in een Power shell-console met verhoogde bevoegdheden (' uitvoeren als Administrator '), waarmee een andere sessie wordt geopend naar een virtuele machine die als host fungeert voor een privileged endpoint voor uw Azure Stack hub-exemplaar.The scripts must be run in an elevated ("Run as administrator") PowerShell console, which opens another session to a VM that hosts a privileged endpoint for your Azure Stack Hub instance. Zodra de privileged endpoint-sessie tot stand is gebracht, worden extra cmdlets uitgevoerd en wordt de Service-Principal beheerd.Once the privileged endpoint session has been established, additional cmdlets will execute and manage the service principal. Zie het privileged endpoint gebruiken in azure stack hubvoor meer informatie over het bevoegde eind punt.For more information about the privileged endpoint, see Using the privileged endpoint in Azure Stack Hub.

Een service-principal maken die gebruikmaakt van een certificaat referentieCreate a service principal that uses a certificate credential

Bij het maken van een certificaat referentie moeten aan de volgende vereisten worden voldaan:When creating a certificate credential, the following requirements must be met:

  • Voor productie moet het certificaat worden uitgegeven door een interne certificerings instantie of door een open bare certificerings instantie.For production, the certificate must be issued from either an internal Certificate Authority or a Public Certificate Authority. Wanneer u een open bare instantie gebruikt, moet u de instantie in de basis installatie kopie van het besturings systeem opnemen als onderdeel van het micro soft-programma voor vertrouwde basis instanties.When using a public authority, you must include the authority in the base operating system image as part of the Microsoft Trusted Root Authority Program. U vindt de volledige lijst bij het micro soft-certificaat programma voor vertrouwde basis certificaten: deel nemers.You can find the full list at Microsoft Trusted Root Certificate Program: Participants. Een voor beeld van het maken van een ' zelf ondertekend ' Test certificaat wordt ook later weer gegeven tijdens het bijwerken van een certificaat referentie.An example of creating a "self-signed" test certificate will also be shown later during Update a certificate credential.
  • De cryptografische provider moet worden opgegeven als een verouderde CSP-provider (Cryptographic Service Provider) van micro soft.The cryptographic provider must be specified as a Microsoft legacy Cryptographic Service Provider (CSP) key provider.
  • De indeling van het certificaat moet een PFX-bestand zijn, aangezien de open bare en persoonlijke sleutels vereist zijn.The certificate format must be in PFX file, as both the public and private keys are required. Windows-servers gebruiken pfx-bestanden die het bestand met de open bare sleutel (TLS/SSL-certificaat bestand) en het bijbehorende persoonlijke sleutel bestand bevatten.Windows servers use .pfx files that contain the public key file (TLS/SSL certificate file) and the associated private key file.
  • De infra structuur van uw Azure Stack-hub moet netwerk toegang hebben tot de CRL-locatie (Certificate Revocation List) van de certificerings instantie die is gepubliceerd in het certificaat.Your Azure Stack Hub infrastructure must have network access to the certificate authority's Certificate Revocation List (CRL) location published in the certificate. Deze CRL moet een HTTP-eind punt zijn.This CRL must be an HTTP endpoint.

Zodra u een certificaat hebt, gebruikt u het onderstaande Power shell-script om uw app te registreren en een service-principal te maken.Once you have a certificate, use the PowerShell script below to register your app and create a service principal. U kunt de Service-Principal ook gebruiken om u aan te melden bij Azure.You also use the service principal to sign in to Azure. Vervang uw eigen waarden door de volgende tijdelijke aanduidingen:Substitute your own values for the following placeholders:

Tijdelijke aanduidingPlaceholder BeschrijvingDescription VoorbeeldExample
<PepVM> De naam van de bevoegde eindpunt-VM op uw Azure Stack hub-exemplaar.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourCertificateLocation> De locatie van het x509-certificaat in het lokale certificaat archief.The location of your X509 certificate in the local certificate store. "Certificaat: \ CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34""Cert:\CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34"
<YourAppName> Een beschrijvende naam voor de nieuwe app-registratie.A descriptive name for the new app registration. "Mijn beheer programma""My management tool"
  1. Open een Windows Power shell-sessie met verhoogde bevoegdheden en voer het volgende script uit.Open an elevated Windows PowerShell session, and run the following script.

    # Sign in to PowerShell interactively, using credentials that have access to the VM running the Privileged Endpoint (typically <domain>\cloudadmin)
    $Creds = Get-Credential
    
    # Create a PSSession to the Privileged Endpoint VM
    $Session = New-PSSession -ComputerName "<PepVm>" -ConfigurationName PrivilegedEndpoint -Credential $Creds
    
    # Use the Get-Item cmdlet to retrieve your certificate.
    # If you don't want to use a managed certificate, you can produce a self signed cert for testing purposes: 
    # $Cert = New-SelfSignedCertificate -CertStoreLocation "cert:\CurrentUser\My" -Subject "CN=<YourAppName>" -KeySpec KeyExchange
    $Cert = Get-Item "<YourCertificateLocation>"
    
    # Use the privileged endpoint to create the new app registration (and service principal object)
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {New-GraphApplication -Name "<YourAppName>" -ClientCertificates $using:cert}
    $AzureStackInfo = Invoke-Command -Session $Session -ScriptBlock {Get-AzureStackStampInformation}
    $Session | Remove-PSSession
    
    # Using the stamp info for your Azure Stack Hub instance, populate the following variables:
    # - Az endpoint used for Azure Resource Manager operations 
    # - Audience for acquiring an OAuth token used to access Graph API 
    # - GUID of the directory tenant
    $ArmEndpoint = $AzureStackInfo.TenantExternalEndpoints.TenantResourceManager
    $GraphAudience = "https://graph." + $AzureStackInfo.ExternalDomainFQDN + "/"
    $TenantID = $AzureStackInfo.AADTenantID
    
    # Register and set an Az environment that targets your Azure Stack Hub instance
    Add-AzEnvironment -Name "AzureStackUser" -ArmEndpoint $ArmEndpoint
    
    # Sign in using the new service principal
    $SpSignin = Connect-AzAccount -Environment "AzureStackUser" `
    -ServicePrincipal `
    -CertificateThumbprint $SpObject.Thumbprint `
    -ApplicationId $SpObject.ClientId `
    -TenantId $TenantID
    
    # Output the service principal details
    $SpObject
    
    
  2. Nadat het script is voltooid, worden de gegevens van de app-registratie weer gegeven, met inbegrip van de referenties van de Service-Principal.After the script finishes, it displays the app registration info, including the service principal's credentials. De ClientID en Thumbprint zijn geverifieerd en later geautoriseerd voor toegang tot bronnen die worden beheerd door Azure Resource Manager.The ClientID and Thumbprint are authenticated, and later authorized for access to resources managed by Azure Resource Manager.

    ApplicationIdentifier : S-1-5-21-1512385356-3796245103-1243299919-1356
    ClientId              : 3c87e710-9f91-420b-b009-31fa9e430145
    Thumbprint            : 30202C11BE6864437B64CE36C8D988442082A0F1
    ApplicationName       : Azurestack-MyApp-c30febe7-1311-4fd8-9077-3d869db28342
    ClientSecret          :
    PSComputerName        : azs-ercs01
    RunspaceId            : a78c76bb-8cae-4db4-a45a-c1420613e01b
    

Zorg ervoor dat uw Power shell-console sessie geopend is, omdat u deze gebruikt met de ApplicationIdentifier waarde in de volgende sectie.Keep your PowerShell console session open, as you use it with the ApplicationIdentifier value in the next section.

Een certificaat Referentie bijwerkenUpdate a certificate credential

Nu u een Service-Principal hebt gemaakt, wordt in deze sectie uitgelegd hoe u:Now that you created a service principal, this section will show you how to:

  1. Een nieuw zelfondertekend x509-certificaat maken voor het testen.Create a new self-signed X509 certificate for testing.
  2. Werk de referenties van de service-principal bij door de eigenschap vinger afdruk bij te werken zodat deze overeenkomt met het nieuwe certificaat.Update the service principal's credentials, by updating its Thumbprint property to match the new certificate.

Werk de certificaat referentie bij met behulp van Power shell en vervang uw eigen waarden voor de volgende tijdelijke aanduidingen:Update the certificate credential using PowerShell, substituting your own values for the following placeholders:

Tijdelijke aanduidingPlaceholder BeschrijvingDescription VoorbeeldExample
<PepVM> De naam van de bevoegde eindpunt-VM op uw Azure Stack hub-exemplaar.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourAppName> Een beschrijvende naam voor de nieuwe app-registratie.A descriptive name for the new app registration. "Mijn beheer programma""My management tool"
<YourCertificateLocation> De locatie van het x509-certificaat in het lokale certificaat archief.The location of your X509 certificate in the local certificate store. "Certificaat: \ CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34""Cert:\CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34"
<AppIdentifier> De id die is toegewezen aan de registratie van de toepassing.The identifier assigned to the application registration. "S-1-5-21-1512385356-3796245103-1243299919-1356""S-1-5-21-1512385356-3796245103-1243299919-1356"
  1. Voer de volgende cmdlets uit met behulp van de Windows Power shell-sessie met verhoogde bevoegdheden:Using your elevated Windows PowerShell session, run the following cmdlets:

    # Create a PSSession to the PrivilegedEndpoint VM
    $Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds
    
    # Create a self-signed certificate for testing purposes. 
    $NewCert = New-SelfSignedCertificate -CertStoreLocation "cert:\CurrentUser\My" -Subject "CN=<YourAppName>" -KeySpec KeyExchange
    # In production, use Get-Item and a managed certificate instead.
    # $Cert = Get-Item "<YourCertificateLocation>"
    
    # Use the privileged endpoint to update the certificate thumbprint, used by the service principal associated with <AppIdentifier>
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {Set-GraphApplication -ApplicationIdentifier "<AppIdentifier>" -ClientCertificates $using:NewCert}
    $Session | Remove-PSSession
    
    # Output the updated service principal details
    $SpObject
    
  2. Nadat het script is voltooid, worden de bijgewerkte gegevens van de app-registratie weer gegeven, met inbegrip van de vingerafdruk waarde voor het nieuwe zelfondertekende certificaat.After the script finishes, it displays the updated app registration info, including the thumbprint value for the new self-signed certificate.

    ApplicationIdentifier : S-1-5-21-1512385356-3796245103-1243299919-1356
    ClientId              : 
    Thumbprint            : AF22EE716909041055A01FE6C6F5C5CDE78948E9
    ApplicationName       : Azurestack-MyApp-c30febe7-1311-4fd8-9077-3d869db28342
    ClientSecret          : 
    PSComputerName        : azs-ercs01
    RunspaceId            : a580f894-8f9b-40ee-aa10-77d4d142b4e5
    

Een service-principal maken die geheime client referenties gebruiktCreate a service principal that uses client secret credentials

Waarschuwing

Het gebruik van een client geheim is minder veilig dan het gebruik van een x509-certificaat referentie.Using a client secret is less secure than using an X509 certificate credential. Niet alleen is het verificatie mechanisme minder veilig, maar hiervoor moet het geheim ook worden inge sloten in de bron code van de client-app.Not only is the authentication mechanism less secure, but it also typically requires embedding the secret in the client app source code. Voor productie-apps raden we u ten zeerste aan een certificaat referentie te gebruiken.As such, for production apps, you're strongly encouraged to use a certificate credential.

U maakt nu een andere app-registratie, maar deze keer geeft u een client geheim referentie op.Now you create another app registration, but this time specify a client secret credential. In tegens telling tot een certificaat referentie heeft de Directory de mogelijkheid om een client geheim referentie te genereren.Unlike a certificate credential, the directory has the ability to generate a client secret credential. In plaats van het client geheim op te geven, gebruikt u de -GenerateClientSecret switch om te vragen dat deze wordt gegenereerd.Instead of specifying the client secret, you use the -GenerateClientSecret switch to request that it be generated. Vervang uw eigen waarden door de volgende tijdelijke aanduidingen:Substitute your own values for the following placeholders:

Tijdelijke aanduidingPlaceholder BeschrijvingDescription VoorbeeldExample
<PepVM> De naam van de bevoegde eindpunt-VM op uw Azure Stack hub-exemplaar.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourAppName> Een beschrijvende naam voor de nieuwe app-registratie.A descriptive name for the new app registration. "Mijn beheer programma""My management tool"
  1. Open een Windows Power shell-sessie met verhoogde bevoegdheden en voer de volgende cmdlets uit:Open an elevated Windows PowerShell session, and run the following cmdlets:

    # Sign in to PowerShell interactively, using credentials that have access to the VM running the Privileged Endpoint (typically <domain>\cloudadmin)
    $Creds = Get-Credential
    
    # Create a PSSession to the Privileged Endpoint VM
    $Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds
    
    # Use the privileged endpoint to create the new app registration (and service principal object)
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {New-GraphApplication -Name "<YourAppName>" -GenerateClientSecret}
    $AzureStackInfo = Invoke-Command -Session $Session -ScriptBlock {Get-AzureStackStampInformation}
    $Session | Remove-PSSession
    
    # Using the stamp info for your Azure Stack Hub instance, populate the following variables:
    # - Az endpoint used for Azure Resource Manager operations 
    # - Audience for acquiring an OAuth token used to access Graph API 
    # - GUID of the directory tenant
    $ArmEndpoint = $AzureStackInfo.TenantExternalEndpoints.TenantResourceManager
    $GraphAudience = "https://graph." + $AzureStackInfo.ExternalDomainFQDN + "/"
    $TenantID = $AzureStackInfo.AADTenantID
    
    # Register and set an Az environment that targets your Azure Stack Hub instance
    Add-AzEnvironment -Name "AzureStackUser" -ArmEndpoint $ArmEndpoint
    
    # Sign in using the new service principal
    $securePassword = $SpObject.ClientSecret | ConvertTo-SecureString -AsPlainText -Force
    $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $SpObject.ClientId, $securePassword
    $SpSignin = Connect-AzAccount -Environment "AzureStackUser" -ServicePrincipal -Credential $credential -TenantId $TenantID
    
    # Output the service principal details
    $SpObject
    
  2. Nadat het script is voltooid, worden de gegevens van de app-registratie weer gegeven, met inbegrip van de referenties van de Service-Principal.After the script finishes, it displays the app registration info, including the service principal's credentials. De ClientID en ClientSecret zijn geverifieerd en later geautoriseerd voor toegang tot bronnen die worden beheerd door Azure Resource Manager.The ClientID and ClientSecret are authenticated, and later authorized for access to resources managed by Azure Resource Manager.

    ApplicationIdentifier : S-1-5-21-1634563105-1224503876-2692824315-2623
    ClientId              : 8e0ffd12-26c8-4178-a74b-f26bd28db601
    Thumbprint            : 
    ApplicationName       : Azurestack-YourApp-6967581b-497e-4f5a-87b5-0c8d01a9f146
    ClientSecret          : 6RUWLRoBw3EebBLgaWGiowCkoko5_j_ujIPjA8dS
    PSComputerName        : azs-ercs01
    RunspaceId            : 286daaa1-c9a6-4176-a1a8-03f543f90998
    

Zorg ervoor dat uw Power shell-console sessie geopend is, omdat u deze gebruikt met de ApplicationIdentifier waarde in de volgende sectie.Keep your PowerShell console session open, as you use it with the ApplicationIdentifier value in the next section.

Een client geheim bijwerkenUpdate a client secret

Werk de client geheim referentie bij met behulp van Power shell met de para meter ResetClientSecret , die het client geheim direct wijzigt.Update the client secret credential using PowerShell, using the ResetClientSecret parameter, which immediately changes the client secret. Vervang uw eigen waarden door de volgende tijdelijke aanduidingen:Substitute your own values for the following placeholders:

Tijdelijke aanduidingPlaceholder BeschrijvingDescription VoorbeeldExample
<PepVM> De naam van de bevoegde eindpunt-VM op uw Azure Stack hub-exemplaar.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<AppIdentifier> De id die is toegewezen aan de registratie van de toepassing.The identifier assigned to the application registration. "S-1-5-21-1634563105-1224503876-2692824315-2623""S-1-5-21-1634563105-1224503876-2692824315-2623"
  1. Voer de volgende cmdlets uit met behulp van de Windows Power shell-sessie met verhoogde bevoegdheden:Using your elevated Windows PowerShell session, run the following cmdlets:

    # Create a PSSession to the PrivilegedEndpoint VM
    $Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds
    
    # Use the privileged endpoint to update the client secret, used by the service principal associated with <AppIdentifier>
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {Set-GraphApplication -ApplicationIdentifier "<AppIdentifier>" -ResetClientSecret}
    $Session | Remove-PSSession
    
    # Output the updated service principal details
    $SpObject
    
  2. Nadat het script is voltooid, worden de bijgewerkte gegevens van de app-registratie weer gegeven, met inbegrip van het nieuwe gegenereerde client geheim.After the script finishes, it displays the updated app registration info, including the newly generated client secret.

    ApplicationIdentifier : S-1-5-21-1634563105-1224503876-2692824315-2623
    ClientId              : 8e0ffd12-26c8-4178-a74b-f26bd28db601
    Thumbprint            : 
    ApplicationName       : Azurestack-YourApp-6967581b-497e-4f5a-87b5-0c8d01a9f146
    ClientSecret          : MKUNzeL6PwmlhWdHB59c25WDDZlJ1A6IWzwgv_Kn
    PSComputerName        : azs-ercs01
    RunspaceId            : 6ed9f903-f1be-44e3-9fef-e7e0e3f48564
    

Een Service-Principal verwijderenRemove a service principal

U ziet nu hoe u een app-registratie uit uw directory en het bijbehorende service-principal-object verwijdert met behulp van Power shell.Now you'll see how to remove/delete an app registration from your directory, and its associated service principal object, using PowerShell.

Vervang uw eigen waarden door de volgende tijdelijke aanduidingen:Substitute your own values for the following placeholders:

Tijdelijke aanduidingPlaceholder BeschrijvingDescription VoorbeeldExample
<PepVM> De naam van de bevoegde eindpunt-VM op uw Azure Stack hub-exemplaar.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<AppIdentifier> De id die is toegewezen aan de registratie van de toepassing.The identifier assigned to the application registration. "S-1-5-21-1634563105-1224503876-2692824315-2623""S-1-5-21-1634563105-1224503876-2692824315-2623"
# Sign in to PowerShell interactively, using credentials that have access to the VM running the Privileged Endpoint (typically <domain>\cloudadmin)
$Creds = Get-Credential

# Create a PSSession to the PrivilegedEndpoint VM
$Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds

# OPTIONAL: Use the privileged endpoint to get a list of applications registered in AD FS
$AppList = Invoke-Command -Session $Session -ScriptBlock {Get-GraphApplication}

# Use the privileged endpoint to remove the application and associated service principal object for <AppIdentifier>
Invoke-Command -Session $Session -ScriptBlock {Remove-GraphApplication -ApplicationIdentifier "<AppIdentifier>"}

Er wordt geen uitvoer geretourneerd van het aanroepen van de Remove-GraphApplication-cmdlet op het geprivilegieerde eind punt, maar er wordt tijdens de uitvoering van de cmdlet een Verbatim-bevestigings uitvoer naar de console weer gegeven:There will be no output returned from calling the Remove-GraphApplication cmdlet on the privileged endpoint, but you'll see verbatim confirmation output to the console during execution of the cmdlet:

VERBOSE: Deleting graph application with identifier S-1-5-21-1634563105-1224503876-2692824315-2623.
VERBOSE: Remove-GraphApplication : BEGIN on AZS-ADFS01 on ADFSGraphEndpoint
VERBOSE: Application with identifier S-1-5-21-1634563105-1224503876-2692824315-2623 was deleted.
VERBOSE: Remove-GraphApplication : END on AZS-ADFS01 under ADFSGraphEndpoint configuration

Een rol toewijzenAssign a role

Toegang tot Azure-resources door gebruikers en apps wordt geautoriseerd via Role-Based Access Control (RBAC).Access to Azure resources by users and apps is authorized through Role-Based Access Control (RBAC). Om ervoor te zorgen dat een app toegang heeft tot resources in uw abonnement, moet u de Service-Principal toewijzen aan een rol voor een specifieke resource.To allow an app to access resources in your subscription, you must assign its service principal to a role for a specific resource. Bepaal eerst welke rol de juiste machtigingen voor de app vertegenwoordigt.First decide which role represents the right permissions for the app. Zie ingebouwde rollen voor Azure-resourcesvoor meer informatie over de beschik bare rollen.To learn about the available roles, see Built-in roles for Azure resources.

Het type resource dat u kiest, bepaalt ook de toegangs Scope voor de app.The type of resource you choose also establishes the access scope for the app. U kunt de toegangs scope instellen voor het abonnement, de resource groep of het resource niveau.You can set the access scope at the subscription, resource group, or resource level. Machtigingen worden overgenomen door lagere bereik niveaus.Permissions are inherited to lower levels of scope. Als u bijvoorbeeld een app toevoegt aan de rol ' lezer ' voor een resource groep, betekent dit dat de resource groep en alle resources die deze bevat, kunnen worden gelezen.For example, adding an app to the "Reader" role for a resource group, means it can read the resource group and any resources it contains.

  1. Meld u aan bij de juiste Portal, op basis van de map die u hebt opgegeven tijdens de installatie van Azure Stack hub (de Azure Portal voor Azure AD of de Azure Stack hub-gebruikers portal voor AD FS).Sign in to the appropriate portal, based on the directory you specified during Azure Stack Hub installation (the Azure portal for Azure AD, or the Azure Stack Hub user portal for AD FS, for example). In dit voor beeld wordt een gebruiker die is aangemeld bij de gebruikers portal van Azure Stack hub weer gegeven.In this example, we show a user signed in to the Azure Stack Hub user portal.

    Notitie

    Als u roltoewijzingen wilt toevoegen voor een bepaalde resource, moet uw gebruikers account deel uitmaken van een rol die de machtiging declareert Microsoft.Authorization/roleAssignments/write .To add role assignments for a given resource, your user account must belong to a role that declares the Microsoft.Authorization/roleAssignments/write permission. U kunt bijvoorbeeld de ingebouwde rollen eigenaar of gebruikers toegang beheerder hebben .For example, either the Owner or User Access Administrator built-in roles.

  2. Ga naar de resource waartoe u de app toegang wilt verlenen.Navigate to the resource you wish to allow the app to access. In dit voor beeld wijst u de service-principal van de app toe aan een rol bij het abonnements bereik door abonnementen te selecteren en vervolgens een specifiek abonnement.In this example, assign the app's service principal to a role at the subscription scope, by selecting Subscriptions, then a specific subscription. U kunt in plaats daarvan een resource groep selecteren, of een specifieke bron, zoals een virtuele machine.You could instead select a resource group, or a specific resource like a virtual machine.

    Abonnement selecteren voor toewijzing

  3. Selecteer de pagina Access Control (IAM) , die universeel is in alle resources die ondersteuning bieden voor RBAC.Select the Access Control (IAM) page, which is universal across all resources that support RBAC.

  4. Selecteer + ToevoegenSelect + Add

  5. Kies onder rol de rol die u aan de app wilt toewijzen.Under Role, pick the role you wish to assign to the app.

  6. Zoek onder selecteren naar uw app met behulp van een volledige of gedeeltelijke toepassings naam.Under Select, search for your app using a full or partial Application Name. Tijdens de registratie wordt de naam van de toepassing gegenereerd als Azurestack- <YourAppName> - <ClientId>.During registration, the Application Name is generated as Azurestack-<YourAppName>-<ClientId>. Als u bijvoorbeeld een toepassings naam hebt gebruikt voor App2 en ClientId 2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff is toegewezen tijdens het maken, zou de volledige naam Azurestack-App2-2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff zijn.For example, if you used an application name of App2, and ClientId 2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff was assigned during creation, the full name would be Azurestack-App2-2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff. U kunt zoeken naar een exacte teken reeks, of een gedeelte, zoals Azurestack of Azurestack-App2.You can search for either the exact string, or a portion, like Azurestack or Azurestack-App2.

  7. Wanneer u de app hebt gevonden, selecteert u deze en wordt deze weer gegeven onder geselecteerde leden.Once you find the app, select it and it will show under Selected members.

  8. Selecteer Opslaan om de rol toe te wijzen.Select Save to finish assigning the role.

    Rol toewijzenAssign role

  9. Als u klaar bent, wordt de app weer gegeven in de lijst met principals die zijn toegewezen voor het huidige bereik, voor de desbetreffende rol.When finished, the app will show in the list of principals assigned for the current scope, for the given role.

    Toegewezen rolAssigned role

Nu u uw app een identiteit hebt gegeven en geautoriseerd voor toegang tot de resource, kunt u uw script of code inschakelen om u aan te melden en veilig toegang te krijgen tot Azure Stack hub-resources.Now that you've given your app an identity and authorized it for resource access, you can enable your script or code to sign in and securely access Azure Stack Hub resources.

Volgende stappenNext steps

Gebruikersrechten beherenManage user permissions
Documentatie over Azure Active DirectoryAzure Active Directory Documentation
Active Directory Federation ServicesActive Directory Federation Services