Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Rollenbasierte Zugriffssteuerung (RBAC) ermöglicht bestimmten Benutzern oder Gruppen, bestimmte Berechtigungen für den Zugriff auf und die Verwaltung von Ressourcen zu besitzen. Anwendungs-RBAC unterscheidet sich von der rollenbasierten Zugriffssteuerung von Azure und der rollenbasierten Zugriffssteuerung von Microsoft Entra. Benutzerdefinierte Azure-Rollen und integrierte Rollen sind beide Teil von Azure RBAC, das zum Verwalten von Azure-Ressourcen verwendet wird. Microsoft Entra RBAC wird zum Verwalten von Microsoft Entra-Ressourcen verwendet. In diesem Artikel werden anwendungsspezifische RBAC erläutert. Informationen zum implementieren der anwendungsspezifischen rollenbasierten Zugriffssteuerung finden Sie unter Hinzufügen von App-Rollen zu Ihrer Anwendung und Empfangen der Rollen im Token.
Rollendefinitionen
RBAC ist ein beliebter Mechanismus zum Erzwingen der Autorisierung in Anwendungen. Wenn eine Organisation RBAC verwendet, definiert ein Anwendungsentwickler Rollen, anstatt einzelne Benutzer oder Gruppen zu autorisieren. Ein Administrator kann dann verschiedenen Benutzern und Gruppen Rollen zuweisen, um zu steuern, wer Zugriff auf Inhalte und Funktionen hat.
RBAC hilft einem Anwendungsentwickler, Ressourcen und deren Nutzung zu verwalten. RBAC ermöglicht es einem Anwendungsentwickler auch, die Bereiche einer Anwendung zu steuern, auf die Benutzer zugreifen können. Administratoren können steuern, welche Benutzer Zugriff auf eine Anwendung haben, indem sie die erforderliche Eigenschaft " Benutzerzuweisung" verwenden . Entwickler müssen bestimmte Benutzer innerhalb der Anwendung berücksichtigen und was Benutzer innerhalb der Anwendung tun können.
Ein Anwendungsentwickler erstellt zunächst eine Rollendefinition im Registrierungsabschnitt der Anwendung im Microsoft Entra Admin Center. Die Rollendefinition enthält einen Wert, der für Benutzer zurückgegeben wird, die dieser Rolle zugewiesen sind. Ein Entwickler kann diesen Wert dann verwenden, um Anwendungslogik zu implementieren, um zu bestimmen, was diese Benutzer in einer Anwendung tun können oder nicht.
RBAC-Optionen
Die folgenden Richtlinien sollten bei der Einbeziehung der rollenbasierten Zugriffssteuerungsautorisierung in eine Anwendung beachtet werden:
- Definieren Sie die Rollen, die für die Autorisierungsanforderungen der Anwendung erforderlich sind.
- Anwenden, Speichern und Abrufen der relevanten Rollen für authentifizierte Benutzer.
- Bestimmen Sie das Anwendungsverhalten basierend auf den Rollen, die dem aktuellen Benutzer zugewiesen sind.
Nachdem die Rollen definiert wurden, unterstützt die Microsoft Identity Platform verschiedene Lösungen, die zum Anwenden, Speichern und Abrufen von Rolleninformationen für authentifizierte Benutzer verwendet werden können. Zu diesen Lösungen gehören App-Rollen, Microsoft Entra-Gruppen und die Verwendung von benutzerdefinierten Datenspeichern für Benutzerrolleninformationen.
Entwickler können ihre eigene Implementierung flexibel dafür bereitstellen, wie Rollenzuweisungen als Anwendungsberechtigungen interpretiert werden sollen. Diese Interpretation der Berechtigungen kann mithilfe von Middleware oder anderen Optionen erfolgen, die von der Plattform der Anwendungen oder den zugehörigen Bibliotheken bereitgestellt werden. Anwendungen erhalten in der Regel Benutzerrolleninformationen in Form von Ansprüchen und legen dann Benutzerberechtigungen basierend auf diesen Ansprüchen fest.
App-Rollen
Mit der Microsoft Entra-ID können Sie App-Rollen für Ihre Anwendung definieren und Benutzern und anderen Anwendungen diese Rollen zuweisen. Die Rollen, die Sie einem Benutzer oder einer Anwendung zuweisen, definieren deren Zugriffsebene auf die Ressourcen und Vorgänge in Ihrer Anwendung.
Wenn Die Microsoft Entra-ID ein Zugriffstoken für einen authentifizierten Benutzer oder eine authentifizierte Anwendung ausgibt, enthält sie die Namen der Rollen, die Sie der Entität (dem Benutzer oder der Anwendung) im Anspruch des roles
Zugriffstokens zugewiesen haben. Eine Anwendung wie eine Web-API, die dieses Zugriffstoken in einer Anforderung empfängt, kann dann Autorisierungsentscheidungen basierend auf den Werten im roles
Anspruch treffen.
Gruppen
Entwickler können auch Microsoft Entra-Gruppen verwenden, um RBAC in ihren Anwendungen zu implementieren, in denen die Mitgliedschaften des Benutzers in bestimmten Gruppen als ihre Rollenmitgliedschaften interpretiert werden. Wenn eine Organisation Gruppen verwendet, enthält das Token einen Gruppenanspruch. Der Gruppenanspruch bestimmt die Bezeichner für alle zugewiesenen Gruppen des Benutzers innerhalb des Mandanten.
Von Bedeutung
Beim Arbeiten mit Gruppen müssen Entwickler das Konzept eines Überlastungsanspruchs kennen. Wenn ein Benutzer das Überschreitungslimit (150 bei SAML-Token, 200 bei JWT-Token, 6 bei Nutzung des impliziten Flows) überschreitet, gibt Microsoft Entra ID standardmäßig keinen Gruppenanspruch im Token aus. Stattdessen enthält es einen "Überlastungsanspruch" im Token, der angibt, dass der Verbraucher des Tokens die Microsoft Graph-API abfragen muss, um die Gruppenmitgliedschaften des Benutzers abzurufen. Weitere Informationen zum Arbeiten mit Überschreitungsansprüchen finden Sie unter Ansprüche in Zugriffstoken. Es ist möglich, nur Gruppen auszuweisen, die einer Anwendung zugewiesen sind, obwohl eine gruppenbasierte Zuweisung Microsoft Entra ID P1 oder P2 Edition erfordert.
Benutzerdefinierter Datenspeicher
App-Rollen und -Gruppen speichern Informationen zu Benutzerzuweisungen im Microsoft Entra-Verzeichnis. Eine weitere Möglichkeit zum Verwalten von Benutzerrolleninformationen, die Entwicklern zur Verfügung stehen, besteht darin, die Informationen außerhalb des Verzeichnisses in einem benutzerdefinierten Datenspeicher zu verwalten. Beispiel: in einer SQL-Datenbank, Azure Table Storage oder Azure Cosmos DB for Table.
Die Verwendung von benutzerdefiniertem Speicher ermöglicht Entwicklern zusätzliche Anpassungen und Kontrolle darüber, wie Sie Benutzern Rollen zuweisen und wie sie dargestellt werden. Die zusätzliche Flexibilität führt jedoch auch zu mehr Verantwortung. Es ist z. B. kein Mechanismus verfügbar, um diese Informationen in Token einzuschließen, die von der Microsoft Entra-ID zurückgegeben werden. Anwendungen müssen die Rollen abrufen, wenn Rolleninformationen in einem benutzerdefinierten Datenspeicher verwaltet werden. Das Abrufen der Rollen erfolgt in der Regel mithilfe von Erweiterungspunkten, die in der Middleware definiert sind, die für die Plattform verfügbar ist, die zum Entwickeln der Anwendung verwendet wird. Entwickler sind dafür verantwortlich, den benutzerdefinierten Datenspeicher ordnungsgemäß zu schützen.
Auswählen eines Ansatzes
Im Allgemeinen sind App-Rollen die empfohlene Lösung. App-Rollen bieten das einfachste Programmiermodell und sind speziell entwickelt für RBAC-Implementierungen. Bestimmte Anwendungsanforderungen können jedoch darauf hinweisen, dass ein anderer Ansatz eine bessere Lösung wäre.
Entwickler können app-Rollen verwenden, um zu steuern, ob sich ein Benutzer bei einer Anwendung anmelden kann, oder eine Anwendung kann ein Zugriffstoken für eine Web-API abrufen. App-Rollen werden gegenüber Microsoft Entra Gruppen von Entwicklern bevorzugt, wenn sie die Parameter der Autorisierung in ihren Anwendungen beschreiben und steuern möchten. Beispielsweise kann eine Anwendung, die Gruppen für die Autorisierung verwendet, im nächsten Mandanten zusammenbrechen, da sowohl der Gruppenbezeichner als auch der Name unterschiedlich sein könnten. Eine Anwendung, die App-Rollen verwendet, bleibt sicher.
Obwohl app-Rollen oder Gruppen für die Autorisierung verwendet werden können, können wichtige Unterschiede zwischen ihnen einflussen, was die beste Lösung für ein bestimmtes Szenario ist.
App-Rollen | Microsoft Entra-Gruppen | Benutzerdefinierter Datenspeicher | |
---|---|---|---|
Programmiermodell | Am einfachsten. Sie sind spezifisch für eine Anwendung und werden in der Anwendungsregistrierung definiert. Sie bewegen sich mit der Anwendung. | Komplexer. Gruppen-IDs variieren zwischen Mandanten, und Überschreitungsansprüche müssen möglicherweise berücksichtigt werden. Gruppen sind nicht spezifisch für eine Anwendung, sondern für einen Microsoft Entra-Mandanten. | Am komplexesten Entwickler müssen Mittel implementieren, mit denen Rolleninformationen sowohl gespeichert als auch abgerufen werden. |
Rollenwerte sind statisch zwischen Microsoft Entra-Mandanten | Ja | Nein | Hängt von der Implementierung ab. |
Rollenwerte können in mehreren Anwendungen verwendet werden | Nein (Es sei denn, die Rollenkonfiguration wird in jeder Anwendungsregistrierung dupliziert.) | Ja | Ja |
Im Verzeichnis gespeicherte Informationen | Ja | Ja | Nein |
Informationen werden über Token übermittelt. | Ja (Rollenanspruch) | Ja (Wenn eine Überlastung besteht, müssen Gruppenansprüche möglicherweise zur Laufzeit abgerufen werden) | Nein (Wird zur Laufzeit über benutzerdefinierten Code abgerufen). |
Lebensdauer | Ist in der Anwendungsregistrierung im Verzeichnis enthalten. Wird entfernt, wenn die Anwendungsregistrierung entfernt wird. | Ist im Verzeichnis enthalten. Bleiben auch dann erhalten, wenn die Anwendungsregistrierung entfernt wird. | Lebt im benutzerdefinierten Datenspeicher. Nicht an die Anwendungsregistrierung gebunden. |
Nächste Schritte
- Azure-Identitätsverwaltung und Sicherheit der Zugriffssteuerung – Bewährte Methoden
- Informationen zur ordnungsgemäßen Autorisierung mit Tokenansprüchen finden Sie unter Sichern von Anwendungen und APIs durch Überprüfen von Ansprüchen