Alkalmazás-identitás használata Azure Stack hub-erőforrások eléréséhezUse an app identity to access Azure Stack Hub resources

Egy olyan alkalmazást, amelynek a Azure Resource Manageron keresztül kell telepítenie vagy konfigurálnia az erőforrásokat, a saját identitásának kell képviselnie.An application that needs to deploy or configure resources through Azure Resource Manager must be represented by its own identity. Ugyanúgy, ahogy a felhasználó egy egyszerű rendszerbiztonsági tag, az alkalmazást egy egyszerű szolgáltatásnév képviseli.Just as a user is represented by a security principal called a user principal, an app is represented by a service principal.

Az egyszerű szolgáltatásnév lehetővé teszi, hogy csak a szükséges engedélyeket delegálja az alkalmazásnak.The service principal identity allows you to delegate only the necessary permissions to the app. Előfordulhat például, hogy egy Configuration Management alkalmazás az Azure-erőforrások leltározásához Azure Resource Manager használ.For example, a configuration management app might use Azure Resource Manager to inventory Azure resources. Ebben az esetben létrehoz egy egyszerű szolgáltatásnevet, megadja a "olvasó" szerepkört az egyszerű szolgáltatásnak, és a Configuration Management alkalmazást csak olvasási hozzáférésre korlátozza.In this scenario, you create a service principal, grant the "reader" role to that service principal, and limit the configuration management app to read-only access.

ÁttekintésOverview

A felhasználóhoz hasonlóan az alkalmazásnak hitelesítő adatokat kell megadnia a hitelesítés során, amelyhez két elem szükséges:Like a user, an app must present credentials during authentication, which requires two elements:

  • Egy alkalmazás-azonosító, más néven ügyfél-azonosító.An Application ID, sometimes referred to as a Client ID. Egy GUID, amely egyedileg azonosítja az alkalmazás regisztrációját a Active Directory-bérlőben.A GUID that uniquely identifies the app's registration in your Active Directory tenant.
  • Az alkalmazás-AZONOSÍTÓhoz tartozó titok .A secret associated with the application ID. Létrehozhat egy ügyfél titkos karakterláncot (a jelszóhoz hasonlóan), vagy megadhat egy X509-tanúsítvány ujjlenyomatát (amely a nyilvános kulcsot használja).You can either generate a client secret string (similar to a password), or specify an X509 certificate thumbprint (which uses its public key).

Ha a saját identitása alatt futtat egy alkalmazást, az a következő okok miatt előnyösebb a felhasználó identitásának futtatásakor:Running an app under its own identity is preferable to running it under the user's identity for the following reasons:

  • Erősebb hitelesítő adatok – az alkalmazások egy X509 tanúsítvány használatával jelentkezhetnek be, és nem egy szöveges, közös titkos kulcs/jelszó helyett.Stronger credentials - an app can sign in using an X509 certificate, instead of a textual shared secret/password.
  • Egy alkalmazáshoz több korlátozó engedély is rendelhető.More restrictive permissions can be assigned to an app. Ezek az engedélyek jellemzően csak az alkalmazás működéséhez szükségesek, azaz a legalacsonyabb jogosultsági szint elve.Typically, these permissions are restricted to only what the app needs to do, known as the principle of least privilege.
  • A hitelesítő adatok és az engedélyek nem változnak gyakran az alkalmazás felhasználói hitelesítő adataiként.Credentials and permissions don't change as frequently for an app as user credentials. Ha például a felhasználó feladatai változnak, a jelszóra vonatkozó követelmények megszabják a változást, vagy amikor egy felhasználó elhagyja a vállalatot.For example, when the user's responsibilities change, password requirements dictate a change, or when a user leaves the company.

Első lépésként hozzon létre egy új alkalmazást a címtárban, amely létrehoz egy társított egyszerű objektumot , amely az alkalmazás identitását jelöli a címtárban.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. A regisztrációs folyamat a Azure Stack hub-példányhoz választott könyvtártól függ:The registration process varies depending on the directory you chose for your Azure Stack Hub instance:

  • Azure Active Directory (Azure ad): az Azure ad egy több-bérlős, felhőalapú, címtár-és Identitáskezelés-kezelő szolgáltatás.Azure Active Directory (Azure AD): Azure AD is a multi-tenant, cloud-based, directory and identity management service. Az Azure AD-t egy csatlakoztatott Azure Stack hub-példánnyal is használhatja.You can use Azure AD with a connected Azure Stack Hub instance. A később bemutatott példák az Azure AD-alkalmazás regisztrálásának Azure Portal fogják használni.The examples presented later will use the Azure portal for Azure AD app registration.
  • Active Directory összevonási szolgáltatások (AD FS) (AD FS): a AD FS egyszerűsített, biztonságos identitás-összevonást és webes egyszeri bejelentkezési (SSO) képességeket biztosít.Active Directory Federation Services (AD FS): AD FS provides simplified, secured identity federation, and web single sign-on (SSO) capabilities. AD FS a csatlakoztatott és a leválasztott Azure Stack hub-példányokkal is használható.You can use AD FS with both connected and disconnected Azure Stack Hub instances. A később bemutatott példák a Azure Stack hub PowerShellt fogják használni AD FS alkalmazás regisztrálásához.The examples presented later will use Azure Stack Hub PowerShell for AD FS app registration.

Az alkalmazás identitásának létrehozása után megismerheti, hogyan rendelheti hozzá az egyszerű szolgáltatást egy szerepkörhöz, és korlátozza az erőforrás-hozzáférését.After creating the app's identity you learn how to assign its service principal to a role, limiting its resource access.

Azure AD-alkalmazás identitásának kezeléseManage an Azure AD app identity

Ha az Azure AD-val telepítette Azure Stack hubot az Identity Management szolgáltatásként, az alkalmazás identitásait ugyanúgy hozhatja létre és kezelheti, mint az Azure-ban.If you deployed Azure Stack Hub with Azure AD as your identity management service, you create and manage app identities just like you do for Azure. Ez a szakasz bemutatja, hogyan hajthatja végre a lépéseket a Azure Portal használatával.This section shows you how to perform the steps using the Azure portal. Tekintse át az alkalmazások regisztrálásához szükséges engedélyeket , hogy meggyőződjön arról, hogy rendelkezik-e megfelelő engedélyekkel az alkalmazás regisztrálásához.Review Permissions required for registering an app before beginning, to make sure you have sufficient permissions to register an app.

Ügyfél-titkos hitelesítő adatokat használó alkalmazás-regisztráció létrehozásaCreate an app registration that uses a client secret credential

Ebben a szakaszban a Azure Portal használatával regisztrálja az alkalmazást az Azure AD-bérlőben.In this section, you register your app in your Azure AD tenant using the Azure portal. Az alábbi példában megadhatja az ügyfél titkos hitelesítő adatait, de a portál támogatja a X509-tanúsítványon alapuló hitelesítő adatokat is.In following example you specify a client secret credential, but the portal also supports X509 certificate-based credentials.

  1. Jelentkezzen be a Azure Portalba az Azure-fiók használatával.Sign in to the Azure portal using your Azure account.

  2. Válassza Azure Active Directory > Alkalmazásregisztrációk > új regisztráció lehetőséget.Select Azure Active Directory > App registrations > New registration.

  3. Adja meg az alkalmazás nevét .Provide a name for the app.

  4. Válassza ki a megfelelő támogatott fióktípus-típusokat.Select the appropriate Supported account types.

  5. Az átirányítási URI területen válassza a web lehetőséget az alkalmazás típusaként, és (opcionálisan) adjon meg egy átirányítási URI-t, ha az alkalmazáshoz szükség van.Under Redirect URI, select Web as the app type, and (optionally) specify a redirect URI if your app requires it.

  6. Az értékek beállítása után válassza a regisztráció lehetőséget.After setting the values, select Register. Ekkor létrejön az alkalmazás regisztrálása, és megjelenik az Áttekintés oldal.The app registration is created and the Overview page displays.

  7. Másolja az alkalmazás azonosítóját az alkalmazás kódjában való használatra.Copy the Application ID for use in your app code. Ezt az értéket ügyfél-AZONOSÍTÓnak is nevezzük.This value is also referred to as the Client ID.

  8. Az ügyfél titkos kulcsának létrehozásához válassza a tanúsítványok & titkok lapot.To generate a client secret, select the Certificates & secrets page. Válassza az Új titkos ügyfélkód lehetőséget.Select New client secret.

  9. Adja meg a titkos kulcs leírását , valamint a lejárat időtartamát.Provide a description for the secret, and an expires duration.

  10. Ha elkészült, válassza a Hozzáadás lehetőséget.When done, select Add.

  11. A titkos kód megjelenített értéke.The value of the secret displays. Másolja és mentse ezt az értéket egy másik helyre, mert később nem lehet lekérni.Copy and save this value in another location, because you can't retrieve it later. A bejelentkezéshez adja meg a titkot az ügyfélalkalmazás alkalmazás-azonosítójával.You provide the secret with the Application ID in your client app for sign-in.

    Kulcs mentve az ügyfél titkos kulcsaiban

Most folytassa egy szerepkör hozzárendelésével , amelyből megtudhatja, hogyan hozhat létre szerepköralapú hozzáférés-vezérlést az alkalmazás identitásához.Now proceed to Assign a role to learn how to establish role-based access control for the app's identity.

AD FS alkalmazás identitásának kezeléseManage an AD FS app identity

Ha Azure Stack hub-t az Identity Management szolgáltatással AD FS, akkor a PowerShell használatával kell kezelnie az alkalmazás identitását.If you deployed Azure Stack Hub with AD FS as your identity management service, you must use PowerShell to manage your app's identity. Az alábbi példákban egy X509-tanúsítvány és egy ügyfél-titkos hitelesítő adat is látható.The following examples demonstrate both an X509 certificate and a client secret credential.

A parancsfájlokat emelt szintű ("Futtatás rendszergazdaként") PowerShell-konzolon kell futtatni, amely egy másik munkamenetet nyit meg egy olyan virtuális géphez, amely az Azure Stack hub-példányhoz tartozó Kiemelt végpontot üzemeltet.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. Miután létrejött a jogosultsági szintű végponti munkamenet, további parancsmagokat használ az alkalmazások regisztrálásához és kezeléséhez.Once the privileged endpoint session has been established, additional cmdlets are used to create and manage the app registration. A Kiemelt végponttal kapcsolatos további információkért lásd: a privilegizált végpont használata Azure stack központban.For more information about the privileged endpoint, see Using the privileged endpoint in Azure Stack Hub.

Tanúsítvány hitelesítő adatait használó alkalmazás-regisztráció létrehozásaCreate an app registration that uses a certificate credential

A tanúsítvány hitelesítő adatainak létrehozásakor a következő követelményeknek kell teljesülniük:When creating a certificate credential, the following requirements must be met:

  • Éles környezetben a tanúsítványt belső hitelesítésszolgáltatótól vagy nyilvános hitelesítésszolgáltatótól kell kibocsátani.For production, the certificate must be issued from either an internal Certificate Authority or a Public Certificate Authority. Nyilvános szolgáltató használata esetén a szolgáltatót a Microsoft megbízható legfelső szintű felügyeleti programjának részeként kell szerepeltetni az operációs rendszer alaprendszerképében.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. A teljes listát lásd: résztvevők listája – Microsoft megbízható legfelső szintű program.For the full list, see List of Participants - Microsoft Trusted Root Program. A tanúsítvány hitelesítő adatainak frissítésesorán később egy "önaláírt" teszt-tanúsítvány létrehozására is példa jelenik meg.An example of creating a "self-signed" test certificate will also be shown later during Update a certificate credential.
  • A kriptográfiai szolgáltatót a Microsoft örökölt kriptográfiai szolgáltató (CSP) kulcs szolgáltatójának kell megadnia.The cryptographic provider must be specified as a Microsoft legacy Cryptographic Service Provider (CSP) key provider.
  • A tanúsítvány formátumának PFX-fájlban kell lennie, mivel a nyilvános és a titkos kulcs is kötelező.The certificate format must be in PFX file, as both the public and private keys are required. A Windows-kiszolgálók a nyilvános kulcsfájl (TLS/SSL-tanúsítványfájl) és a hozzá tartozó titkos kulcs fájlját tartalmazó. pfx fájlokat használják.Windows servers use .pfx files that contain the public key file (TLS/SSL certificate file) and the associated private key file.
  • Az Azure Stack hub-infrastruktúrának a tanúsítványban közzétett tanúsítvány-visszavonási lista (CRL) elérési helyéhez hálózati hozzáféréssel kell rendelkeznie.Your Azure Stack Hub infrastructure must have network access to the certificate authority's Certificate Revocation List (CRL) location published in the certificate. A CRL-nek HTTP-végpontnak kell lennie.This CRL must be an HTTP endpoint.

A tanúsítvány használata után az alábbi PowerShell-szkripttel regisztrálja az alkalmazást, és jelentkezzen be az egyszerű szolgáltatásnév használatával.Once you have a certificate, use the PowerShell script below to register your app and sign in using the service principal. Helyettesítse be a saját értékeit a következő helyőrzők esetében:Substitute your own values for the following placeholders:

HelyőrzőPlaceholder LeírásDescription PéldaExample
<PepVM> A rendszerjogosultságú végpont virtuális gép neve a Azure Stack hub-példányon.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourCertificateLocation> A X509-tanúsítvány helye a helyi tanúsítványtárolóban.The location of your X509 certificate in the local certificate store. "Tanúsítvány: \ CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34""Cert:\CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34"
<YourAppName> Az új alkalmazás regisztrálásának leíró neve.A descriptive name for the new app registration. "Saját felügyeleti eszköz""My management tool"
  1. Nyisson meg egy rendszergazda jogú Windows PowerShell-munkamenetet, és futtassa az alábbi szkriptet.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 -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # 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. A parancsfájl befejeződése után megjeleníti az alkalmazás regisztrációs adatait, beleértve az egyszerű szolgáltatásnév hitelesítő adatait.After the script finishes, it displays the app registration info, including the service principal's credentials. A ClientID és a Thumbprint hitelesítve van, és később jogosultak a Azure Resource Manager által felügyelt erőforrásokhoz való hozzáférésre.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
    

Tartsa megnyitva a PowerShell-konzol munkamenetét, ahogy azt a ApplicationIdentifier következő szakaszban szereplő értékkel használja.Keep your PowerShell console session open, as you use it with the ApplicationIdentifier value in the next section.

Tanúsítvány hitelesítő adatainak frissítéseUpdate a certificate credential

Most, hogy regisztrálta az alkalmazást, ez a szakasz bemutatja, hogyan végezheti el a következőket:Now that you registered the application, this section will show you how to:

  1. Hozzon létre egy új, önaláírt X509-tanúsítványt a teszteléshez.Create a new self-signed X509 certificate for testing.
  2. Frissítse az egyszerű szolgáltatásnév hitelesítő adatait úgy, hogy az ujjlenyomat -tulajdonságát az új tanúsítványnak megfelelően frissíti.Update the service principal's credentials, by updating its Thumbprint property to match the new certificate.

Frissítse a tanúsítvány hitelesítő adatait a PowerShell használatával, és helyettesítse be a saját értékeit a következő helyőrzők esetében:Update the certificate credential using PowerShell, substituting your own values for the following placeholders:

HelyőrzőPlaceholder LeírásDescription PéldaExample
<PepVM> A rendszerjogosultságú végpont virtuális gép neve a Azure Stack hub-példányon.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourAppName> Az új alkalmazás regisztrálásának leíró neve.A descriptive name for the new app registration. "Saját felügyeleti eszköz""My management tool"
<YourCertificateLocation> A X509-tanúsítvány helye a helyi tanúsítványtárolóban.The location of your X509 certificate in the local certificate store. "Tanúsítvány: \ CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34""Cert:\CurrentUser\My\AB5A8A3533CC7AA2025BF05120117E06DE407B34"
<AppIdentifier> Az alkalmazás regisztrálásához hozzárendelt azonosító.The identifier assigned to the application registration. "S-1-5-21-1512385356-3796245103-1243299919-1356""S-1-5-21-1512385356-3796245103-1243299919-1356"
  1. Futtassa a következő parancsmagokat a rendszergazda jogú Windows PowerShell-munkamenet használatával: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 -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # 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. A parancsfájl befejeződése után megjeleníti az alkalmazás frissített regisztrációs adatait, beleértve az új önaláírt tanúsítvány ujjlenyomat értékét.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
    

Ügyfél-titkos hitelesítő adatokat használó alkalmazás-regisztráció létrehozásaCreate an app registration that uses a client secret credential

Figyelmeztetés

Az ügyfél titkos kulcsa kevésbé biztonságos, mint a X509-tanúsítvány hitelesítő adatainak használata.Using a client secret is less secure than using an X509 certificate credential. A hitelesítési mechanizmus nem csupán kevésbé biztonságos, de általában a titkos kulcs beágyazását igényli az ügyfélalkalmazás forráskódjában.Not only is the authentication mechanism less secure, but it also typically requires embedding the secret in the client app source code. Az éles alkalmazások esetében javasoljuk, hogy a tanúsítvány hitelesítő adatait használja.As such, for production apps, you're strongly encouraged to use a certificate credential.

Most létrehoz egy másik alkalmazás-regisztrációt, de ezúttal megadja az ügyfél titkos hitelesítő adatait.Now you create another app registration, but this time specify a client secret credential. A tanúsítvány hitelesítő adataival ellentétben a címtár képes az ügyfél titkos hitelesítő adatainak előállítására.Unlike a certificate credential, the directory has the ability to generate a client secret credential. Az ügyfél titkos kulcsának meghatározása helyett a kapcsolóval kell megadnia a -GenerateClientSecret létrehozását.Instead of specifying the client secret, you use the -GenerateClientSecret switch to request that it be generated. Helyettesítse be a saját értékeit a következő helyőrzők esetében:Substitute your own values for the following placeholders:

HelyőrzőPlaceholder LeírásDescription PéldaExample
<PepVM> A rendszerjogosultságú végpont virtuális gép neve a Azure Stack hub-példányon.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<YourAppName> Az új alkalmazás regisztrálásának leíró neve.A descriptive name for the new app registration. "Saját felügyeleti eszköz""My management tool"
  1. Nyisson meg egy rendszergazda jogú Windows PowerShell-munkamenetet, és futtassa a következő parancsmagokat: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 -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # 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. A parancsfájl befejeződése után megjeleníti az alkalmazás regisztrációs adatait, beleértve az egyszerű szolgáltatásnév hitelesítő adatait.After the script finishes, it displays the app registration info, including the service principal's credentials. A ClientID és a ClientSecret hitelesítve van, és később jogosultak a Azure Resource Manager által felügyelt erőforrásokhoz való hozzáférésre.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
    

Tartsa megnyitva a PowerShell-konzol munkamenetét, ahogy azt a ApplicationIdentifier következő szakaszban szereplő értékkel használja.Keep your PowerShell console session open, as you use it with the ApplicationIdentifier value in the next section.

Ügyfél titkos hitelesítő adatainak frissítéseUpdate a client secret credential

Frissítse az ügyfél titkos hitelesítő adatait a PowerShell használatával a ResetClientSecret paraméter használatával, amely azonnal megváltoztatja az ügyfél titkos kulcsát.Update the client secret credential using PowerShell, using the ResetClientSecret parameter, which immediately changes the client secret. Helyettesítse be a saját értékeit a következő helyőrzők esetében:Substitute your own values for the following placeholders:

HelyőrzőPlaceholder LeírásDescription PéldaExample
<PepVM> A rendszerjogosultságú végpont virtuális gép neve a Azure Stack hub-példányon.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<AppIdentifier> Az alkalmazás regisztrálásához hozzárendelt azonosító.The identifier assigned to the application registration. "S-1-5-21-1634563105-1224503876-2692824315-2623""S-1-5-21-1634563105-1224503876-2692824315-2623"
  1. Futtassa a következő parancsmagokat a rendszergazda jogú Windows PowerShell-munkamenet használatával: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 -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # 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. A szkript befejeződése után megjeleníti az alkalmazás frissített regisztrációs adatait, beleértve az újonnan létrehozott ügyfél-titkos kulcsot is.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
    

Alkalmazás regisztrációjának eltávolításaRemove an app registration

Most megtudhatja, hogyan távolíthat el vagy törölhet egy alkalmazás-regisztrációt a címtárból, valamint a hozzá tartozó szolgáltatásnév-objektumot a PowerShell használatával.Now you'll see how to remove/delete an app registration from your directory, and its associated service principal object, using PowerShell.

Helyettesítse be a saját értékeit a következő helyőrzők esetében:Substitute your own values for the following placeholders:

HelyőrzőPlaceholder LeírásDescription PéldaExample
<PepVM> A rendszerjogosultságú végpont virtuális gép neve a Azure Stack hub-példányon.The name of the privileged endpoint VM on your Azure Stack Hub instance. "AzS-ERCS01""AzS-ERCS01"
<AppIdentifier> Az alkalmazás regisztrálásához hozzárendelt azonosító.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 -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# 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>"}

Az Remove-GraphApplication parancsmag nem hívható vissza a privilegizált végponton, de a parancsmag végrehajtása során a rendszer a következőt jeleníti meg a konzolon: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

Szerepkör kiosztásaAssign a role

A felhasználók és alkalmazások az Azure-erőforrásokhoz való hozzáférését Role-Based Access Control (RBAC) engedélyezik.Access to Azure resources by users and apps is authorized through Role-Based Access Control (RBAC). Ahhoz, hogy egy alkalmazás hozzáférhessen az előfizetéshez tartozó erőforrásokhoz, hozzá kell rendelnie az egyszerű szolgáltatást egy adott erőforráshoz tartozó szerepkörhöz .To allow an app to access resources in your subscription, you must assign its service principal to a role for a specific resource. Először döntse el, hogy melyik szerepkör felel meg az alkalmazás megfelelő engedélyeinek .First decide which role represents the right permissions for the app. Az elérhető szerepkörökről az Azure-erőforrások beépített szerepköreivelfoglalkozó témakörben olvashat bővebben.To learn about the available roles, see Built-in roles for Azure resources.

A választott erőforrás típusa az alkalmazás hozzáférési hatókörét is létrehozza.The type of resource you choose also establishes the access scope for the app. Megadhatja a hozzáférési hatókört az előfizetés, az erőforráscsoport vagy az erőforrás szintjén.You can set the access scope at the subscription, resource group, or resource level. Az engedélyek a hatókör alacsonyabb szintjein vannak örökölve.Permissions are inherited to lower levels of scope. Ha például hozzáad egy alkalmazást az erőforráscsoport "olvasó" szerepköréhez, az azt jelenti, hogy elolvashatja az erőforráscsoportot és a benne foglalt erőforrásokat.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. Jelentkezzen be a megfelelő portálra a Azure Stack hub telepítésekor megadott könyvtár alapján (az Azure AD-Azure Portal vagy a AD FS Azure Stack hub felhasználói portálján, például:).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). Ebben a példában egy felhasználó bejelentkezett a Azure Stack hub felhasználói portálra.In this example, we show a user signed in to the Azure Stack Hub user portal.

    Megjegyzés

    Egy adott erőforráshoz tartozó szerepkör-hozzárendelések hozzáadásához a felhasználói fióknak olyan szerepkörhöz kell tartoznia, amely deklarálja az Microsoft.Authorization/roleAssignments/write engedélyt.To add role assignments for a given resource, your user account must belong to a role that declares the Microsoft.Authorization/roleAssignments/write permission. Például a tulajdonos vagy a felhasználói hozzáférés rendszergazdai beépített szerepkörei.For example, either the Owner or User Access Administrator built-in roles.

  2. Navigáljon ahhoz az erőforráshoz, amely számára engedélyezni szeretné az alkalmazás elérését.Navigate to the resource you wish to allow the app to access. Ebben a példában az alkalmazás egyszerű szolgáltatását rendeli hozzá egy szerepkörhöz az előfizetés hatókörében, az előfizetések, majd egy adott előfizetés kiválasztásával.In this example, assign the app's service principal to a role at the subscription scope, by selecting Subscriptions, then a specific subscription. Ehelyett kijelölhet egy erőforráscsoportot, vagy egy adott erőforrást, például egy virtuális gépet.You could instead select a resource group, or a specific resource like a virtual machine.

    Előfizetés kiválasztása hozzárendeléshez

  3. Válassza ki a Access Control (iam) lapot, amely univerzális a RBAC támogató összes erőforráson.Select the Access Control (IAM) page, which is universal across all resources that support RBAC.

  4. Válassza a + Hozzáadás lehetőségetSelect + Add

  5. A szerepkör területen válassza ki az alkalmazáshoz hozzárendelni kívánt szerepkört.Under Role, pick the role you wish to assign to the app.

  6. A kiválasztás területen keresse meg az alkalmazást teljes vagy részleges alkalmazásnév használatával.Under Select, search for your app using a full or partial Application Name. A regisztráció során az alkalmazás neve Azurestack- <YourAppName> - <ClientId> ként jön létre.During registration, the Application Name is generated as Azurestack-<YourAppName>-<ClientId>. Ha például a App2 nevű alkalmazás nevét használta, és a ClientId 2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff a létrehozás során lett hozzárendelve, a teljes név a következő lesz: 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. Megkeresheti a pontos karakterláncot vagy egy részét, például a Azurestack vagy a Azurestack-App2.You can search for either the exact string, or a portion, like Azurestack or Azurestack-App2.

  7. Miután megtalálta az alkalmazást, jelölje ki, és a kijelölt tagok területen fog megjelenni.Once you find the app, select it and it will show under Selected members.

  8. A szerepkör hozzárendelésének befejezéséhez kattintson a Mentés gombra.Select Save to finish assigning the role.

    Szerepkör hozzárendeléseAssign role

  9. Ha elkészült, az alkalmazás megjelenik az aktuális hatókörhöz rendelt rendszerbiztonsági tag listájában a megadott szerepkörhöz.When finished, the app will show in the list of principals assigned for the current scope, for the given role.

    Hozzárendelt szerepkörAssigned role

Most, hogy megadta az alkalmazás identitását, és engedélyezte azt az erőforrás-hozzáféréshez, engedélyezheti a parancsfájlt vagy a kódot a bejelentkezéshez és a Azure Stack hub-erőforrások biztonságos eléréséhez.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.

Következő lépésekNext steps

Felhasználói engedélyek kezeléseManage user permissions
Azure Active Directory dokumentációAzure Active Directory Documentation
Active Directory összevonási szolgáltatásokActive Directory Federation Services