Dezember 2025
Autor des Beitrags
Maximilian
Team Lead Business Apps and KI
Veröffentlicht am
16.12.2025 von Maximilian
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter
SSO & OBO richtig konfigurieren

Szenario: Teams-Bot greift im Benutzerkontext auf Azure Ressourcen zu

Im Entwicklungsverlauf eines TeamsBots zeigt sich folgendes Anforderungsszenario: Der Bot soll im Kontext der angemeldeten Person auf weitere AzureRessourcen zugreifen.

Dieser Beitrag behandelt die dafür notwendige Grundlage in AzureSingle SignOn (SSO)-, sowie die korrekte Einrichtung des OnBehalfOf(OBO)Flows. Neben dem Rollenverständnis und konkreten Konfigurationsschritten werden kompakte Codebeispiele aus einer Referenzimplementierung erläutert, einschließlich der Integration von Azure AI Search mit Zugriffskontrolle auf Dokumentebene (RBAC) über den Bot. 

Warum in diesem Szenario die Tokenbeschaffung via OBO zwingend erforderlich ist

 

Das TeamsSSO stellt dem Bot ein Token bereit, dessen Audience auf die BotAPI (App Registration: ExposeanAPI, z. B. api://botid-<CLIENT_ID>/access_as_user) gerichtet ist. Dieses Token ist nicht für nachgelagerte Dienste wie Azure AI Search verwendbar, da die Audience und Scopes nicht passen.

Azure AI Search verlangt für Abfragen im Benutzerkontext ein delegiertes Zugriffstoken mit Audiencehttps://search.azure.com und Scope .default. Nur mit einem solchen Ressourcentoken kann der Dienst den Identitätskontext der angemeldeten Person auswerten und RowLevel Security zuverlässig erzwingen.

Der OBOFlow löst genau dieses Problem:

Das vom TeamsClient gelieferte SSOTokendessen Audience auf die App zeigt, die das OBO-Token anfordert wird serverseitigsicher und ohne erneute Benutzerinteraktion gegen ein AzureAISearchToken mit korrekter Audience und Scope getauscht. Dieses Token wird anschließend im Header x-msquerysource-authorization an Azure AI Search übergeben, damit der Dienst die Anfrage der konkreten Person zuordnen und gegen im Index hinterlegte ACLInformationen (z. B. userIds, groupIds) prüfen kann. 

 

Warum Alternativen nicht geeignet sind 

 

Optionen wie reine Query oder AdminKeys des SearchDienstes sind für dieses Anforderungsszenario ungeeignet. Ein Key authentifiziert nur die Anwendung, nicht die Personund würde die Durchsetzung von dokumentenbezogenen Berechtigungen im Sinne von LeastPrivilege und Compliance unterlaufen.  

Auch reine Anwendungsberechtigungen (Application Permissions) ohne Delegation sind problematisch, da sie den individuellen Kontext der angemeldeten Person nicht abbilden. Das OBOMuster stellt dagegen sicher, dass der Bot als vertraulicher Client agiert, die Identität delegiert und alle DownstreamAufrufe, wie etwa Microsoft Graph oder Azure AI Search, mit der tatsächlichen Benutzeridentität stattfinden.  

Ausgangslage und Zielsetzung 

 

Ziel ist ein Teams-Bot, der: 

  • ein SSO-Token aus dem Teams-Client erhält, 
  • dieses Token mittels OBO-Flow gegen Ressourcentokens (z.B. Microsoft Graph, Azure AI Search) eintauscht, 
  • Downstream-Aufrufe im Benutzerkontext ausführt (z.B. Row-Level Security in Azure AI Search wirksam macht). 

Dabei sind drei Elemente entscheidend: die App-Registrierung (Expose an API + API Permissions), die Bot OAuth Connection im Azure Bot Service und der OBO-Flow in der Applogik. 

 

Architekturüberblick und Rollen 

 

  1. Teams-Client: initiiert SSO und liefert das SSO-Token an den Bot. Das SSO Token muss, damit der OBO-Flow funktioniert, auf die App von der aus der Flow aufgerufen wird, ausgestellt sein.
  2. Azure Entra ID (Azure AD): stellt Tokens aus, verwaltet App-Registrierungen, Scopes und Clientautorisierungen. 
  3. Bot (Azure Bot Service + App Service): nimmt das SSO-Token entgegen, tauscht es via OBO gegen Tokens für Ziel-APIs (mit dem entsprechenden Scopes. Im Falle von AI Search: https://search.azure.com/.default). 
  4. Downstream-APIs können mit dem OBO Token verwendet werden: 
    • Microsoft Graph (z. B. Gruppenmitgliedschaftsprüfung), 
    • Azure AI Search (das Access Token wird im Header x-ms-query-source-authorization übertragen, damit Row-Level Security wirksam wird). 
    • uvm. 

Konfiguration in Azure (SSO-Grundlage) 

 

1) App-Registrierung: Expose an API 

  • Application ID URI setzen: 
    • Format: api://botid-<CLIENT_ID> 
  • Scope anlegen: 
    • Name: access_as_user 
    • Who can consent: Admins and users 
    • State: Enabled 
  • Autorisierte Clientanwendungen hinzufügen (Mindestens die Teams-Clients): 
    • Mindestens die Teams-Clients
      • 1fec8e78-bce4-4aaf-ab1b-5451cc387264 (Teams Mobile/Desktop) 
      • 5e3ce6c0-2b1f-4285-8d4b-75ee78787346 (Teams Web)
    • Scope-Zuordnung: access_as_user

Hinweis: Die autorisierten Clients verhindern wiederholte Zustimmungsprompts und stellen eine reibungslose SSO-Erfahrung sicher. 

 

2) App-Registrierung: API-Berechtigungen (Delegated) 

API Berechtigunge hinzufügen, auf welche der Bot Zugriff haben soll. Bspw.: 

  • Azure Cognitive Search: 
    • user_impersonation (Delegated) 

 Nach dem ersten Deployment ist ggf. der Admin-Consent zu erteilen, damit OBO-gestützte Graph-Aufrufe funktionieren. 

 

3) Azure Bot Service: OAuth Connection (AAD v2) 

Im Azure Bot Service muss unter Settings -> Configuration -> Add OAuth Connection Settings eine OAuth Connection registriert werden: 

  • Name: api (muss mit der App-Konfiguration im Code übereinstimmen)  
  • Service Provider: Azure Active Directory v2 
  • Client ID: Client-ID der App-Registrierung 
  • Client secret: Secret der App-Registrierung 
  • Tenant ID: common (Multi-Tenant) oder die feste Tenant-ID 
  • Token Exchange URL: api://botid-<BOT_ID> 
  • Scopes: api://botid-<BOT_ID>/access_as_user 

Diese Connection liefert das SSO-Token an die App. 

 

Codebeispiele aus der Referenzimplementierung 

 

Die folgenden Auszüge zeigen, wie ein SSO-Token empfangen und persistiert wird, ein OBO-Token für Zielressourcen bezogen wird und wie nachgelagerte APIs im Benutzerkontext aufgerufen werden. Der Bot wurde mithilfe der Teams AI Library erstellt. 

SSO Token: 

In Teams AI gibt es die Möglichkeit bestimmte Events, wie das Sign-In-Event zu subscriben. Dort lässt sich dann eine eigne Logik implementieren, um das Token bspw. in einem globalen State zu speichern. 

 

OBO-Flow:  

Um im Namen der angemeldeten Person auf Ressourcen (z. B. Azure AI Search) zuzugreifen, wird das SSO-Token per OBO-Flow gegen ein Access Token mit passendem Scope der entsprechenden Ressource (bspw.: https://search.azure.com/.default) getauscht: 

Aufruf von Downstream APIs: 

Mithilfe des erhaltenen OBO-Token lassen sich nun Downstream APIs aufrufen wie eine Vektor-Suche in Azure AI Search. Der Benutzerkontext wird über den Header x-ms-query-source-authorization an Azure AI Search übergeben. Dadurch greift Row-Level-Security anhand der im Index hinterlegten Benutzer-/Gruppen-IDs. 

Unser Fazit

 

Die korrekte Einrichtung von SSO und OBO ist die Grundlage, um in Teams-Bots sicher und nahtlos im Benutzerkontext auf Azure-Ressourcen zuzugreifen. Nur durch den On-Behalf-Of-Flow lässt sich gewährleisten, dass nachgelagerte Dienste wie Azure AI Search oder Microsoft Graph den Identitätskontext der angemeldeten Person zuverlässig auswerten und Berechtigungen auf Dokument- oder Objektebene enforced werden. Das Ergebnis ist eine saubere, sichere und benutzerzentrierte Architektur  ganz im Sinne von Least Privilege und Compliance. 

 

Sie möchten mehr infos?

Wir sind für Sie da.

Bei welchem Projekt oder welcher Herausforderung dürfen wir Sie unterstützen?
Wir sind gerne für Sie da.

 

HEIKO WESSELS

+49 89 71040920

heiko@provectus.de

 

Zum Kontaktformular

 

Wollen Sie immer up2date sein? Dann melden Sie sich jetzt zu unserem Newsletter an

Bleiben Sie auf dem Laufenden. Wir informieren Sie regelmäßig über aktuelle Trends und technologische Neuerungen sowie geplante Webinare und Events. Sie erhalten Einblick in interessante Kundenprojekte und werfen einen Blick hinter die Kulissen. Melden Sie sich jetzt an.

Zur Newsletter Anmeldung 

Alles Wissenswerte

auf einen Blick
Wofür interessieren Sie sich?
Success Story
Blogbeitrag
Whitepaper
Webinar
Echt Ich
Blogbeitrag

Szenario: Teams-Bot greift im Benutzerkontext auf Azure Ressourcen zu 

Im Entwicklungsverlauf eines Teams–Bots zeigt sich folgendes Anforderungsszenario: Der Bot soll im Kontext der angemeldeten Person auf weitere Azure–Ressourcen zugreifen.
Weiterlesen
Blogbeitrag

Unser Start ins Trainee-Programm bei Provectus 

Unsere Trainees berichten von den ersten Monaten im Provectus-Traineeprogramm, geben Einblicke in Workshops, Lernphasen und den täglichen Einsatz von KI-Tools und zeigen, wie sie auf ihre Rolle als Junior Professionals vorbereitet werden.
Weiterlesen
Blogbeitrag

Endgeräte-Sicherheitsprüfung mit deviceTRUST: Windows Update-Stand & Browser-Versionen als Zugangskriterium für Citrix 

Erfahren Sie, wie deviceTRUST mit OS- und Browser-Checks unsichere Endgeräte stoppt und Ihren Citrix-Zugang spürbar sicherer macht.
Weiterlesen
Blogbeitrag

STUDIE zur Microsoft 365 Sicherheit 2025: Unternehmen müssen ihre Strategie umdenken 

Die Studie „State of Microsoft 365 Security 2025“ zeigt: Unternehmen unterschätzen ihre Sicherheitsrisiken. Fehlkonfigurationen, fehlende MFA und fehlende Backups machen M365 zur Gefahr. Erfahren Sie, wie Zero Trust, Evergreen und Backup-Strategien Ihre Umgebung wirklich schützen.
Weiterlesen
Blogbeitrag

Microsoft neue hybride Bereitstellungsoptionen für Azure Virtual Desktop auf Ignite 2025

Die neue Option erlaubt es, VM´s als Arc-enabled Servers zu registrieren und als Session-Hosts für Azure Virtual Desktop zu nutzen.
Weiterlesen
Webinar

Webinar: Unternehmens-KI ohne Medienbruch – Wissen sicher und zentral in Microsoft Teams nutzen 

Erfahren Sie im Webinar, wie Sie KI sicher in Microsoft Teams integrieren, Unternehmenswissen zentral bündeln, Medienbrüche vermeiden und eine leistungsfähige Azure-Infrastruktur für moderne KI-Lösungen aufbauen.
Weiterlesen
Webinar

Webinar am 10.12. – Zero Trust: Seit Jahren auf der Agenda, aber nie im Budget

Erfahren Sie im Webinar, warum Zero Trust jetzt höchste Priorität hat. KI erhöht die Risiken, fehlende Sicherheitsarchitektur bremst. So entwickeln Unternehmen ihre Zero-Trust-Strategie weiter.
Weiterlesen
Blogbeitrag

Microsoft Teams erkennt den Bürostandort

Was bedeutet das neue Feature rechtlich? Die Antwort darauf beleuchten wir im Interview mit Wilfried Reiners, Anwalt Für IT-Recht.
Weiterlesen
Webinar

Webinar: Strategiewechsel im VDI-Segment? Citrix & Microsoft im Vergleich

Dieses Kostenlose Webinar richtet sich an IT-Entscheider & App-Virtualisierungs-Verantwortliche, die vor der Entscheidung stehen, ob ein Wechsel zu Microsoft AVD oder Windows 365 sinnvoll ist.
Weiterlesen
Blogbeitrag

Microsoft M365-Kit im Praxistest

Das M365-Kit bietet strukturierte Vorlagen für Datenschutz-Dokumentation, bleibt jedoch stark Microsoft-zentriert und erfordert eigene Prüfungen zu Themen wie Telemetriedaten, Löschfristen und Drittlandtransfers.
Weiterlesen
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter