Gewusst wie: Erstellen einer Azure AD-Anwendung und eines Dienstprinzipals mit Ressourcenzugriff über das PortalHow to: Use the portal to create an Azure AD application and service principal that can access resources

In diesem Artikel wird beschrieben, wie Sie eine neue Azure Active Directory-Anwendung (Azure AD) und einen Dienstprinzipal erstellen, der mit der rollenbasierten Zugriffssteuerung verwendet werden kann.This article shows you how to create a new Azure Active Directory (Azure AD) application and service principal that can be used with the role-based access control. Wenn Sie über Anwendungen, gehostete Dienste oder automatische Tools verfügen, für die der Zugriff auf oder die Änderung von Ressourcen erforderlich ist, können Sie eine Identität für die App erstellen.When you have applications, hosted services, or automated tools that needs to access or modify resources, you can create an identity for the app. Diese Identität wird als Dienstprinzipal bezeichnet.This identity is known as a service principal. Der Zugriff auf Ressourcen wird durch die dem Dienstprinzipal zugewiesenen Rollen eingeschränkt. Dadurch können Sie steuern, auf welcher Ebene auf welche Ressourcen zugegriffen werden kann.Access to resources is restricted by the roles assigned to the service principal, giving you control over which resources can be accessed and at which level. Aus Sicherheitsgründen wird stets empfohlen, Dienstprinzipale mit automatisierten Tools zu verwenden, statt ihnen die Anmeldung mit einer Benutzeridentität zu erlauben.For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.

In diesem Artikel wird veranschaulicht, wie Sie das Portal zum Erstellen des Dienstprinzipals im Azure-Portal verwenden.This article shows you how to use the portal to create the service principal in the Azure portal. Er konzentriert sich auf eine Anwendung mit nur einem Mandanten, die nur zur Ausführung in einer einzigen Organisation vorgesehen ist.It focuses on a single-tenant application where the application is intended to run within only one organization. Anwendungen mit nur einem Mandanten werden in der Regel für innerhalb Ihrer Organisation ausgeführte Branchenanwendungen verwendet.You typically use single-tenant applications for line-of-business applications that run within your organization. Sie können auch Azure PowerShell zum Erstellen eines Dienstprinzipals mit einem Zertifikat verwenden.You can also use Azure PowerShell to create a service principal.

Wichtig

Anstatt einen Dienstprinzipal zu erstellen, sollten Sie die Verwendung verwalteter Identitäten für Azure-Ressourcen für Ihre Anwendungsidentität erwägen.Instead of creating a service principal, consider using managed identities for Azure resources for your application identity. Wenn Ihr Code unter einem Dienst ausgeführt wird, der verwaltete Identitäten unterstützt und auf Ressourcen zugreift, die die Azure AD-Authentifizierung unterstützen, sind verwaltete Identitäten für Sie die besser geeignete Option.If your code runs on a service that supports managed identities and accesses resources that support Azure AD authentication, managed identities are a better option for you. Weitere Informationen zu verwalteten Identitäten für Azure-Ressourcen (z.B. auch zu den Diensten, die diese zurzeit unterstützen) finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?To learn more about managed identities for Azure resources, including which services currently support it, see What is managed identities for Azure resources?.

App-Registrierung, App-Objekte und DienstprinzipaleApp registration, app objects, and service principals

Es gibt keine Möglichkeit, einen Dienstprinzipal direkt im Azure-Portal zu erstellen.There is no way to directly create a service principal using the Azure portal. Wenn Sie eine Anwendung über das Azure-Portal registrieren, werden automatisch ein Anwendungsobjekt und ein Dienstprinzipal für Ihr Basisverzeichnis bzw. Ihren Mandanten erstellt.When you register an application through the Azure portal, an application object and service principal are automatically created in your home directory or tenant. Weitere Informationen zu den Beziehungen zwischen App-Registrierung, Anwendungsobjekten und Dienstprinzipalen finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Azure Active Directory.For more information on the relationship between app registration, application objects, and service principals, read Application and service principal objects in Azure Active Directory.

Erforderliche Berechtigungen zum Registrieren einer AppPermissions required for registering an app

Sie müssen über ausreichende Berechtigungen verfügen, um eine Anwendung bei Ihrem Azure AD-Mandanten registrieren und der Anwendung eine Rolle in Ihrem Azure-Abonnement zuweisen zu können.You must have sufficient permissions to register an application with your Azure AD tenant, and assign to the application a role in your Azure subscription.

Überprüfen der Azure AD-BerechtigungenCheck Azure AD permissions

  1. Wählen Sie Azure Active Directory aus.Select Azure Active Directory.

  2. Achten Sie auf Ihre Rolle.Note your role. Wenn Sie über die Rolle Benutzer verfügen, müssen Sie sicherstellen, dass keine Administratorrechte benötigt werden, um Anwendungen zu registrieren.If you have the User role, you must make sure that non-administrators can register applications.

    Suchen Sie Ihre Rolle.

  3. Wählen Sie im linken Bereich Benutzereinstellungen aus.In the left pane, select User settings.

  4. Überprüfen Sie die Einstellung App-Registrierungen.Check the App registrations setting. Dieser Wert kann nur von einem Administrator festgelegt werden.This value can only be set by an administrator. Die Einstellung Ja bedeutet, dass jeder Benutzer im Azure AD-Mandanten eine App registrieren kann.If set to Yes, any user in the Azure AD tenant can register an app.

Wenn die App-Registrierungseinstellung auf Nein festgelegt ist, können nur Benutzer mit Administratorrolle diese Arten von Anwendungen registrieren.If the app registrations setting is set to No, only users with an administrator role may register these types of applications. Informationen zu verfügbaren Administratorrollen sowie zu den spezifischen Berechtigungen in Azure AD für die einzelnen Rollen finden Sie unter Integrierte Rollen in Azure AD.See Azure AD built-in roles to learn about available administrator roles and the specific permissions in Azure AD that are given to each role. Wenn Ihrem Konto die Rolle „Benutzer“ zugewiesen wurde, die App-Registrierungseinstellung jedoch auf Administratorbenutzer begrenzt ist, bitten Sie Ihren Administrator, entweder Ihnen eine Administratorrolle zuzuweisen, die alle Aspekte von App-Registrierungen erstellen und verwalten kann, oder Benutzern das Registrieren von Apps zu ermöglichen.If your account is assigned the User role, but the app registration setting is limited to admin users, ask your administrator to either assign you one of the administrator roles that can create and manage all aspects of app registrations, or to enable users to register apps.

Überprüfen der Berechtigungen des Azure-AbonnementsCheck Azure subscription permissions

In Ihrem Azure-Abonnement muss Ihr Konto über Microsoft.Authorization/*/Write-Zugriff verfügen, damit einer AD-App eine Rolle zugewiesen werden kann.In your Azure subscription, your account must have Microsoft.Authorization/*/Write access to assign a role to an AD app. Diese Aktion wird über die Rolle Besitzer oder Benutzerzugriffsadministrator gewährt.This action is granted through the Owner role or User Access Administrator role. Wenn Ihrem Konto die Rolle Mitwirkender zugewiesen ist, verfügen Sie nicht über die erforderliche Berechtigung.If your account is assigned the Contributor role, you don't have adequate permission. Sie erhalten eine Fehlermeldung, wenn Sie versuchen, dem Dienstprinzipal eine Rolle zuzuweisen.You will receive an error when attempting to assign the service principal a role.

So überprüfen Sie die Berechtigungen Ihres Abonnements:To check your subscription permissions:

  1. Suchen Sie nach Abonnements, und wählen diese Option aus, oder wählen Sie auf der Seite Start die Option Abonnements aus.Search for and select Subscriptions, or select Subscriptions on the Home page.

    Suchen,

  2. Wählen Sie das Abonnement aus, in dem der Dienstprinzipal erstellt werden soll.Select the subscription you want to create the service principal in.

    Auswählen des Abonnements für die Zuweisung

    Falls Sie das gesuchte Abonnement nicht finden können, können Sie den globalen Abonnementfilter verwenden.If you don't see the subscription you're looking for, select global subscriptions filter. Stellen Sie sicher, dass das gewünschte Abonnement für das Portal ausgewählt ist.Make sure the subscription you want is selected for the portal.

  3. Wählen Sie My permissions (Meine Berechtigungen).Select My permissions. Wählen Sie anschließend Klicken Sie hier, um die vollständigen Zugangsdaten für dieses Abonnement anzuzeigen aus.Then, select Click here to view complete access details for this subscription.

    Das Abonnement auswählen, in dem der Dienstprinzipal erstellt werden soll

  4. Wählen Sie unter Rollenzuweisungen die Option Ansicht aus, um die Ihnen zugewiesenen Rollen anzuzeigen. Ermitteln Sie, ob Sie über die erforderlichen Berechtigungen verfügen, um einer AD-App eine Rolle zuzuweisen.Select View in Role assignments to view your assigned roles, and determine if you have adequate permissions to assign a role to an AD app. Wenn dies nicht der Fall ist, bitten Sie Ihren Abonnementadministrator, Sie zur Rolle „Benutzerzugriffsadministrator“ hinzuzufügen.If not, ask your subscription administrator to add you to User Access Administrator role. In der folgenden Abbildung ist dem Benutzer die Rolle „Besitzer“ zugewiesen. Dies bedeutet, dass der Benutzer über die erforderlichen Berechtigungen verfügt.In the following image, the user is assigned the Owner role, which means that user has adequate permissions.

    In diesem Beispiel ist dem Benutzer die Rolle „Besitzer“ zugewiesen.

Registrieren einer Anwendung mit Azure AD und Erstellen eines DienstprinzipalsRegister an application with Azure AD and create a service principal

Wir beginnen gleich mit der Erstellung der Identität.Let's jump straight into creating the identity. Falls ein Problem auftritt, sollten Sie die erforderlichen Berechtigungen überprüfen, um sicherzustellen, dass die Identität mit Ihrem Konto erstellt werden kann.If you run into a problem, check the required permissions to make sure your account can create the identity.

  1. Melden Sie sich über das Azure-Portal bei Ihrem Azure-Konto an.Sign in to your Azure Account through the Azure portal.

  2. Wählen Sie Azure Active Directory aus.Select Azure Active Directory.

  3. Wählen Sie App-Registrierungen aus.Select App registrations.

  4. Wählen Sie Neue Registrierung aus.Select New registration.

  5. Weisen Sie der Anwendung einen Namen zu.Name the application. Wählen Sie einen unterstützten Kontotyp aus, der bestimmt, von wem die Anwendung verwendet werden kann.Select a supported account type, which determines who can use the application. Wählen Sie unter Umleitungs-URI als Typ der Anwendung, die Sie erstellen möchten, Web aus.Under Redirect URI, select Web for the type of application you want to create. Geben Sie den URI ein, an den das Zugriffstoken gesendet wird.Enter the URI where the access token is sent to. Sie können keine Anmeldeinformationen für eine native Anwendung erstellen.You can't create credentials for a Native application. Sie können diesen Typ nicht für eine automatisierte Anwendung verwenden.You can't use that type for an automated application. Wählen Sie nach dem Festlegen der Werte Registrieren aus.After setting the values, select Register.

    Einen Namen für Ihre Anwendung eingeben

Sie haben Ihre Azure AD-Anwendung und den Dienstprinzipal erstellt.You've created your Azure AD application and service principal.

Hinweis

Sie können mehrere Anwendungen mit dem gleichen Namen in Azure AD registrieren, die Anwendungen müssen jedoch über unterschiedliche Anwendungs-IDs (Client-IDs) verfügen.You can register multiple applications with the same name in Azure AD, but the applications must have different Application (client) IDs.

Zuweisen einer Rolle zur AnwendungAssign a role to the application

Sie müssen der Anwendung eine Rolle zuweisen, um auf Ressourcen in Ihrem Abonnement zugreifen zu können.To access resources in your subscription, you must assign a role to the application. Entscheiden Sie, welche Rolle über die geeigneten Berechtigungen für die Anwendung verfügt.Decide which role offers the right permissions for the application. Informationen zu den verfügbaren Rollen finden Sie unter In Azure integrierte Rollen.To learn about the available roles, see Azure built-in roles.

Sie können den Umfang auf Abonnement-, Ressourcengruppen- oder Ressourcenebene festlegen.You can set the scope at the level of the subscription, resource group, or resource. Niedrigere Ebenen mit geringerem Umfang erben Berechtigungen.Permissions are inherited to lower levels of scope. Wenn also beispielsweise der Rolle Leser für eine Ressourcengruppe eine Anwendung hinzugefügt wird, kann diese Rolle die Ressourcengruppe und alle darin enthaltenen Ressourcen lesen.For example, adding an application to the Reader role for a resource group means it can read the resource group and any resources it contains.

  1. Wählen Sie im Azure-Portal die Bereichsebene aus, der Sie die Anwendung zuweisen möchten.In the Azure portal, select the level of scope you wish to assign the application to. Um beispielsweise eine Rolle im Abonnementbereich zuzuweisen, suchen Sie nach Abonnements und wählen diese Option aus, oder wählen Sie Abonnements auf der Homepage aus.For example, to assign a role at the subscription scope, search for and select Subscriptions, or select Subscriptions on the Home page.

    Beispiel: Zuweisen einer Rolle im Abonnementkontext

  2. Wählen Sie das Abonnement aus, dem die Anwendung zugewiesen werden soll.Select the particular subscription to assign the application to.

    Auswählen des Abonnements für die Zuweisung

    Falls Sie das gesuchte Abonnement nicht finden können, können Sie den globalen Abonnementfilter verwenden.If you don't see the subscription you're looking for, select global subscriptions filter. Stellen Sie sicher, dass das gewünschte Abonnement für das Portal ausgewählt ist.Make sure the subscription you want is selected for the portal.

  3. Wählen Sie die Option Zugriffssteuerung (IAM) aus.Select Access control (IAM).

  4. Wählen Sie Rollenzuweisung hinzufügen aus.Select Add role assignment.

  5. Wählen Sie die Rolle aus, die Sie der Anwendung zuweisen möchten.Select the role you wish to assign to the application. Wählen Sie beispielsweise die Rolle Mitwirkender aus, um für die Anwendung das Ausführen von Aktionen wie das Neustarten, Starten und Beenden von Instanzen durchzuführen.For example, to allow the application to execute actions like reboot, start and stop instances, select the Contributor role. Erfahren Sie mehr über die verfügbaren Rollen. Azure AD-Anwendungen werden standardmäßig nicht in den verfügbaren Optionen angezeigt.Read more about the available roles By default, Azure AD applications aren't displayed in the available options. Suchen Sie nach dem Namen Ihrer Anwendung, und wählen Sie ihn aus.To find your application, search for the name and select it.

    Rolle auswählen, die der Anwendung zugewiesen werden soll

  6. Wählen Sie Speichern aus, um das Zuweisen der Rolle abzuschließen.Select Save to finish assigning the role. Ihre Anwendung wird in der Liste der Benutzer mit einer Rolle für diesen Bereich angezeigt.You see your application in the list of users with a role for that scope.

Ihr Dienstprinzipal wird eingerichtet.Your service principal is set up. Sie können mit der Nutzung beginnen, um Ihre Skripts oder Apps auszuführen.You can start using it to run your scripts or apps. Wechseln Sie zu Unternehmensanwendungen, um Ihren Dienstprinzipal zu verwalten (Berechtigungen, vom Benutzer genehmigte Berechtigungen, Anzeigen der genehmigenden Benutzer, Überprüfen von Berechtigungen, Anzeigen von Anmeldeinformationen usw.).To manage your service principal (permissions, user consented permissions, see which users have consented, review permissions, see sign in information, and more), go to Enterprise applications.

Im nächsten Abschnitt wird veranschaulicht, wie Sie Werte abrufen, die beim programmgesteuerten Anmelden benötigt werden.The next section shows how to get values that are needed when signing in programmatically.

Abrufen der Werte für Mandanten-ID und App-ID für die AnmeldungGet tenant and app ID values for signing in

Beim programmgesteuerten Anmelden übergeben Sie mit Ihrer Authentifizierungsanforderung und der Anwendungs-ID auch die Mandanten-ID.When programmatically signing in, pass the tenant ID with your authentication request and the application ID. Außerdem benötigen Sie ein Zertifikat oder einen Authentifizierungsschlüssel (im folgenden Abschnitt beschrieben).You also need a certificate or an authentication key (described in the following section). Führen Sie die folgenden Schritte aus, um diese Werte abzurufen:To get those values, use the following steps:

  1. Wählen Sie Azure Active Directory aus.Select Azure Active Directory.

  2. Wählen Sie in Azure AD unter App-Registrierungen Ihre Anwendung aus.From App registrations in Azure AD, select your application.

  3. Kopieren Sie die Verzeichnis-ID (Mandant), und speichern Sie sie in Ihrem Anwendungscode.Copy the Directory (tenant) ID and store it in your application code.

    Verzeichnis-ID (Mandanten-ID) kopieren und im Anwendungscode speichern

    Die Verzeichnis-ID (Mandanten-ID) finden Sie auch auf der Übersichtsseite des Standardverzeichnisses.The directory (tenant) ID can also be found in the default directory overview page.

  4. Kopieren Sie die Anwendungs-ID, und speichern Sie sie in Ihrem Anwendungscode.Copy the Application ID and store it in your application code.

    Anwendungs-ID (Client-ID) kopieren

Authentifizierung: Zwei OptionenAuthentication: Two options

Für Dienstprinzipale sind zwei Arten von Authentifizierung verfügbar: kennwortbasierte Authentifizierung (Anwendungsgeheimnis) und zertifikatbasierte Authentifizierung.There are two types of authentication available for service principals: password-based authentication (application secret) and certificate-based authentication. Wir empfehlen die Verwendung eines Zertifikats, Sie können aber auch ein Anwendungsgeheimnis erstellen.We recommend using a certificate, but you can also create an application secret.

Option 1: Hochladen eines ZertifikatsOption 1: Upload a certificate

Sie können ein vorhandenes Zertifikat verwenden, wenn Sie eins besitzen.You can use an existing certificate if you have one. Optional können Sie ausschließlich für Testzwecke ein selbstsigniertes Zertifikat erstellen.Optionally, you can create a self-signed certificate for testing purposes only. Zum Erstellen eines selbstsignierten Zertifikats öffnen Sie PowerShell, und führen Sie New-SelfSignedCertificate mit den folgenden Parametern aus, um das Zertifikat im Benutzerzertifikatspeicher auf Ihrem Computer zu erstellen:To create a self-signed certificate, open PowerShell and run New-SelfSignedCertificate with the following parameters to create the cert in the user certificate store on your computer:

$cert=New-SelfSignedCertificate -Subject "CN=DaemonConsoleCert" -CertStoreLocation "Cert:\CurrentUser\My"  -KeyExportPolicy Exportable -KeySpec Signature

Exportieren Sie dieses Zertifikat mit dem MMC-Snap-In Benutzerzertifikat verwalten, auf das Sie in der Windows-Systemsteuerung zugreifen können, in eine Datei.Export this certificate to a file using the Manage User Certificate MMC snap-in accessible from the Windows Control Panel.

  1. Wählen Sie im Menü Start den Befehl Ausführen aus, und geben Sie certmgr.msc ein.Select Run from the Start menu, and then enter certmgr.msc.

    Das Tool „Zertifikat-Manager“ für den aktuellen Benutzer wird angezeigt.The Certificate Manager tool for the current user appears.

  2. Um Ihre Zertifikate anzuzeigen, erweitern Sie im linken Bereich unter Zertifikate - Aktueller Benutzer das Verzeichnis Privat.To view your certificates, under Certificates - Current User in the left pane, expand the Personal directory.

  3. Klicken Sie mit der rechten Maustaste auf das Zertifikat, das Sie erstellt haben, und wählen Sie Alle Aufgaben->Exportieren aus.Right-click on the cert you created, select All tasks->Export.

  4. Folgen Sie dem Zertifikatexport-Assistenten.Follow the Certificate Export wizard. Exportieren Sie nicht den privaten Schlüssel, und exportieren Sie in eine CER-Datei.Do not export the private key, and export to a .CER file.

So laden Sie das Zertifikat hoch:To upload the certificate:

  1. Wählen Sie Azure Active Directory aus.Select Azure Active Directory.

  2. Wählen Sie in Azure AD unter App-Registrierungen Ihre Anwendung aus.From App registrations in Azure AD, select your application.

  3. Wählen Sie Zertifikate & Geheimnisse aus.Select Certificates & secrets.

  4. Wählen Sie Zertifikat hochladen aus, und wählen Sie dann das Zertifikat (ein vorhandenes Zertifikat oder das von Ihnen exportierte selbstsignierte Zertifikat) aus.Select Upload certificate and select the certificate (an existing certificate or the self-signed certificate you exported).

    „Zertifikat hochladen“ auswählen und das hinzuzufügende Zertifikat auswählen

  5. Wählen Sie Hinzufügen.Select Add.

Nach dem Registrieren des Zertifikats bei Ihrer Anwendung im Portal der Anwendungsregistrierung ermöglichen Sie dem Code der Clientanwendung die Verwendung des Zertifikats.After registering the certificate with your application in the application registration portal, enable the client application code to use the certificate.

Option 2: Erstellen eines neuen AnwendungsgeheimnissesOption 2: Create a new application secret

Wenn Sie sich entscheiden, kein Zertifikat zu verwenden, können Sie ein neues Anwendungsgeheimnis erstellen.If you choose not to use a certificate, you can create a new application secret.

  1. Wählen Sie Azure Active Directory aus.Select Azure Active Directory.

  2. Wählen Sie in Azure AD unter App-Registrierungen Ihre Anwendung aus.From App registrations in Azure AD, select your application.

  3. Wählen Sie Zertifikate & Geheimnisse aus.Select Certificates & secrets.

  4. Wählen Sie Geheime Clientschlüssel -> Neuer geheimer Clientschlüssel aus.Select Client secrets -> New client secret.

  5. Geben Sie eine Beschreibung des Geheimnisses und eine Dauer ein.Provide a description of the secret, and a duration. Wählen Sie anschließend Hinzufügen aus.When done, select Add.

    Nachdem der geheime Clientschlüssel gespeichert wurde, wird dessen Wert angezeigt.After saving the client secret, the value of the client secret is displayed. Kopieren Sie diesen Wert jetzt, weil Sie den Schlüssel später nicht mehr abrufen können.Copy this value because you won't be able to retrieve the key later. Sie geben den Schlüsselwert zusammen mit der Anwendungs-ID an, um die Anmeldung als Anwendung durchzuführen.You will provide the key value with the application ID to sign in as the application. Speichern Sie den Schlüsselwert an einem Ort, von dem Ihre Anwendung ihn abrufen kann.Store the key value where your application can retrieve it.

    Den geheimen Wert kopieren, weil er später nicht mehr abgerufen werden kann

Konfigurieren von Zugriffsrichtlinien für RessourcenConfigure access policies on resources

Beachten Sie, dass Sie möglicherweise zusätzliche Berechtigungen für Ressourcen konfigurieren müssen, auf die Ihre Anwendung zugreifen muss.Keep in mind, you might need to configure additional permissions on resources that your application needs to access. Sie müssen beispielsweise auch die Zugriffsrichtlinien eines Schlüsseltresors aktualisieren, um der Anwendung Zugriff auf Schlüssel, Geheimnisse oder Zertifikate zu gewähren.For example, you must also update a key vault's access policies to give your application access to keys, secrets, or certificates.

  1. Navigieren Sie im Azure-Portal zu Ihrem Schlüsseltresor, und wählen Sie Zugriffsrichtlinien aus.In the Azure portal, navigate to your key vault and select Access policies.
  2. Wählen Sie Zugriffsrichtlinie hinzufügen und anschließend die Schlüssel-, Geheimnis- und Zertifikatberechtigungen aus, die Sie Ihrer Anwendung gewähren möchten.Select Add access policy, then select the key, secret, and certificate permissions you want to grant your application. Wählen Sie den zuvor erstellten Dienstprinzipal aus.Select the service principal you created previously.
  3. Wählen Sie Hinzufügen aus, um die Zugriffsrichtlinie hinzuzufügen, und wählen Sie dann Speichern aus, um Ihre Änderungen zu übernehmen.Select Add to add the access policy, then Save to commit your changes. Zugriffsrichtlinie hinzufügenAdd access policy

Nächste SchritteNext steps