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 Microsoft Entra-Gruppen und Gruppenansprüchen wie im active-directory-aspnetcore-webapp-openidconnect-v2-Codebeispiel auf GitHub gezeigt. Microsoft Entra-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 während des App-Registrierungsprozesses über das Microsoft Entra Admin Center. 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 Microsoft Entra ID für jede Rolle, die dem Benutzer oder dem Dienstprinzipal zugewiesen wurde, einen roles
-Anspruch aus, der zur Implementierung der anspruchsbasierten Autorisierung verwendet werden kann. 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 Microsoft Entra ID den ausgegebenen Token derzeit nicht den roles
-Anspruch hinzu.
App-Rollen werden über die Benutzeroberfläche für App-Rollen im Microsoft Entra Admin Center deklariert:
Die Anzahl der von Ihnen hinzugefügten Rollen wird durch Beschränkungen begrenzt, die Microsoft Entra ID erzwingt. Informationen zu diesen Grenzwerten finden Sie im Abschnitt Grenzwerte für das Manifest der Microsoft Entra-App-Manifestreferenz.
App-Rollen-UI
Tipp
Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.
So erstellen Sie eine App-Rolle über die Microsoft Entra Admin Center Benutzeroberfläche:
Melden Sie sich beim Microsoft Entra Admin Center mindestens als Cloudanwendungsadministrator an.
Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol Einstellungen im oberen Menü, um zum Mandanten zu wechseln, der die App-Registrierung aus dem Menü Verzeichnisse + Abonnements enthält.
Wechseln Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie dann die Anwendung aus, in der Sie App-Rollen definieren möchten.
Wählen Sie im Abschnitt für die Verwaltung App-Rollen und dann App-Rolle erstellen aus.
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.
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ürapplications
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. Diese Einstellung steuert die Nutzung und Verfügbarkeit der App-Rolle und ermöglicht gleichzeitig die vorübergehende oder dauerhafte Deaktivierung, ohne sie vollständig zu entfernen. Überprüft Wählen Sie Übernehmen aus, um die Änderungen zu speichern.
Wenn die App-Rolle aktiviert ist, wird sie in die Token aller zugewiesenen Benutzer, Anwendungen oder Gruppen aufgenommen. Dies können Zugriffstoken sein, wenn Ihre App die API ist, die von einer App aufgerufen wird, oder ID-Token, wenn Ihre App einen Benutzer anmeldet. Wenn diese Einstellung auf deaktiviert festgelegt ist, wird sie inaktiv und kann nicht mehr zugewiesen werden. Die App-Rolle verbleibt in den Token aller zuvor zugewiesenen Personen, sie hat aber keine Wirkung mehr, da sie nicht mehr aktiv zugewiesen werden kann.
Zuweisen eines Anwendungsbesitzers
Bevor Sie Anwendungen App-Rollen zuweisen können, müssen Sie sich selbst als Anwendungsbesitzer zuweisen.
- Wählen Sie in Ihrer App-Registrierung unter Verwalten die Optionen Besitzer und Besitzer hinzufügen aus.
- Suchen Sie im neuen Fenster nach den Besitzern, die Sie der Anwendung zuweisen möchten, und wählen Sie sie aus. Ausgewählte Besitzer werden im rechten Bereich angezeigt. Wenn Sie fertig sind, bestätigen Sie mit Auswählen. Die App-Besitzer werden daraufhin in der Liste der Besitzer angezeigt.
Hinweis
Stellen Sie sicher, dass sowohl die API-Anwendung als auch die Anwendung, der Sie Berechtigungen hinzufügen möchten, über einen Besitzer verfügen. Andernfalls wird die API beim Anfordern von API-Berechtigungen nicht aufgeführt.
Zuweisen von App-Rollen zu Anwendungen
Sobald Sie App-Rollen in Ihrer Anwendung hinzugefügt haben, können Sie einer Client-App eine App-Rolle über das Microsoft Entra Admin Center oder programmgesteuert über Microsoft Graph zuweisen. Das Zuweisen einer App-Rolle zu einer Anwendung ist nicht mit dem Zuweisen von Rollen zu Benutzern zu verwechseln.
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 über das Microsoft Entra Admin Center App-Rollen zu:
- Melden Sie sich beim Microsoft Entra Admin Center mindestens als Cloudanwendungsadministrator an.
- Wechseln Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie dann Alle Anwendungen aus.
- 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.
- Wählen Sie die Anwendung aus, der Sie eine App-Rolle hinzufügen möchten.
- Klicken Sie auf API-Berechtigungen>Berechtigung hinzufügen.
- Wählen Sie die Registerkarte Meine APIs aus und dann die App, für die Sie App-Rollen definiert haben.
- Wählen Sie unter Berechtigung die Rollen aus, die Sie zuweisen möchten.
- Wählen Sie die Schaltfläche Berechtigungen hinzufügen aus, um das Hinzufügen der Rollen abzuschließen.
Die neu hinzugefügten Rollen sollten im Bereich API-Berechtigungen der Registrierung Ihrer App angezeigt werden.
Gewähren der Administratoreinwilligung
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.
- Wählen Sie im Bereich API-Berechtigungen der App-Registrierung Administratorzustimmung für <Mandantenname> erteilen aus.
- 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. Je nach Szenario sind diese zugewiesenen App-Rollen in verschiedenen Token enthalten, die für Ihre Anwendung ausgestellt werden. Bei einer App zur Anmeldung von Benutzern sind die Rollenansprüche beispielsweise im ID-Token enthalten. Wenn Ihre Anwendung eine API aufruft, sind die Rollenansprüche im Zugriffstoken enthalten.
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 der Benutzer bei der App authentifiziert und ein Zugriffstoken zum Aufrufen der API anfordert, wird ein Rollenanspruch in das 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 Microsoft Entra-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. Aus denselben Gründen wird das Zuweisen von Gruppen zu App-Rollen oft bei SaaS-Apps praktiziert, weil dadurch die SaaS-App in mehreren Mandanten bereitgestellt werden kann.
Zuweisen von Benutzern und Gruppen zu Microsoft Entra Rollen
Nachdem Sie App-Rollen in Ihrer Anwendung hinzugefügt haben, können Sie den Microsoft Entra-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 die Benutzer, die den verschiedenen Rollen zugewiesen sind, bei der Anwendung anmelden, enthalten deren Token die zugewiesenen Rollen im roles
-Anspruch.
So weisen Sie über das Microsoft Entra Admin Center Benutzer und Gruppen Rollen zu:
- Melden Sie sich beim Microsoft Entra Admin Center mindestens als Cloudanwendungsadministrator an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol Einstellungen im oberen Menü, um zum Mandanten zu wechseln, der die App-Registrierung aus dem Menü Verzeichnisse + Abonnements enthält.
- Browsen Sie zu Identität>Anwendungen>Unternehmensanwendungen.
- 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.
- Wählen Sie die Anwendung aus, in der Sie Benutzer oder eine Sicherheitsgruppe zu Rollen zuweisen möchten.
- Klicken Sie unter Verwalten auf Benutzer und Gruppen.
- Wählen Sie Benutzer hinzufügen aus, um den Bereich Zuweisung hinzufügen zu öffnen.
- 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. Klicken Sie auf die Schaltfläche Auswählen, um fortzufahren.
- 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.
- Wählen Sie eine Rolle und dann die Schaltfläche Auswählen aus.
- 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.
Nächste Schritte
In den folgenden Ressourcen erfahren Sie mehr über App-Rollen.
- Codebeispiele auf GitHub
- Referenzdokumentation
- Video: Implement authorization in your applications with Microsoft identity platform (Implementieren der Autorisierung in Ihren Anwendungen mit Microsoft Identity Platform) (1:01:15)