Registrieren einer Anwendung

Abgeschlossen

Übung: Registrieren einer Anwendung

Damit sich Ihre App bei Microsoft Entra External ID anmelden kann, müssen Sie die Anwendung im Verzeichnis registrieren.

Hinweis

Sie benötigen mindestens die Verzeichnisrolle Anwendungsentwickler, um eine Anwendung zu registrieren.

Diese Rolle ist eine privilegierte Rolle. Lesen Sie die bewährten Methoden für die Verwendung privilegierter Rollen.

Haben Sie Feedback? Teilen Sie uns mit, wie Ihr Proof of Concept-Projekt läuft. Wir würden uns freuen, von Ihnen zu hören!

  1. Um Ihre eigene Anwendung zu registrieren, melden Sie sich beim Microsoft Entra Admin Center an, und navigieren Sie zu Anwendungen>App-Registrierungen. Wählen Sie dann + Neue Registrierung aus.

    Screenshot: Blatt „App-Registrierungen“ mit hervorgehobener Schaltfläche „Neue Registrierung“

  2. Geben Sie auf der angezeigten Seite Registrieren einer Anwendung einen aussagekräftigen Namen für die Anwendung ein, der Benutzern der App angezeigt wird, z. B. Woodgrove Groceries. Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis aus. Wählen Sie für Platform die Option Web aus, und geben Sie den Umleitungs-URI für Ihre App ein. Der Umleitungs-URI ist der Endpunkt, an den Benutzer von Microsoft Entra External ID nach Abschluss der Authentifizierung bei Microsoft Entra External ID umgeleitet werden.

    Screenshot: Blatt „Anwendung registrieren“, auf dem nur Konten in diesem Organisationsverzeichnis für „Wer kann diese Anwendung verwenden oder auf diese API zugreifen?“ hervorgehoben sind. Der Umleitungs-URI ist hervorgehoben und auf „Web“ sowie die URL festgelegt, an die der Benutzer nach erfolgreicher Authentifizierung umgeleitet werden soll.

  3. Der Bereich Übersicht der Anwendung wird bei erfolgreicher Registrierung angezeigt. Notieren Sie sich die Anwendungs-ID (Client), die im Quellcode Ihrer Anwendung verwendet werden sollen.

    Screenshot: App-Registrierungen mit hervorgehobener Option „Übersicht“ in der linken Navigation. Die Anwendungs-ID (Client) ist unter „Grundlegende Informationen“ ebenfalls hervorgehoben.

  4. Wenn Sie weitere Umleitungs-URIs oder eine URL für Front-Channel-Abmeldung hinzufügen möchten, wählen Sie unter Verwalten die Option Authentifizierung aus. An die URL für Front-Channel-Abmeldung wird eine Anforderung gesendet, damit die Anwendung die Sitzungsdaten des Benutzers löscht. Dies ist erforderlich, damit das einmalige Abmelden ordnungsgemäß funktioniert.

    Screenshot: Blatt „Authentifizierung“ unter „App-Registrierungen“ mit hervorgehobenem URI unter „Webumleitungs-URIs“ sowie der URL unter „URL für Front-Channel-Abmeldung“

  5. Damit eine Webanwendung (vertraulicher Client) ein Zugriffstoken erhält, benötigt sie Anmeldeinformationen, um ihre Identität bei Microsoft Entra ID nachzuweisen. Sie können Ihrer vertraulichen Client-App-Registrierung Zertifikate, geheime Clientschlüssel (Zeichenfolge) und Verbundidentitätsanmeldeinformationen als Anmeldeinformationen hinzufügen. Für die Lebensmittelwebsite verwenden wir ein Zertifikat. Um ein Zertifikat hinzuzufügen, wählen Sie Zertifikate und Geheimnisse>Zertifikate>Zertifikat hochladen aus.

    Screenshot: Blatt „Zertifikate und Geheimnisse“ unter „App-Registrierungen“, wo keine Zertifikate vorhanden sind, sowie eine hervorgehobene Schaltfläche mit dem Titel „Zertifikat hochladen“

  6. Wählen Sie die Datei, die Sie hochladen möchten. Dabei muss es sich um einen der folgenden Dateitypen handeln: .cer, .pem oder .crt. Wählen Sie dann Hinzufügen aus.

    Screenshot: Bereich „Zertifikat hochladen“ auf der rechten Seite mit hervorgehobenem Uploadsymbol zum Hochladen des Zertifikats

  7. In den folgenden Schritten fügen Sie die erforderliche Berechtigung für die Webanwendung hinzu. Wählen Sie unter Verwalten die Option API-Berechtigungen und dann Berechtigung hinzufügen aus.

    Screenshot: API-Berechtigungen unter „App-Registrierungen“ mit hervorgehobener Schaltfläche „Berechtigung hinzufügen“

  8. Wählen Sie unter API-Berechtigungen anfordern die Registerkarte Microsoft-APIs und dann die Option Microsoft Graph aus.

    Screenshot: Auf der rechten Seite geöffneter Bereich „API-Berechtigungen anfordern“ mit hervorgehobener Auswahlgruppe mit dem Titel „Microsoft Graph“

  9. Wählen Sie die Option Delegierte Berechtigungen aus. Suchen Sie dann im Abschnitt Berechtigungen auswählen nach den Berechtigungen openid und offline_access, und wählen Sie sie aus. Wählen Sie dann zum Abschließen des Vorgangs die Option Berechtigungen hinzufügen aus.

    Screenshot: Auf der rechten Seite geöffneter Bereich „API-Berechtigungen anfordern“ mit hervorgehobener Auswahlgruppe „Delegierte Berechtigungen“. Darunter werden die aktivierten Kontrollkästchen für die Berechtigungen „offline_access“ und „openid“ angezeigt.

  10. An diesem Punkt haben Sie die Berechtigungen ordnungsgemäß zugewiesen. Da der Mandant jedoch ein externer Mandant ist, können die Consumerbenutzer diesen Berechtigungen nicht selbst zustimmen. Sie als Administrator müssen diesen Berechtigungen im Namen aller Benutzer im Mandanten zustimmen: Wählen Sie Administratorzustimmung für <your tenant name> erteilen und dann Ja aus.

    Screenshot: Schaltfläche mit dem Titel „Administratoreinwilligung für Woodgrove Groceries erteilen“, die auf dem Blatt „API-Berechtigungen“ hervorgehoben ist

    Gut gemacht! Ihre Anwendung kann jetzt verwendet werden.

1. Registrieren einer Anwendung

Verwenden Sie zum Registrieren einer Webanwendung die folgende Microsoft Graph-Anforderung, und ersetzen Sie die folgenden Werte.

  • Wert von displayName durch den angezeigten Namen der App. Beispiel: Woodgrove Groceries.

  • Werte für redirectUris durch den Umleitungs-URI Ihrer Anwendung. Beispiel: https://woodgrovedemo.com/signin-oidc. Sie können auch https://www.jwt.ms/ verwenden.

    POST https://graph.microsoft.com/v1.0/applications
    {
        "displayName": "Woodgrove Groceries",
        "description": "Woodgrove Groceries live demo application",
        "signInAudience": "AzureADMyOrg",
        "api": {
            "acceptMappedClaims": true,
            "requestedAccessTokenVersion": 2
        },
        "requiredResourceAccess": [
            {
                "resourceAppId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
                "resourceAccess": [
                    {
                        "id": "b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2",
                        "type": "Scope"
                    },
                    {
                        "id": "c2c2c2c2-dddd-eeee-ffff-a3a3a3a3a3a3",
                        "type": "Scope"
                    }
                ]
            }
        ],
        "web": {
            "redirectUris": [
                "https://woodgrovedemo.com/signin-oidc"
            ],
            "implicitGrantSettings": {
                "enableAccessTokenIssuance": false,
                "enableIdTokenIssuance": false
            }
        }
    }
    
1.1 Kopieren der Anwendungs-ID

Kopieren Sie den Wert von appId aus der Antwort. Zum Beispiel:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications/$entity",
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
    "displayName": "Woodgrove Groceries",
    "description": "Woodgrove Groceries live demo application",
    ...
}      

2. Erstellen eines Dienstprinzipals für Ihre Anwendung

Nach dem Registrieren Ihrer Anwendung erstellen Sie einen Dienstprinzipal. Der folgende Graph-Aufruf erstellt einen Dienstprinzipal. Ersetzen Sie {appId} durch den Wert appId der App aus dem vorherigen Aufruf (nicht durch die Objekt-ID).

POST https://graph.microsoft.com/v1.0/servicePrincipals
{
    "appId": "{appId}"
}
2.1 Kopieren der Dienstprinzipal-ID

Kopieren Sie den Wert von id aus der Antwort. Beispiel:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals/$entity",
    "id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
    "displayName": "Woodgrove Groceries",
    "description": "Woodgrove Groceries live demo application",
    ...
}

Da der Mandant ein externer Mandant ist, können die Consumerbenutzer diesen Berechtigungen nicht selbst zustimmen. Sie als Administrator müssen diesen Berechtigungen im Namen aller Benutzer im Mandanten zustimmen.

3.1. Abrufen der Dienstprinzipal-ID von Microsoft Graph

Führen Sie die folgende GET-Anforderung aus, und kopieren Sie die ID (id) aus der Antwort:

GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='22223333-cccc-4444-dddd-5555eeee6666')
{
    "id": "cccccccc-2222-3333-4444-dddddddddddd",
    "appDisplayName": "Microsoft Graph",
    "appId": "22223333-cccc-4444-dddd-5555eeee6666"
}
3.2. Erteilen der erforderlichen Berechtigungen

Ersetzen Sie {service-principal-id} durch die Dienstprinzipal-ID, die Sie im vorherigen Schritt kopiert haben. Ersetzen Sie {graph-service-principal-id} durch die Dienstprinzipal-ID, die Sie im letzten Schritt kopiert haben.

POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
{
    "clientId": "{service-principal-id}",
    "consentType": "AllPrincipals",
    "resourceId": "{graph-service-principal-id}",
    "scope": "openid offline_access"
}

4. (Optional) Hinzufügen eines geheimen Clientschlüssels

Vertrauliche Anwendungen werden mit Anmeldeinformationen beim Authentifizierungsdienst identifiziert, wenn sie Token erhalten. Für eine höhere Sicherheitsstufe wird empfohlen, ein Zertifikat (anstelle eines geheimen Clientschlüssels) als Anmeldeinformation zu verwenden. Um den geheimen Clientschlüssel abzurufen, führen Sie die folgende Anforderung aus. Ersetzen Sie {graph-service-principal-id} durch den Wert von appId aus dem ersten Schritt.

POST https://graph.microsoft.com/v1.0/applications(appId='appId')/addPassword
{
    "passwordCredential": {
        "displayName": "My app client secret"
    }
}

Kopieren Sie den Wert von secretText aus der Antwort.

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.passwordCredential",
    "displayName": "My app client secret",
    "endDateTime": "2026-05-23T15:16:42",
    "hint": "<Your hint will show up here>",
    "keyId": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
    "secretText": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u",
    "startDateTime": "2024-05-23T15:16:42"
}