Konfigurieren der Authentifizierung für API-Plug-Ins in Agents
Sie können die Authentifizierung für API-Plug-Ins in Agents konfigurieren, die in Microsoft 365 Copilot ausgeführt werden, indem Sie eines der vier unterstützten Authentifizierungsschemas verwenden, um eine nahtlose Verbindung mit ihren Back-End-APIs herzustellen:
- OAuth 2.0-Autorisierungscodefluss
- Microsoft Entra ID Authentifizierung mit einmaligem Anmelden (Single Sign On, SSO)
- API-Schlüsselauthentifizierung
- Keine Authentifizierung (anonym)
OAuth 2.0-Autorisierungscodefluss
Ein Plug-In kann mithilfe eines Bearertokens, das über den OAuth 2.0-Autorisierungscodeflow abgerufen wurde, mit optionaler Unterstützung für Proof Key for Code Exchange (PKCE) auf eine API zugreifen.
Bevor Sie beginnen, müssen Sie sich bei Ihrem OAuth 2.0-Anbieter registrieren, um eine Client-ID und einen geheimen Schlüssel zu erhalten. Wenn Ihr OAuth-Anbieter erfordert, dass Sie während der App-Registrierung zulässige Umleitungs-URIs angeben, stellen Sie sicher, dass Sie in die Liste einschließen https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect
.
Wichtig
Die API-Plug-In-Unterstützung für OAuth 2.0 weist die folgenden Einschränkungen auf.
- API-Plug-Ins unterstützen nur den Autorisierungscodeflow für OAuth 2.0.
- OAuth 2.0-Server, die HTTP-status-Codes von ihrem Tokenendpunkt zurückgeben
307 Temporary Redirect
, werden nicht unterstützt.
Sie können dieses Schema in der securitySchemes
-Eigenschaft eines OpenAPI-Dokuments definieren. Weitere Informationen finden Sie unter OAuth 2.0.
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: <authorization_url>
tokenUrl: <token_url>
refreshUrl: <refresh_url>
scopes:
scope: description
Um die OAuth 2.0-Authentifizierung zu aktivieren, müssen Sie einen OAuth-Client im Teams-Entwicklerportal registrieren. Sie können einen OAuth-Client beim Teams-Toolkit in Visual Studio Code oder manuell im Teams-Entwicklerportal registrieren.
Registrieren eines OAuth-Clients beim Teams Toolkit
Teams Toolkit registriert Ihren OAuth-Client und aktualisiert Ihr App-Paket für Sie, wenn Sie einen Agent mit API-Plug-In aus einem vorhandenen OpenAPI-Dokument erstellen. Die -Eigenschaft muss in Ihrem OpenAPI-Dokument definiert sein securitySchemes
.
Wenn Ihr OAuth-Anbieter PKCE unterstützt, heben Sie die Auskommentierung der folgenden Codezeile in teamsapp.yml in Ihrem Agent-Projekt auf, bevor Sie den Agent bereitstellen.
# isPKCEEnabled: true
Registrieren eines OAuth-Clients im Teams-Entwicklerportal
Öffnen Sie das Teams-Entwicklerportal. Wählen Sie Tools ->OAuth-Clientregistrierung aus.
Wenn Keine Registrierungen vorhanden sind, wählen Sie Client registrieren aus. Wenn Sie über vorhandene Registrierungen verfügen, wählen Sie Neue OAuth-Clientregistrierung aus.
Füllen Sie die folgenden Felder aus.
- Registrierungsname: Ein Anzeigename für Ihre Registrierung.
-
Basis-URL: Die Basis-URL Ihrer API. Dieser Wert sollte einem Eintrag im
servers
Array in Ihrem OpenAPI-Dokument entsprechen. - Client-ID: Die Client-ID oder Anwendungs-ID, die von Ihrem OAuth 2.0-Anbieter ausgestellt wurde.
- Geheimer Clientschlüssel: Ihr geheimer Clientschlüssel, der von Ihrem OAuth 2.0-Anbieter ausgestellt wurde.
- Autorisierungsendpunkt: Die URL ihres OAuth 2.0-Anbieters, die Apps zum Anfordern eines Autorisierungscodes verwenden.
- Tokenendpunkt: Die URL Ihres OAuth 2.0-Anbieters, die Apps verwenden, um einen Code für ein Zugriffstoken einzulösen.
- Aktualisierungsendpunkt: Die URL Ihres OAuth 2.0-Anbieters, die Apps zum Aktualisieren des Zugriffstokens verwenden.
- Bereich: Der von Ihrer API definierte Berechtigungsbereich, der den Zugriff zulässt.
- Proof Key for Code Exchange (PKCE) aktivieren: Aktivieren Sie diese Einstellung, wenn Ihr OAuth-Anbieter PKCE unterstützt.
Klicken Sie auf Speichern.
Wenn Sie die Registrierung abschließen, wird eine OAuth-Clientregistrierungs-ID generiert.
Hinzufügen der Clientregistrierungs-ID zum Plug-In-Manifest
Um die OAuth 2.0-Authentifizierung für Ihr API-Plug-In zu verwenden, legen Sie die type
-Eigenschaft des Laufzeitauthentifizierungsobjekts auf OAuthPluginVault
fest, und legen Sie auf reference_id
die Clientregistrierungs-ID aus dem Teams-Entwicklerportal fest.
"auth": {
"type": "OAuthPluginVault",
"reference_id": "auth registration ID"
},
Microsoft Entra ID-SSO-Authentifizierung
Microsoft Entra ID SSO-Authentifizierung ermöglicht eine nahtlose Integration des einmaligen Anmeldens (Single Sign-On, SSO), sodass sich Benutzer mit ihren vorhandenen anmeldeinformationen Microsoft Entra ID authentifizieren können. Diese Integration vereinfacht die Zugriffsverwaltung und stellt sichere Verbindungen mit APIs sicher, ohne dass zusätzliche Anmeldeinformationen erforderlich sind. Ihre API muss Microsoft Entra ID verwenden, um den Zugriff zu steuern.
Registrieren eines SSO-Clients im Teams-Entwicklerportal
Öffnen Sie das Teams-Entwicklerportal. Wählen Sie Tools ->Microsoft Entra SSO-Client-ID-Registrierung aus.
Wenn keine Registrierungen vorhanden sind, wählen Sie Client-ID registrieren aus. Wenn Sie über vorhandene Registrierungen verfügen, wählen Sie Neue Clientregistrierung aus.
Füllen Sie die folgenden Felder aus.
- Registrierungsname: Ein Anzeigename für Ihre Registrierung.
-
Basis-URL: Die Basis-URL Ihrer API. Dieser Wert sollte einem Eintrag im
servers
Array in Ihrem OpenAPI-Dokument entsprechen. - Nutzung nach Organisation einschränken: Wählen Sie aus, welche Microsoft 365-organization Zugriff auf Ihre App hat, um auf API-Endpunkte zuzugreifen.
- Nutzung nach App einschränken: Wählen Sie Eine beliebige Teams-App aus, wenn Sie Ihre endgültige App-ID nicht kennen. Nachdem Sie Ihre App veröffentlicht haben, binden Sie diese Registrierung an Ihre veröffentlichte App-ID.
- Client-ID: Die Client-ID der App, die in Microsoft Entra registriert ist.
Klicken Sie auf Speichern.
Durch Abschließen der Registrierung werden eine Microsoft Entra SSO-Registrierungs-ID und ein Anwendungs-ID-URI generiert.
Aktualisieren der Microsoft Entra App-Registrierung
Öffnen Sie Microsoft Entra Admin Center. Aktualisieren Sie die Microsoft Entra App-Registrierung, die Ihre API mit dem anwendungs-ID-URI schützt, der vom Teams-Entwicklerportal generiert wird. Wenn Sie über einen vorhandenen Anwendungs-ID-URI verfügen, der der App-Registrierung zugeordnet ist, können Sie den Manifest-Editor verwenden, um im Abschnitt identifierUris einen weiteren URI hinzuzufügen.
"identifierUris": [ "<<URI1>>" "<<URI2>>" ]
Hinweis
Das Hinzufügen mehrerer URIs wird über die Benutzeroberfläche des Microsoft Entra Admin Center nicht unterstützt. Auf der Benutzeroberfläche wird nur der erste URI in der Liste angezeigt. Das Hinzufügen mehrerer URIs wirkt sich nicht auf Ihre vorhandenen URIs und Bereiche aus, auch wenn sie auf der Benutzeroberfläche anders angezeigt werden.
Wählen Sie unter Verwalten die Option Authentifizierung aus. Fügen Sie
https://teams.microsoft.com/api/platform/v1.0/oAuthConsentRedirect
den Umleitungs-URIs auf der Webplattform hinzu.Wählen Sie unter Verwalten die Option Eine API verfügbar machen aus. Wählen Sie Clientanwendung hinzufügen aus, und fügen Sie die Client-ID des Unternehmenstokenspeichers von Microsoft hinzu.
ab3be6b7-f5df-413d-ac2d-abf1e3fd9c0b
Hinzufügen der SSO-Registrierungs-ID zum Plug-In-Manifest
Legen Sie die type
-Eigenschaft des Laufzeitauthentifizierungsobjekts auf OAuthPluginVault
fest, und legen Sie auf reference_id
die Microsoft Entra SSO-Registrierungs-ID aus dem Teams-Entwicklerportal fest.
"auth": {
"type": "OAuthPluginVault",
"reference_id": "SSO registration ID"
},
Hinzufügen der neuen Tokenzielgruppe zu Ihrer API
Aktualisieren Sie Ihre API, um den neuen Bezeichner-URI als Tokenzielgruppe zuzulassen. Wenn Ihre API die Clientanwendungs-ID überprüft, stellen Sie sicher, dass die Client-ID des Microsoft Enterprise-Tokenspeichers (ab3be6b7-f5df-413d-ac2d-abf1e3fd9c0b
) als zulässige Clientanwendung hinzugefügt wird.
Tipp
Wenn Ihre API den On-Behalf-of-Flow verwendet, um Zugriff auf eine andere Web-API zu erhalten, für die der Benutzer seine Zustimmung erteilen muss, geben Sie einen 401 Unauthorized
Fehler zurück, der bewirkt, dass der Agent den Benutzer auffordert, sich anzumelden, um seine Zustimmung zu erteilen.
API-Schlüsselauthentifizierung
Einige APIs verwenden API-Schlüssel für die Autorisierung. Ein API-Schlüssel ist ein gemeinsam genutztes Geheimnis, das der Client in API-Anforderungen einschließt, um sich zu authentifizieren und Zugriff zu erhalten. API-Plug-Ins unterstützen das Senden des API-Schlüssels auf drei Arten:
- Als Bearertoken im
Authorization
Header - Als Wert in einem benutzerdefinierten Header
- Als Abfrageparameter
Hinzufügen eines API-Schlüssels zu Ihrem OpenAPI-Dokument
Microsoft 365 Copilot bestimmt, wie der API-Schlüssel basierend auf dem securitySchemes
Eintrag in Ihrem OpenAPI-Dokument gesendet wird.
Bearertoken
Wenn Ihre API den API-Schlüssel als Bearertoken akzeptiert, aktivieren Sie die Bearerauthentifizierung in Ihrem OpenAPI-Dokument. Weitere Informationen finden Sie unter Bearerauthentifizierung.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
Benutzerdefinierter Header
Wenn Ihre API den API-Schlüssel in einem benutzerdefinierten Header akzeptiert, aktivieren Sie die API-Schlüsselauthentifizierung in Ihrem OpenAPI-Dokument, wobei die in
Eigenschaft auf header
und die name
Eigenschaft auf den Headernamen festgelegt ist. Weitere Informationen finden Sie unter API-Schlüssel.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
Abfrageparameter
Wenn Ihre API den API-Schlüssel in einem Abfrageparameter akzeptiert, aktivieren Sie die API-Schlüsselauthentifizierung in Ihrem OpenAPI-Dokument, wobei die in
Eigenschaft auf und die name
Eigenschaft auf query
den Namen des Abfrageparameters festgelegt ist. Weitere Informationen finden Sie unter API-Schlüssel.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: query
name: api_key
Registrieren eines API-Schlüssels
Um die API-Schlüsselauthentifizierung zu aktivieren, müssen Sie den API-Schlüssel im Teams-Entwicklerportal registrieren. Sie können den API-Schlüssel beim Teams-Toolkit in Visual Studio Code oder manuell im Teams-Entwicklerportal registrieren.
Registrieren eines API-Schlüssels beim Teams Toolkit
Teams Toolkit registriert Ihren API-Schlüssel und aktualisiert Ihr App-Paket für Sie, wenn Sie einen Agent mit API-Plug-In aus einem vorhandenen OpenAPI-Dokument erstellen. Die -Eigenschaft muss in Ihrem OpenAPI-Dokument definiert sein securitySchemes
.
Hinweis
Teams Toolkit unterstützt nur API-Schlüssel als Bearertoken und kann keine API-Plug-Ins basierend auf OpenAPI-Dokumenten erstellen, die einen benutzerdefinierten Header oder Abfrageparameter verwenden. Als Problemumgehung können Sie die securitySchemes
Eigenschaften und security
vorübergehend aus Ihrer OpenAPI entfernen, um das Plug-In-Paket zu generieren, und sie dann vor der Bereitstellung wieder dem OpenAPI-Dokument im Plug-In-Projekt hinzufügen. Sie müssen den API-Schlüssel manuell registrieren.
Registrieren eines API-Schlüssels im Teams-Entwicklerportal
Öffnen Sie das Teams-Entwicklerportal. Wählen Sie Tools ->API-Schlüsselregistrierung aus.
Wenn Keine Registrierungen vorhanden sind, wählen Sie API-Schlüssel erstellen aus. Wenn Sie über vorhandene Registrierungen verfügen, wählen Sie Neuer API-Schlüssel aus.
Wählen Sie Geheimnis hinzufügen aus, und geben Sie den API-Schlüssel ein.
Füllen Sie die folgenden Felder aus.
- API-Schlüsselname: Ein Anzeigename für Ihre Registrierung.
-
Basis-URL: Die Basis-URL Ihrer API. Dieser Wert sollte einem Eintrag im
servers
Array in Ihrem OpenAPI-Dokument entsprechen. - Zielmandant: Beschränken Sie den API-Zugriff auf den Basismandanten oder nicht.
- Teams-App als Ziel: Wählen Sie Eine beliebige Teams-App aus, wenn Sie Ihre endgültige App-ID nicht kennen. Nachdem Sie Ihre App veröffentlicht haben, binden Sie diese Registrierung an Ihre veröffentlichte App-ID.
Klicken Sie auf Speichern.
Durch Abschließen der Registrierung wird eine API-Schlüsselregistrierungs-ID generiert.
Hinzufügen der REGISTRIERUNGS-ID des API-Schlüssels zum Plug-In-Manifest
- Legen Sie in Ihrer Plug-In-Manifestdatei die
type
-Eigenschaft des Laufzeitauthentifizierungsobjekts aufApiKeyPluginVault
fest, und legen Sie aufreference_id
die REGISTRIERUNGS-ID des API-Schlüssels aus dem Teams-Entwicklerportal fest.
"auth": {
"type": "ApiKeyPluginVault",
"reference_id": "app key registration ID"
},
Keine Authentifizierung (anonym)
Für APIs, die keine Authentifizierung erfordern, oder für Entwicklerumgebungen, in denen die Authentifizierung noch nicht implementiert ist, können Plug-Ins anonym auf die APIs zugreifen. Legen Sie in diesem Fall die type
-Eigenschaft des Laufzeitauthentifizierungsobjekts auf fest None
.
"auth": {
"type": "None"
},