Använd en app-identitet för att få åtkomst till Azure Stack Hub-resurserUse an app identity to access Azure Stack Hub resources

Ett program som behöver distribuera eller konfigurera resurser via Azure Resource Manager måste representeras av sin egen identitet.An application that needs to deploy or configure resources through Azure Resource Manager must be represented by its own identity. Precis som en användare representeras av ett säkerhets objekt som kallas användarens huvud namn, representeras en app av ett huvud namn för tjänsten.Just as a user is represented by a security principal called a user principal, an app is represented by a service principal. Tjänstens huvud namn ger en identitet för din app, så att du endast kan delegera de nödvändiga behörigheterna till appen.The service principal provides an identity for your app, allowing you to delegate only the necessary permissions to the app.

Som exempel kan du ha en app för konfigurations hantering som använder Azure Resource Manager för att inventera Azure-resurser.As an example, you may have a configuration management app that uses Azure Resource Manager to inventory Azure resources. I det här scenariot kan du skapa ett huvud namn för tjänsten, ge rollen "läsare" åtkomst till tjänstens huvud namn och begränsa appen för konfigurations hantering till skrivskyddad åtkomst.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.

ÖversiktOverview

Som en användare måste en app Visa autentiseringsuppgifter under autentiseringen.Like a user, an app must present credentials during authentication. Den här autentiseringen består av två element:This authentication consists of two elements:

  • Ett program-ID, som ibland kallas klient-ID.An Application ID, sometimes referred to as a Client ID. Ett GUID som unikt identifierar appens registrering i Active Directory klient organisationen.A GUID that uniquely identifies the app's registration in your Active Directory tenant.
  • En hemlighet som är associerad med program-ID: t.A secret associated with the application ID. Du kan antingen skapa en hemlig klient sträng (liknar ett lösen ord) eller ange ett X509-certifikat (som använder dess offentliga nyckel).You can either generate a client secret string (similar to a password), or specify an X509 certificate (which uses its public key).

Att köra en app under sin egen identitet är att föredra att köra den under användarens identitet av följande skäl:Running an app under its own identity is preferable to running it under the user's identity for the following reasons:

  • Starkare autentiseringsuppgifter – en app kan logga in med ett X509-certifikat i stället för ett textdelat hemligt/lösen ord.Stronger credentials - an app can sign in using an X509 certificate, instead of a textual shared secret/password.
  • Mer restriktiva behörigheter kan tilldelas en app.More restrictive permissions can be assigned to an app. Dessa behörigheter är vanligt vis begränsade till enbart vad appen behöver göra, som kallas principen om minsta behörighet.Typically, these permissions are restricted to only what the app needs to do, known as the principle of least privilege.
  • Autentiseringsuppgifter och behörigheter ändras inte så ofta för en app som användarautentiseringsuppgifter.Credentials and permissions don't change as frequently for an app as user credentials. Till exempel när användarens ansvar ändras, kräver lösen ords krav en ändring eller när en användare lämnar företaget.For example, when the user's responsibilities change, password requirements dictate a change, or when a user leaves the company.

Du börjar med att skapa en ny app-registrering i din katalog, vilket skapar ett associerat tjänst huvud objekt som representerar appens identitet i katalogen.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.

Den här artikeln börjar med processen att skapa och hantera ett huvud namn för tjänsten, beroende på vilken katalog du valde för Azure Stack Hub-instansen: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 är en molnbaserad katalog- och identitetshanteringstjänst för flera klientorganisationer.Azure AD is a multi-tenant, cloud-based directory, and identity management service. Du kan använda Azure AD med en ansluten Azure Stack Hub-instans.You can use Azure AD with a connected Azure Stack Hub instance.
  • Active Directory Federation Services (AD FS) (AD FS).Active Directory Federation Services (AD FS). AD FS tillhandahåller funktioner för förenklad, skyddad identitets Federation och enkel inloggning på webben.AD FS provides simplified, secured identity federation, and web single sign-on (SSO) capabilities. Du kan använda AD FS med både anslutna och frånkopplade Azure Stack Hubbs instanser.You can use AD FS with both connected and disconnected Azure Stack Hub instances.

Sedan får du lära dig hur du tilldelar tjänstens huvud namn till en roll, vilket begränsar resurs åtkomsten.Then you learn how to assign the service principal to a role, limiting its resource access.

Hantera en Azure AD App-identitetManage an Azure AD app identity

Om du har distribuerat Azure Stack hubb med Azure AD som identitets hanterings tjänst skapar du tjänstens huvud namn precis som du gör för 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. I det här avsnittet visas hur du utför stegen via Azure Portal.This section shows you how to perform the steps through the Azure portal. Kontrol lera att du har de nödvändiga Azure AD-behörigheterna innan du börjar.Check that you have the required Azure AD permissions before beginning.

Skapa ett huvud namn för tjänsten som använder autentiseringsuppgifter för klient hemlighetCreate a service principal that uses a client secret credential

I det här avsnittet registrerar du din app med hjälp av Azure Portal, som skapar tjänstens huvud namns objekt i din Azure AD-klient.In this section, you register your app using the Azure portal, which creates the service principal object in your Azure AD tenant. I det här exemplet anger du autentiseringsuppgifter för en klient hemlighet, men portalen stöder även X509-certifikatbaserade autentiseringsuppgifter.In this example, you specify a client secret credential, but the portal also supports X509 certificate-based credentials.

  1. Logga in på Azure Portal med ditt Azure-konto.Sign in to the Azure portal using your Azure account.

  2. Välj Azure Active Directory > Appregistreringar > ny registrering.Select Azure Active Directory > App registrations > New registration.

  3. Ange ett namn för appen.Provide a name for the app.

  4. Välj lämpliga konto typer som stöds.Select the appropriate Supported account types.

  5. Under omdirigerings-URI väljer du webb som typ av app och (valfritt) ange en omdirigerings-URI om din app kräver det.Under Redirect URI, select Web as the app type, and (optionally) specify a redirect URI if your app requires it.

  6. När du har angett värdena väljer du Registrera.After setting the values, select Register. Appens registrering skapas och översikts sidan visas.The app registration is created and the Overview page displays.

  7. Kopiera program-ID: t så att det används i din app-kod.Copy the Application ID for use in your app code. Detta värde kallas även för klient-ID.This value is also referred to as the Client ID.

  8. Om du vill generera en klient hemlighet väljer du sidan certifikat & hemligheter .To generate a client secret, select the Certificates & secrets page. Välj Ny klienthemlighet.Select New client secret.

  9. Ange en Beskrivning av hemligheten och varaktigheten upphör att gälla .Provide a description for the secret, and an expires duration.

  10. När du är färdig väljer du Lägg till.When done, select Add.

  11. Värdet för hemligheten visas.The value of the secret displays. Kopiera och spara det här värdet på en annan plats, eftersom du inte kan hämta det senare.Copy and save this value in another location, because you can't retrieve it later. Du anger hemligheten med program-ID: t i klient programmet för inloggning.You provide the secret with the Application ID in your client app for sign-in.

    Sparad nyckel i klient hemligheter

Fortsätt nu med att tilldela en roll för att lära dig hur du etablerar rollbaserad åtkomst kontroll för appens identitet.Now proceed to Assign a role to learn how to establish role-based access control for the app's identity.

Hantera en AD FS app-identitetManage an AD FS app identity

Om du har distribuerat Azure Stack hubb med AD FS som identitets hanterings tjänst måste du använda PowerShell för att hantera appens identitet.If you deployed Azure Stack Hub with AD FS as your identity management service, you must use PowerShell to manage your app's identity. Nedan visas några exempel på hur du hanterar autentiseringsuppgifter för tjänstens huvud namn, som demonstrerar både ett X509-certifikat och en klient hemlighet.Examples are provided below for managing service principal credentials, demonstrating both an X509 certificate and a client secret.

Skripten måste köras i en utökad PowerShell-konsol ("kör som administratör"), som öppnar en annan session till en virtuell dator som är värd för en privilegie rad slut punkt för Azure Stack Hub-instansen.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. När den behöriga slut punkts sessionen har upprättats, kommer ytterligare cmdlets att köra och hantera tjänstens huvud namn.Once the privileged endpoint session has been established, additional cmdlets will execute and manage the service principal. Mer information om den privilegierade slut punkten finns i använda den privilegierade slut punkten i Azure Stack Hub.For more information about the privileged endpoint, see Using the privileged endpoint in Azure Stack Hub.

Skapa ett huvud namn för tjänsten som använder autentiseringsuppgifter för certifikatetCreate a service principal that uses a certificate credential

När du skapar autentiseringsuppgifter för certifikatet måste följande krav uppfyllas:When creating a certificate credential, the following requirements must be met:

  • För produktion måste certifikatet utfärdas från antingen en intern certifikat utfärdare eller en offentlig certifikat utfärdare.For production, the certificate must be issued from either an internal Certificate Authority or a Public Certificate Authority. När du använder en offentlig auktoritet måste du inkludera utfärdaren i den grundläggande operativ system avbildningen som en del av programmet Microsoft Trusted Root Authority.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. Du hittar den fullständiga listan på Microsoft Trusted Root Certificate program: deltagare.You can find the full list at Microsoft Trusted Root Certificate Program: Participants. Ett exempel på att skapa ett "självsignerat" test certifikat visas också senare under uppdatering av autentiseringsuppgifter för certifikatet.An example of creating a "self-signed" test certificate will also be shown later during Update a certificate credential.
  • Kryptografiprovidern måste anges som en Microsoft Legacy CSP-Provider (Cryptographic Service Provider).The cryptographic provider must be specified as a Microsoft legacy Cryptographic Service Provider (CSP) key provider.
  • Certifikat formatet måste vara i PFX-filen, eftersom både offentliga och privata nycklar krävs.The certificate format must be in PFX file, as both the public and private keys are required. Windows-servrar använder. PFX-filer som innehåller den offentliga nyckel filen (TLS/SSL-certifikatfil) och den tillhör ande privata nyckel filen.Windows servers use .pfx files that contain the public key file (TLS/SSL certificate file) and the associated private key file.
  • Din Azure Stack Hub-infrastruktur måste ha nätverks åtkomst till den certifikat utfärdarens lista över återkallade certifikat (CRL) publicerad i certifikatet.Your Azure Stack Hub infrastructure must have network access to the certificate authority's Certificate Revocation List (CRL) location published in the certificate. Denna CRL måste vara en HTTP-slutpunkt.This CRL must be an HTTP endpoint.

När du har ett certifikat kan du använda PowerShell-skriptet nedan för att registrera din app och skapa ett huvud namn för tjänsten.Once you have a certificate, use the PowerShell script below to register your app and create a service principal. Du kan också använda tjänstens huvud namn för att logga in på Azure.You also use the service principal to sign in to Azure. Ersätt dina egna värden för följande plats hållare:Substitute your own values for the following placeholders:

PlatshållarePlaceholder BeskrivningDescription ExempelExample
<PepVM> Namnet på den behöriga slut punktens virtuella dator på Azure Stack Hub-instansen.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourCertificateLocation> Platsen för ditt X509-certifikat i det lokala certifikat arkivet.The location of your X509 certificate in the local certificate store. "Cert: \ CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34""Cert:\CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34"
<YourAppName> Ett beskrivande namn för den nya appens registrering.A descriptive name for the new app registration. "Mina hanterings verktyg""My management tool"
  1. Öppna en upphöjd Windows PowerShell-session och kör följande skript.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. När skriptet har slutförts visas registrerings informationen för appen, inklusive autentiseringsuppgifterna för tjänstens huvud namn.After the script finishes, it displays the app registration info, including the service principal's credentials. ClientIDOch Thumbprint autentiseras och senare auktoriseras för åtkomst till resurser som hanteras av 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
    

Se till att PowerShell-konsolsessionen är öppen eftersom du använder den med ApplicationIdentifier värdet i nästa avsnitt.Keep your PowerShell console session open, as you use it with the ApplicationIdentifier value in the next section.

Uppdatera autentiseringsuppgifter för certifikatetUpdate a certificate credential

Nu när du har skapat ett huvud namn för tjänsten visar det här avsnittet hur du kan:Now that you created a service principal, this section will show you how to:

  1. Skapa ett nytt självsignerat X509-certifikat för testning.Create a new self-signed X509 certificate for testing.
  2. Uppdatera autentiseringsuppgifterna för tjänstens huvud namn genom att uppdatera dess tumavtryck -egenskap så att den matchar det nya certifikatet.Update the service principal's credentials, by updating its Thumbprint property to match the new certificate.

Uppdatera certifikatets autentiseringsuppgifter med PowerShell och ersätt dina egna värden för följande plats hållare:Update the certificate credential using PowerShell, substituting your own values for the following placeholders:

PlatshållarePlaceholder BeskrivningDescription ExempelExample
<PepVM> Namnet på den behöriga slut punktens virtuella dator på Azure Stack Hub-instansen.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourAppName> Ett beskrivande namn för den nya appens registrering.A descriptive name for the new app registration. "Mina hanterings verktyg""My management tool"
<YourCertificateLocation> Platsen för ditt X509-certifikat i det lokala certifikat arkivet.The location of your X509 certificate in the local certificate store. "Cert: \ CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34""Cert:\CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34"
<AppIdentifier> Identifieraren som tilldelats program registreringen.The identifier assigned to the application registration. "S-1-5-21-1512385356-3796245103-1243299919-1356""S-1-5-21-1512385356-3796245103-1243299919-1356"
  1. Kör följande cmdlets med en upphöjd Windows PowerShell-session: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. När skriptet har slutförts visas den uppdaterade appens registrerings information, inklusive tumavtryck-värdet för det nya självsignerade certifikatet.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
    

Skapa ett huvud namn för tjänsten som använder autentiseringsuppgifter för klient hemlighetCreate a service principal that uses client secret credentials

Varning

Att använda en klient hemlighet är mindre säkert än att använda autentiseringsuppgifter för X509-certifikat.Using a client secret is less secure than using an X509 certificate credential. Inte bara är autentiseringen mindre säker, men den kräver vanligt vis att du bäddar in hemligheten i klientens käll kod.Not only is the authentication mechanism less secure, but it also typically requires embedding the secret in the client app source code. För produktion av appar rekommenderas du därför starkt att använda autentiseringsuppgifter för certifikatet.As such, for production apps, you're strongly encouraged to use a certificate credential.

Nu skapar du en annan registrering av appen, men den här gången anger du autentiseringsuppgifter för en klient hemlighet.Now you create another app registration, but this time specify a client secret credential. Till skillnad från autentiseringsuppgifter för certifikat kan katalogen ge upphov till en klient hemlighet för autentisering.Unlike a certificate credential, the directory has the ability to generate a client secret credential. I stället för att ange klient hemligheten använder du -GenerateClientSecret växeln för att begära att den genereras.Instead of specifying the client secret, you use the -GenerateClientSecret switch to request that it be generated. Ersätt dina egna värden för följande plats hållare:Substitute your own values for the following placeholders:

PlatshållarePlaceholder BeskrivningDescription ExempelExample
<PepVM> Namnet på den behöriga slut punktens virtuella dator på Azure Stack Hub-instansen.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourAppName> Ett beskrivande namn för den nya appens registrering.A descriptive name for the new app registration. "Mina hanterings verktyg""My management tool"
  1. Öppna en upphöjd Windows PowerShell-session och kör följande cmdlet: ar: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. När skriptet har slutförts visas registrerings informationen för appen, inklusive autentiseringsuppgifterna för tjänstens huvud namn.After the script finishes, it displays the app registration info, including the service principal's credentials. ClientIDOch ClientSecret autentiseras och senare auktoriseras för åtkomst till resurser som hanteras av 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
    

Se till att PowerShell-konsolsessionen är öppen eftersom du använder den med ApplicationIdentifier värdet i nästa avsnitt.Keep your PowerShell console session open, as you use it with the ApplicationIdentifier value in the next section.

Uppdatera en klient hemlighetUpdate a client secret

Uppdatera klient hemlighetens autentiseringsuppgifter med PowerShell med hjälp av parametern ResetClientSecret , som omedelbart ändrar klient hemligheten.Update the client secret credential using PowerShell, using the ResetClientSecret parameter, which immediately changes the client secret. Ersätt dina egna värden för följande plats hållare:Substitute your own values for the following placeholders:

PlatshållarePlaceholder BeskrivningDescription ExempelExample
<PepVM> Namnet på den behöriga slut punktens virtuella dator på Azure Stack Hub-instansen.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<AppIdentifier> Identifieraren som tilldelats program registreringen.The identifier assigned to the application registration. "S-1-5-21-1634563105-1224503876-2692824315-2623""S-1-5-21-1634563105-1224503876-2692824315-2623"
  1. Kör följande cmdlets med en upphöjd Windows PowerShell-session: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. När skriptet har slutförts visas den uppdaterade appens registrerings information, inklusive den nyligen genererade klient hemligheten.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
    

Ta bort ett huvud namn för tjänstenRemove a service principal

Nu kommer du att se hur du tar bort eller tar bort en app-registrering från din katalog och dess associerade tjänst huvud objekt med PowerShell.Now you'll see how to remove/delete an app registration from your directory, and its associated service principal object, using PowerShell.

Ersätt dina egna värden för följande plats hållare:Substitute your own values for the following placeholders:

PlatshållarePlaceholder BeskrivningDescription ExempelExample
<PepVM> Namnet på den behöriga slut punktens virtuella dator på Azure Stack Hub-instansen.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<AppIdentifier> Identifieraren som tilldelats program registreringen.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>"}

Inga utdata returneras från anrop till Remove-GraphApplication-cmdlet: en på den privilegierade slut punkten, men du ser orda Grant bekräftelse-utdata till konsolen när du kör cmdlet: en: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

Tilldela en rollAssign a role

Åtkomst till Azure-resurser av användare och appar tillåts via Role-Based Access Control (RBAC).Access to Azure resources by users and apps is authorized through Role-Based Access Control (RBAC). Om du vill tillåta att en app får åtkomst till resurser i din prenumeration måste du tilldela dess tjänst huvud namn till en roll för en speciell resurs.To allow an app to access resources in your subscription, you must assign its service principal to a role for a specific resource. Bestäm först vilken roll som representerar rätt behörigheter för appen.First decide which role represents the right permissions for the app. Mer information om tillgängliga roller finns inbyggda roller för Azure-resurser.To learn about the available roles, see Built-in roles for Azure resources.

Vilken typ av resurs du väljer bestämmer också åtkomstscope för appen.The type of resource you choose also establishes the access scope for the app. Du kan ställa in åtkomstscope på prenumerationen, resurs gruppen eller resurs nivån.You can set the access scope at the subscription, resource group, or resource level. Behörigheter ärvs till lägre omfattnings nivåer.Permissions are inherited to lower levels of scope. Om du till exempel lägger till en app i rollen "läsare" för en resurs grupp innebär det att den kan läsa resurs gruppen och alla resurser den innehåller.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. Logga in på lämplig Portal, baserat på den katalog du angav under Azure Stack Hub-installationen (Azure Portal för Azure AD eller Azure Stack hubb användar portalen för AD FS, till exempel).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). I det här exemplet visar vi en användare som är inloggad på Azure Stack hubb användar portalen.In this example, we show a user signed in to the Azure Stack Hub user portal.

    Anteckning

    Om du vill lägga till roll tilldelningar för en specifik resurs måste ditt användar konto tillhöra en roll som deklarerar Microsoft.Authorization/roleAssignments/write behörigheten.To add role assignments for a given resource, your user account must belong to a role that declares the Microsoft.Authorization/roleAssignments/write permission. Till exempel kan du antingen använda de inbyggda rollerna ägare eller användar åtkomst administratör .For example, either the Owner or User Access Administrator built-in roles.

  2. Navigera till den resurs som du vill tillåta att appen får åtkomst till.Navigate to the resource you wish to allow the app to access. I det här exemplet tilldelar du appens tjänstens huvud namn till en roll i prenumerations omfånget genom att välja prenumerationer, sedan en speciell prenumeration.In this example, assign the app's service principal to a role at the subscription scope, by selecting Subscriptions, then a specific subscription. Du kan i stället välja en resurs grupp eller en speciell resurs som en virtuell dator.You could instead select a resource group, or a specific resource like a virtual machine.

    Välj prenumeration för tilldelning

  3. Välj sidan Access Control (IAM) , som är universell för alla resurser som stöder RBAC.Select the Access Control (IAM) page, which is universal across all resources that support RBAC.

  4. Välj + Lägg tillSelect + Add

  5. Under roll väljer du den roll som du vill tilldela appen.Under Role, pick the role you wish to assign to the app.

  6. Under Välj söker du efter din app med ett fullständigt eller partiellt program namn.Under Select, search for your app using a full or partial Application Name. Under registreringen genereras program namnet som Azurestack- <YourAppName> - <ClientId>.During registration, the Application Name is generated as Azurestack-<YourAppName>-<ClientId>. Om du till exempel använde ett program namn för APP2 och ClientId 2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff hade tilldelats under skapandet, skulle det fullständiga namnet vara Azurestack-APP2-2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff.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. Du kan söka efter antingen den exakta strängen eller en del, som Azurestack eller Azurestack-APP2.You can search for either the exact string, or a portion, like Azurestack or Azurestack-App2.

  7. När du har hittat appen väljer du den så visas den under valda medlemmar.Once you find the app, select it and it will show under Selected members.

  8. Välj Spara för att slutföra tilldelningen av rollen.Select Save to finish assigning the role.

    Tilldela rollenAssign role

  9. När du är färdig visas appen i listan över huvud konton som tilldelats för det aktuella omfånget för den angivna rollen.When finished, the app will show in the list of principals assigned for the current scope, for the given role.

    Tilldelad rollAssigned role

Nu när du har gett appen en identitet och godkänt den för resurs åtkomst kan du aktivera skriptet eller koden för att logga in och få säker åtkomst till Azure Stack Hub-resurser.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.

Nästa stegNext steps

Hantera användarbehörigheterManage user permissions
Azure Active Directory dokumentationAzure Active Directory Documentation
Konfigurera Active Directory Federation Services (AD FS)Active Directory Federation Services