Teilen über


Lernprogramm: Extrahieren von Benutzerdaten mit einem Angular SPA

Gilt für: Grüner Kreis mit einem weißen Häkchensymbol, das angibt, dass der folgende Inhalt für Mitarbeitermandanten gilt. Mitarbeitermandanten grüner Kreis mit einem weißen Häkchensymbol, das angibt, dass der folgende Inhalt für externe Mandanten gilt. Externe Mandanten (weitere Informationen)

Dieses Lernprogramm ist der letzte Teil einer Reihe, die das Erstellen einer Angular-Einzelseitenanwendung (Single Page Application, SPA) und das Hinzufügen der Authentifizierung mithilfe der Microsoft Identity Platform veranschaulicht. In Teil 2 dieser Reihe haben Sie eine Angular-SPA erstellt und für die Authentifizierung mit Ihrem Mitarbeitermandanten vorbereitet.

In diesem Tutorial haben Sie Folgendes durchgeführt:

  • Fügen Sie Ihrer Angular-Anwendung Datenverarbeitung hinzu.
  • Testen Sie die Anwendung, und extrahieren Sie Benutzerdaten.

Voraussetzungen

Extrahieren von Daten zum Anzeigen in der Benutzeroberfläche der Anwendung

Führen Sie die folgenden Schritte aus, um Ihre Angular-Anwendung für die Interaktion mit der Microsoft Graph-API zu konfigurieren:

  1. Öffnen Sie die src/app/profile/profile.component.ts Datei, und ersetzen Sie den Inhalt durch den folgenden Codeausschnitt:

    // Required for Angular
    import { Component, OnInit } from '@angular/core';
    
    // Required for the HTTP GET request to Graph
    import { HttpClient } from '@angular/common/http';
    
    type ProfileType = {
      businessPhones?: string,
      displayName?: string,
      givenName?: string,
      jobTitle?: string,
      mail?: string,
      mobilePhone?: string,
      officeLocation?: string,
      preferredLanguage?: string,
      surname?: string,
      userPrincipalName?: string,
      id?: string
    }
    
    @Component({
      selector: 'app-profile',
      templateUrl: './profile.component.html'
    })
    export class ProfileComponent implements OnInit {
      profile!: ProfileType;
      tokenExpiration!: string;
    
      constructor(
        private http: HttpClient
      ) { }
    
      // When the page loads, perform an HTTP GET request from the Graph /me endpoint
      ngOnInit() {
        this.http.get('https://graph.microsoft.com/v1.0/me')
          .subscribe(profile => {
            this.profile = profile;
          });
    
        this.tokenExpiration = localStorage.getItem('tokenExpiration')!;
      }
    }
    

    Die ProfileComponent in Angular ruft Benutzerprofildaten vom /me-Endpunkt von Microsoft Graph ab. Es definiert ProfileType, um Struktur-Eigenschaften wie displayName und mail zu festlegen. In ngOnInit wird HttpClient verwendet, um eine GET-Anforderung zu senden, und die Antwort wird an profile zugewiesen. Außerdem wird die Ablaufzeit des Tokens aus localStorage abgerufen und in tokenExpiration gespeichert.

  2. Öffnen Sie die src/app/profile/profile.component.html Datei, und ersetzen Sie den Inhalt durch den folgenden Codeausschnitt:

    <div class="profile">
        <p><strong>Business Phones:</strong> {{profile?.businessPhones}}</p>
        <p><strong>Display Name:</strong> {{profile?.displayName}}</p>
        <p><strong>Given Name:</strong> {{profile?.givenName}}</p>
        <p><strong>Job Title:</strong> {{profile?.jobTitle}}</p>
        <p><strong>Mail:</strong> {{profile?.mail}}</p>
        <p><strong>Mobile Phone:</strong> {{profile?.mobilePhone}}</p>
        <p><strong>Office Location:</strong> {{profile?.officeLocation}}</p>
        <p><strong>Preferred Language:</strong> {{profile?.preferredLanguage}}</p>
        <p><strong>Surname:</strong> {{profile?.surname}}</p>
        <p><strong>User Principal Name:</strong> {{profile?.userPrincipalName}}</p>
        <p><strong>Profile Id:</strong> {{profile?.id}}</p>
        <br><br>
        <p><strong>Token Expiration:</strong> {{tokenExpiration}}</p>
        <br><br>
        <p>Refreshing this page will continue to use the cached access token until it nears expiration, at which point a new access token will be requested.</p>
    </div>
    

    Dieser Code definiert eine HTML-Vorlage, die Benutzerprofilinformationen mithilfe der Interpolationssyntax von Angular anzeigt, um Eigenschaften vom profile Objekt zu binden (z. B. , businessPhones, displayName). jobTitle Außerdem wird der tokenExpiration Wert angezeigt und eine Notiz eingeschlossen, die besagt, dass beim Aktualisieren der Seite das zwischengespeicherte Zugriffstoken verwendet wird, bis es zum Ablauf kommt, danach wird ein neues Token angefordert.

Testen der Anwendung

Damit die Anwendung funktioniert, müssen Sie die Angular-Anwendung ausführen und sich anmelden, um sich bei Ihrem Microsoft Entra-Mandanten zu authentifizieren und Benutzerdaten zu extrahieren.

Führen Sie die folgenden Schritte aus, um die Anwendung zu testen:

  1. Führen Sie die Angular-Anwendung aus, indem Sie den folgenden Befehl im Terminal ausführen:

    ng serve --open
    
  2. Wählen Sie die Schaltfläche " Anmelden " aus, um sich bei Ihrem Microsoft Entra-Mandanten zu authentifizieren.

  3. Wählen Sie nach der Anmeldung den Link "Profil anzeigen " aus, um zur Profilseite zu navigieren. Stellen Sie sicher, dass die Benutzerprofilinformationen angezeigt werden, einschließlich des Benutzernamens, der E-Mail, der Position und anderer Details.

    Screenshot: JavaScript-App mit den Ergebnissen des API-Aufrufs

  4. Wählen Sie die Schaltfläche " Abmelden " aus, um sich bei der Anwendung abzumelden.

Nächste Schritte

Erfahren Sie, wie Sie die Microsoft Identity Platform verwenden, indem Sie die folgende Tutorialreihe zum Erstellen einer Web-API durcharbeiten.