Hinzufügen von App-Rollen zu Ihrer Anwendung und Empfangen der Rollen im Token

Die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) ist eine beliebte Methode zum Erzwingen der Autorisierung in Anwendungen. RBAC ermöglicht es Administratoren, Berechtigungen für Rollen und nicht für bestimmte Benutzer oder Gruppen zu erteilen. Der Administrator kann anschließend verschiedenen Benutzern und Gruppen Rollen zuweisen, um zu steuern, wer auf welche Inhalte und Funktionen zugreifen kann.

Entwickler können die RBAC mit Anwendungsrollen und Rollenansprüchen verwenden und dadurch mit weniger Aufwand sicher die Autorisierung in ihren Apps erzwingen.

Ein weiterer Ansatz ist die Verwendung von Azure AD-Gruppen (Azure Active Directory) und Gruppenansprüchen wie im active-directory-aspnetcore-webapp-openidconnect-v2-Codebeispiel auf GitHub gezeigt. Azure AD-Gruppen und Anwendungsrollen schließen sich nicht gegenseitig aus. Sie können zusammen verwendet werden, um eine noch differenziertere Zugriffssteuerung zu ermöglichen.

Deklarieren von Rollen für eine Anwendung

Sie definieren App-Rollen mithilfe des Azure-Portals während des App-Registrierungsprozesses. App-Rollen werden in einer Anwendungsregistrierung definiert, die einen Dienst, eine App oder eine API darstellt. Wenn sich ein Benutzer bei der Anwendung anmeldet, gibt Azure AD für jede Rolle, die dem Benutzer oder dem Dienstprinzipal zugewiesen wurde, einen roles-Anspruch aus. Dies kann zum Implementieren der anspruchsbasierten Autorisierung verwendet werden. App-Rollen können einem Benutzer oder einer Gruppe von Benutzern zugewiesen werden. App-Rollen können auch dem Dienstprinzipal für eine andere Anwendung oder dem Dienstprinzipal für eine verwaltete Identität zugewiesen werden.

Wenn Sie einer Gruppe einen Dienstprinzipal hinzufügen und dieser Gruppe dann eine App-Rolle zuweisen, fügt Azure AD den ausgegebenen Token derzeit nicht den roles-Anspruch hinzu.

App-Rollen werden mithilfe der Benutzeroberfläche für App-Rollen im Azure-Portal deklariert:

Die Anzahl der von Ihnen hinzugefügten Rollen wird durch Beschränkungen begrenzt, die Azure AD erzwingt. Informationen zu diesen Grenzwerten finden Sie im Abschnitt Grenzwerte für das Manifest der Azure Active Directory-App-Manifestreferenz.

App-Rollen-UI

So erstellen Sie eine App-Rolle mithilfe der Benutzeroberfläche des Azure-Portals:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie den Verzeichnisse + Abonnements-Filter im oberen Menü, um zu dem Mandanten zu wechseln, der die App-Registrierung enthält, zu der Sie eine App-Rolle hinzufügen möchten.

  3. Suchen Sie nach Azure Active Directory, und wählen Sie diese Option aus.

  4. Wählen Sie unter Verwalten die Option App-Registrierungen und dann die Anwendung aus, in der Sie App-Rollen definieren möchten.

  5. Wählen Sie App-Rollen und dann App-Rolle erstellen aus.

    Bereich „App-Rollen“ einer App-Registrierung im Azure-Portal

  6. Geben Sie im Bereich App-Rolle erstellen die Einstellungen für die Rolle ein. Die Tabelle im Anschluss an das Bild beschreibt die einzelnen Einstellungen und ihre Parameter.

    Bereich „App-Rollen, Kontext erstellen“ einer App-Registrierung im Azure-Portal

    Feld Beschreibung Beispiel
    Anzeigename Anzeigename für die App-Rolle, die auf den Administratorbildschirmen für Zustimmung und App-Zuweisung angezeigt wird. Dieser Wert kann Leerzeichen enthalten. Survey Writer
    Zulässige Mitgliedstypen Gibt an, ob diese App-Rolle Benutzern, Anwendungen oder beiden zugeordnet werden kann.

    Wenn App-Rollen für applications verfügbar sind, werden sie als Anwendungsberechtigungen im Abschnitt Verwalten einer App-Registrierung unter >API-Berechtigungen > Berechtigung hinzufügen > Meine APIs > API auswählen > Anwendungsberechtigungen angezeigt.
    Users/Groups
    Wert Gibt den Wert des Rollenanspruchs an, den die Anwendung in den Token erwarten sollte. Der Wert sollte genau mit der Zeichenfolge übereinstimmen, auf die im Code der Anwendung verwiesen wird. Der Wert darf keine Leerzeichen enthalten. Survey.Create
    Beschreibung Eine ausführlichere Beschreibung der App-Rolle, die dem Administrator auf den App-Zuweisungs- und -Zustimmungsoberflächen angezeigt wird. Writers can create surveys.
    Möchten Sie diese App-Rolle aktivieren? Gibt an, ob die App-Rolle aktiviert ist. Um eine App-Rolle zu löschen, deaktivieren Sie dieses Kontrollkästchen, und wenden Sie die Änderung an, bevor Sie den Löschvorgang starten. Überprüft
  7. Wählen Sie Übernehmen aus, um die Änderungen zu speichern.

Zuweisen von Benutzern und Gruppen zu Rollen

Nachdem Sie App-Rollen in Ihrer Anwendung hinzugefügt haben, können Sie den Rollen Benutzer und Gruppen zuweisen. Die Zuweisung von Benutzern und Gruppen zu Rollen kann über die Benutzeroberfläche des Portals oder programmgesteuert mit Microsoft Graph erfolgen. Wenn sich Benutzer, denen verschiedene App-Rollen zugewiesen sind, bei der Anwendung anmelden, enthalten deren Token die zugewiesenen Rollen im roles-Anspruch.

So weisen Sie Benutzern und Gruppen im Azure-Portal Rollen zu:

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie in Azure Active Directory im linken Navigationsmenü die Option Unternehmensanwendungen aus.
  3. Wählen Sie Alle Anwendungen, um eine Liste mit Ihren Anwendungen anzuzeigen. Falls die Anwendung nicht in der Liste angezeigt wird, können Sie oben in der Liste Alle Anwendungen die Filter verwenden, um den Inhalt der Liste einzugrenzen. Sie können auch in der Liste nach unten scrollen, um nach Ihrer Anwendung zu suchen.
  4. Wählen Sie die Anwendung aus, in der Sie Benutzer oder eine Sicherheitsgruppe zu Rollen zuweisen möchten.
  5. Klicken Sie unter Verwalten auf Benutzer und Gruppen.
  6. Wählen Sie Benutzer hinzufügen aus, um den Bereich Zuweisung hinzufügen zu öffnen.
  7. Wählen Sie im Bereich Zuweisung hinzufügen den Selektor Benutzer und Gruppen aus. Eine Liste von Benutzern und Sicherheitsgruppen wird angezeigt. Sie können sowohl nach einem bestimmten Benutzer oder einer bestimmten Gruppe suchen als auch mehrere in der Liste angezeigte Benutzer und Gruppen auswählen.
  8. Nachdem Sie Benutzer und Gruppen ausgewählt haben, wählen Sie die Schaltfläche Auswählen aus, um fortzufahren.
  9. Wählen Sie im Bereich Zuweisung hinzufügen die Option Rolle auswählen aus. Alle Rollen, die Sie für die Anwendung definiert haben, werden angezeigt.
  10. Wählen Sie eine Rolle und dann die Schaltfläche Auswählen aus.
  11. Wählen Sie die Schaltfläche Zuweisen aus, um die Zuweisungen von Benutzern und Gruppen zur App abzuschließen.

Vergewissern Sie sich, dass die hinzugefügten Benutzer und Gruppen in der Liste Benutzer und Gruppen angezeigt werden.

Zuweisen von App-Rollen zu Anwendungen

Nachdem Sie App-Rollen in Ihrer Anwendung hinzugefügt haben, können Sie eine App-Rolle einer Client-App im Azure-Portal oder programmgesteuert mit Microsoft Graph zuweisen.

Wenn Sie einer Anwendung App-Rollen zuweisen, erstellen Sie Anwendungsberechtigungen. Anwendungsberechtigungen werden in der Regel von Daemon-Apps oder Back-End-Diensten verwendet, die ohne Benutzerinteraktion sich selbst authentifizieren und autorisierte API-Aufrufe ausführen müssen.

So weisen Sie einer Anwendung mithilfe des Azure-Portals App-Rollen zu:

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie in Azure Active Directory im linken Navigationsmenü die Option App-Registrierungen aus.
  3. Wählen Sie Alle Anwendungen, um eine Liste mit Ihren Anwendungen anzuzeigen. Falls die Anwendung nicht in der Liste angezeigt wird, können Sie oben in der Liste Alle Anwendungen die Filter verwenden, um den Inhalt der Liste einzugrenzen. Sie können auch in der Liste nach unten scrollen, um nach Ihrer Anwendung zu suchen.
  4. Wählen Sie die Anwendung aus, der Sie eine App-Rolle hinzufügen möchten.
  5. Klicken Sie auf API-Berechtigungen>Berechtigung hinzufügen.
  6. Wählen Sie die Registerkarte Meine APIs aus und dann die App, für die Sie App-Rollen definiert haben.
  7. Wählen Sie Anwendungsberechtigungen.
  8. Wählen Sie die Rolle(n) aus, die Sie zuweisen möchten.
  9. Wählen Sie die Schaltfläche Berechtigungen hinzufügen aus, um das Hinzufügen der Rolle(n) abzuschließen.

Die neu hinzugefügten Rollen sollten im Bereich API-Berechtigungen der Registrierung Ihrer App angezeigt werden.

Da es sich hierbei um Anwendungsberechtigungen handelt, nicht um delegierte Berechtigungen, muss ein Administrator die Zustimmung zur Verwendung der App-Rollen erteilen, die der Anwendung zugewiesen sind.

  1. Wählen Sie im Bereich API-Berechtigungen der App-Registrierung Administratorzustimmung für <Mandantenname> erteilen aus.
  2. Wählen Sie Ja, wenn Sie aufgefordert werden, die Zustimmung für die angeforderten Berechtigungen zu erteilen.

In der Spalte Status sollte Gewährt für <Mandantenname> angezeigt werden.

Verwendungsszenario von App-Rollen

Wenn Sie eine Geschäftslogik für App-Rollen implementieren, die die Benutzer in Ihrem Anwendungsszenario anmeldet, definieren Sie zunächst die App-Rollen in App-Registrierungen. Anschließend werden die Rollen von Administrator*innen Benutzer*innen und Gruppen im Bereich Unternehmensanwendungen zugewiesen. Diese zugewiesenen App-Rollen sind in jedem Token enthalten, das für Ihre Anwendung ausgestellt wird. Dies sind entweder Zugriffstoken, wenn Ihre App die API ist, die von einer App aufgerufen wird, oder ID-Token, wenn Ihre App eine*n Benutzer*in anmeldet.

Wenn Sie Geschäftslogik für App-Rollen in einem Szenario implementieren, in dem eine App eine API aufruft, verfügen Sie über zwei App-Registrierungen. Eine App-Registrierung ist für die App und eine zweite für die API. Definieren Sie in diesem Fall die App-Rollen, und weisen Sie sie den Benutzer*innen oder der Gruppe in der App-Registrierung der API zu. Wenn sich Benutzer bei der App authentifizieren und ein ID-Token zum Aufrufen der API anfordern, wird ein Rollenanspruch in das ID-Token eingeschlossen. Der nächste Schritt besteht im Hinzufügen von Code zu Ihrer Web-API, um diese Rollen zu überprüfen, wenn die API aufgerufen wird.

Informationen zum Hinzufügen der Autorisierung zu Ihrer Web-API finden Sie unter Geschützte Web-API: Überprüfen von Bereichen und App-Rollen.

App-Rollen im Vergleich zu Gruppen

Obwohl Sie App-Rollen oder Gruppen für die Autorisierung verwenden können, können wichtige Unterschiede zwischen ihnen Ihre Entscheidung beeinflussen, welche für das Szenario verwendet werden sollen.

App-Rollen Gruppen
Sie sind für eine Anwendung spezifisch und werden in der App-Registrierung definiert. Sie werden mit der Anwendung verschoben. Sie sind nicht spezifisch für eine App, sondern für einen Azure AD-Mandanten.
App-Rollen werden entfernt, wenn Ihre App-Registrierung entfernt wird. Gruppen bleiben intakt, auch wenn die App entfernt wird.
Werden im roles-Anspruch bereitgestellt. Werden im groups-Anspruch bereitgestellt.

Entwickler können mit App-Rollen steuern, ob ein Benutzer sich bei einer App anmelden kann oder eine App ein Zugriffstoken für eine Web-API abrufen kann. Um diese Sicherheitssteuerung auf Gruppen auszuweiten, können Entwickler und Administratoren auch Sicherheitsgruppen zu App-Rollen zuweisen.

App-Rollen werden von Entwicklern bevorzugt, wenn sie die Parameter der Autorisierung in ihrer App selbst beschreiben und steuern möchten. Beispielsweise wird eine App, die Gruppen für die Autorisierung verwendet, im nächsten Mandanten nicht mehr funktionieren, da sowohl Gruppen-ID als auch Name unterschiedlich sein könnte. Eine App, die App-Rollen verwendet, bleibt sicher. Das Zuweisen von Gruppen zu App-Rollen wird oft bei SaaS-Apps praktiziert, weil dadurch die SaaS-App in mehreren Mandanten bereitgestellt werden kann.

Nächste Schritte

In den folgenden Ressourcen erfahren Sie mehr über App-Rollen.