Semion Vasilevitzky und Jonathan Elkabas

Anmerkung der Redaktion: Willkommen zum vierten und letzten Übungsleitfaden der Reihe „Entra ID-Agenten-Identitätsangriffe verstehen und verhindern: Ein umfassender Leitfaden“. Diese mehrteilige technische Anleitung hilft Ihnen dabei, den Ansatz von Microsoft in Bezug auf Agentenidentitäten zu verstehen und zu erfahren, wie Sie diese vor Angreifern schützen können. Um frühere Kapitel und Übungslektionen noch einmal durchzugehen, beginnen Sie bitte hier.

In Kapitel 5 unseres Leitfadens haben Sie die Agent-Registrierung von Microsoft kennengelernt und deren Verwendung geübt sowie die Abläufe von drei Authentifizierungsabläufen für Agentenidentitäten in Entra ID durchgespielt.

In diesem „Practice Checkpoint“ werden wir die drei besprochenen Abläufe überprüfen, indem wir jeden einzelnen von Anfang bis Ende über Microsoft Graph nachverfolgen und die tatsächlichen Token-Claims in jedem Schritt anzeigen, um alle Zusammenhänge zu verdeutlichen.

Aus Gründen der Einheitlichkeit und Übersichtlichkeit werden wir weiterhin dieselbe Agentenidentität verwenden, die wir in den vorherigen Schritten erstellt haben, und die in den einzelnen Abläufen erzeugten Token überprüfen.

Hier finden Sie eine kurze Zusammenfassung der Informationen, die Sie benötigen:

  • Blueprint-ID = 3534ec06-21ea-4080-abd4-95116e260203
  • Blueprint-SP-ID = 17a48807-f813-421b-85b9-8c7e794bc4b9
  • Agenten-ID = b85d92be-fa90-486b-94ed-b5ad91d35ceb
  • User-Agent-ID = 2954440b-1617-46b1-9156-dad15f1f824f
  • Vererbbare delegierte Berechtigungen = Group.Read.All
  • Direkte, ausschließlich auf die App bezogene Berechtigungen auf der Ebene der Agentenidentität = User.Read.All

Autonomer Durchfluss

In diesem Ablauf muss die Agentenidentität selbst auf eine Ressource zugreifen.

Zunächst müssen wir das T1-Token abrufen. Dies ähnelt dem Abruf eines Zugriffstokens für einen Agent-Identitäts-Blueprint, weist jedoch zwei wesentliche Unterschiede auf:

  • Geltungsbereich = api://AzureADTokenExchange/.default
  • include fmi_path = <agent-identity-id>
Abbildung 1. Abruf des T1-Tokens

Wir können das T1-Token entschlüsseln, wobei gilt:

  • Oid wird der SP-ID des Entwurfs zugeordnet.
  • „azp“ wird der Blueprint-ID der Agentenidentität zugeordnet.
  • aud gehört zur Anwendung „AAD Token Exchange Endpoint“, die api://AzureADTokenExchange.
Abbildung 2: Dekodierung des T1-Tokens

Mithilfe des T1-Tokens können wir nun das Zugriffstoken für die Agentenidentität abrufen.

Abbildung 3: Abruf des Zugriffstokens für die Agentenidentität

Betrachtet man das Graph-Token, so lässt sich Folgendes feststellen:

  • Die Behauptung bezieht sich auf Microsoft Graph.
  • Die „appid“ sowie der „oid“- Claim entsprechen der ID des Agenten.
  • Die Rollen Der Anspruch umfasst die User.Read.All Berechtigung, die wir zuvor vergeben und direkt der Agentenidentität als rein app-spezifische Berechtigung zugewiesen haben.

Zu diesem Zeitpunkt kann die Agentenidentität entsprechend ihren reinen App-Berechtigungen den Graph im Mandanten aufrufen.

Abbildung 4: Entschlüsselung des Zugriffstokens für die Identität des Graph-Agenten

„Im Auftrag von“-Ablang

In diesem Ablauf führt die Agentenidentität delegierte Aktionen als Benutzer aus und veranschaulicht vererbbare delegierte Gültigkeitsbereiche.

Zunächst müssen wir ein Client-Token (TC) abrufen. Dazu müssen wir zunächst die OAuth2-Berechtigungsbereiche im Blueprint festlegen und dies mit meinem Benutzer bestätigen.

Abbildung 5: Festlegen der OAuth2-Berechtigungsbereiche im Blueprint

Als nächsten Schritt werden wir über die Benutzeroberfläche eine SAP-Anwendung anlegen.

Abbildung 6: Registrierung unserer SAP-Anwendung

Wir werden die soeben erstellten Blueprint-Berechtigungen zu unserer DemoSAP-Anwendung hinzufügen:

Abbildung 7: Hinzufügen von Blueprint-Berechtigungen zu unserer SAP-Demoanwendung

Für diese Demo werden wir auch den öffentlichen Client-Ablauf zulassen:

Abbildung 8: Umschalten zur Aktivierung öffentlicher Client-Flows in unserer Demo-Authentifizierung

Nun können wir ein TC-Token abrufen. Die ClientID ist die soeben erstellte Anwendungs-ID:

Abbildung 9. Abrufen eines TC-Tokens mithilfe der neu erstellten Anwendungs-ID

Als Nächstes müssen wir die üblichen Einwilligungsabfragen durchgehen.

Abbildung 10. Erteilung von Berechtigungen für unsere Demo-Anwendung

Dadurch wird das TC-Token zurückgegeben, das mir als Benutzer gehört. Wir können erkennen, dass der „aud“-Eintrag die Blueprint-ID ist:

Abbildung 11. Die Dekodierung des TC-Tokens zeigt, dass der „aud“-Claim die Blueprint-ID der Agentenidentität ist.

Nun können wir das T1-Token mit derselben Methode abrufen, die wir bereits verwendet haben.

Abbildung 12. Erneutes Abrufen des T1-Tokens

Bevor wir fortfahren, müssen wir unsere Zustimmung erteilen, damit die Agentenidentität im Namen unseres Benutzers handeln kann. Dies geschieht über einen standardmäßigen OAuth2PermissionGrants-Aufruf mit dem Geltungsbereich, den wir als vererbbare Berechtigungen zugewiesen haben.

Falls Sie im Abschnitt „Konfiguration vererbbarer Berechtigungen“ bereits „AllPrincipals“ zugestimmt haben, können Sie diesen Aufruf überspringen.

Abbildung 13. Ermächtigung des Agenten, im Namen des Benutzers zu handeln

Schließlich können wir mithilfe der TC- und T1-Token das Zugriffstoken (TR) abrufen.

Abbildung 14. Abrufen des TR-Zugriffstokens

Das entschlüsselte Zugriffstoken lautet wie folgt:

  • SCP-Anspruch mit den vererbbaren „Group.Read.All“-Berechtigungen, die wir zuvor auf Blueprint-Ebene hinzugefügt haben.
  • Der Anzeigename der App und der „appid“-Claim, die die Identität des Agenten angeben, der im Namen des Benutzers handelt.
  • Die Claims „idtyp“, „name“ und „oid“ gehören alle dem Benutzer (da es sich um ein delegiertes Token handelt).
Abbildung 15. Dekodierung des TR-Zugriffstokens

Benutzerablauf des Agenten

Dieser Ablauf ist für einen Agentenbenutzer relevant, der Aktionen im Benutzerkontext ausführen muss.

Wie beim autonomen Ablauf mit Agentenidentität müssen wir ein T1-Token erhalten.

Abbildung 16. Abruf des T1-Tokens für den Authentifizierungsablauf unseres Agentenbenutzers

Als Nächstes müssten wir zustimmen, dass die Agentenidentität im Namen des Agentenbenutzers handeln darf, so wie wir es im OBO-Ablauf getan haben.

Dieses Mal werden wir die Benutzer-ID des Agenten als Prinzipal-ID angeben. Falls Sie im Abschnitt „Konfiguration vererbbarer Berechtigungen“ bereits „AllPrincipals“ zugestimmt haben, können Sie diesen Aufruf überspringen.

Abbildung 17. Ermächtigung der Agentenidentität, im Namen des Agentenbenutzers zu handeln

Nun können wir mithilfe des T1-Tokens das T2-Token erhalten.

Abbildung 18. Abruf des T2-Tokens für den Authentifizierungsablauf unseres Agentenbenutzers

Das entschlüsselte T2-Token enthält die Claims „azp“, „oid“ und „sub“, die alle auf die ID des Agenten gesetzt sind.

Abbildung 19. Offenlegung der Agenten-ID in den Claims unserer dekodierten T2-Token

Mithilfe der T1- und T2-Token können wir das TR-Zugriffstoken abrufen.

Abbildung 20. Abruf des TR-Zugriffstokens für unseren Authentifizierungsablauf für Agentenbenutzer

Wie wir sehen können, wurde dieses Zugriffstoken für Microsoft Graph ausgestellt. Es enthält folgende Angaben:

  • Die Angabe „idtyp“ bezieht sich auf einen Benutzer
  • Die OID -Angabe entspricht der Benutzer-ID des Agenten
  • „appid“ ist auf die ID des Agenten gesetzt, der der übergeordnete Benutzer des Agenten ist.
  • scp enthält die Group.Read.All, die Zielfernrohre, die wir zuvor angebracht haben.
Abbildung 21. Dekodierung des für Microsoft Graph ausgestellten Zugriffstokens im Rahmen des Authentifizierungsablaufs für Agentenbenutzer

Nun verfügen Sie über eine funktionierende Agentenidentität. Wie schützen Sie diese?

Durch den Aufbau Ihrer Agentenidentität im Rahmen dieser Übungssitzungen sollten Sie ein praktisches Verständnis dafür gewonnen haben, wie Agenten in Ihrem Entra ID-Mandanten arbeiten werden.

Lesen Sie nun das letzte Kapitel unseres Leitfadens, um sich einen Überblick darüber zu verschaffen, was schiefgehen kann – und wie Sie diese neuen Identitäten schützen können.

Erfahren Sie in Kapitel 6, wie Sie Katastrophen verhindern können.


Entdecken Sie den Leitfaden