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.
TypeSpec für Microsoft 365 Copilot unterstützt mehrere Authentifizierungsmethoden, um API-Plug-Ins zu schützen und in externe Dienste zu integrieren. Zu den unterstützten Authentifizierungstypen gehören:
- Keine Authentifizierung für öffentliche Endpunkte
- API-Schlüsselauthentifizierung für einfachen tokenbasierten Zugriff
- OAuth2-Autorisierungscodefluss für sichere Nicht-Microsoft-Integrationen
- Entra ID-Authentifizierung für einmaliges Anmelden (Single Sign-On, SSO) für eine nahtlose Microsoft 365-Identitätsintegration
Hinweis
In dieser Dokumentation werden Microsoft 365 Copilot spezifische Authentifizierungsszenarien behandelt. Eine umfassende Dokumentation zur TypeSpec-Authentifizierung, einschließlich aller nativen Authentifizierungsdekortoren und -muster, finden Sie in der TypeSpec-Dokumentation zur Authentifizierung.
Keine Authentifizierung (anonym)
Öffentliche Endpunkte, die keine Anmeldeinformationen für die Authentifizierung erfordern. Für die API sind keine spezifischen Anforderungen erforderlich. Ohne @useAuth Decorators gelten alle APIs als anonym.
Beispiel
@service
@actions(ACTIONS_METADATA)
@server(SERVER_URL, API_NAME)
namespace API {
// Endpoints
}
API-Schlüsselauthentifizierung
Authentifizierung mithilfe von API-Schlüsseln oder persönlichen Zugriffstoken, die auf ganze Namespaces angewendet werden. Verwenden Sie die native ApiKeyAuth aus TypeSpec.
Beispiel
@service
@actions(ACTIONS_METADATA)
@server(SERVER_URL, API_NAME)
@useAuth(ApiKeyAuth<ApiKeyLocation.header, "X-Your-Key">)
namespace API {
// Endpoints
}
Das Microsoft 365 Agents Toolkit kann Ihren API-Schlüssel automatisch registrieren und fügt die apiKey/register Aktion auch m365agents.yml in Ihrem Agents Toolkit-Projekt hinzu.
# m365agents.yml
# After the typespec/compile step
- uses: apiKey/register
with:
name: ApiKeyAuth
appId: ${{TEAMS_APP_ID}}
apiSpecPath: ./appPackage/.generated/api-openapi.yml
writeToEnvironmentFile:
registrationId: APIKEYAUTH_REGISTRATION_ID
Im Beispiel Verwalten von Reparaturen mit Microsoft 365 Copilot wird die Verwendung der API-Schlüsselauthentifizierung hervorgehoben.
OAuth2-Autorisierungscodeflow
Vom Benutzer delegierte Berechtigungen für den Zugriff auf Benutzerdaten eines durch OAuth2 geschützten Diensts. Verwenden Sie die native OAuth2Auth aus TypeSpec. Aktualisieren Sie , authorizationUrltokenUrl, refreshUrlund scopes basierend auf der spezifischen API, mit der Sie eine Integration durchführen.
Erfahren Sie, wie Sie die Entra ID-App automatisch mit dem Agents Toolkit erstellen und die Entra ID-App aktualisieren , nachdem die Registrierung abgeschlossen ist.
Beispiel
@service
@actions(ACTIONS_METADATA)
@server(SERVER_URL, API_NAME)
@useAuth(OAuth2Auth<[{
type: OAuth2FlowType.authorizationCode;
authorizationUrl: "https://contoso.com/oauth2/v2.0/authorize";
tokenUrl: "https://contoso.com/oauth2/v2.0/token";
refreshUrl: "https://contoso.com/oauth2/v2.0/token";
scopes: ["scope-1", "scope-2"];
}]>)
namespace API {
// Endpoints
}
Das Microsoft 365 Agents Toolkit kann Ihre OAuth2-Konfiguration automatisch registrieren und fügt die oauth/register Aktion auch m365agents.yml in Ihrem Agents Toolkit-Projekt hinzu.
# m365agents.yml
# After the typespec/compile step
- uses: oauth/register
with:
name: OAuth2Auth
appId: ${{TEAMS_APP_ID}}
clientId: ${{AAD_APP_CLIENT_ID}}
clientSecret: ${{SECRET_AAD_APP_CLIENT_SECRET}}
apiSpecPath: ./appPackage/.generated/api-openapi.yml
flow: authorizationCode
writeToEnvironmentFile:
configurationId: OAUTH2AUTH_REGISTRATION_ID
Der Aufgaben-Agent, der TypeSpec für Microsoft 365 Copilot verwendet, der eine Verbindung mit den Microsoft Graph-APIs herstellt, hebt die Verwendung von OAuth2 mit Autorisierungscodeflow hervor.
Entra ID SSO-Authentifizierung
Nahtlose Authentifizierung, die die vorhandene Microsoft 365-Sitzung des Benutzers für native Integrationsszenarien anwendet. Verwenden Sie zum Abschließen der SSO-Registrierung den regulären OAuth2Auth Ablauf, und führen Sie die manuellen Schritte aus.
Verwenden von registrierten Authentifizierungskonfigurationen
Registrieren und verwalten Sie für Produktionsszenarien Authentifizierungsanmeldeinformationen über das Microsoft Teams-Entwicklerportal, anstatt sie direkt in TypeSpec-Code einzubetten. Verwenden Sie den @authReferenceId Decorator, um auf vorregistrierte Authentifizierungskonfigurationen anhand ihrer eindeutigen Bezeichner zu verweisen. Dieser Ansatz bietet eine sichere Möglichkeit, Anmeldeinformationen zu verarbeiten, ohne vertrauliche Informationen in Ihrer Codebasis verfügbar zu machen.
Wenn Sie verwenden @authReferenceId, geben Sie die Registrierungs-ID aus OAuth-Clientregistrierungen oder API-Schlüsselregistrierungen an, die im Entwicklerportal konfiguriert sind. Dieser Ansatz trennt die Authentifizierungskonfiguration vom Code und ermöglicht bessere Sicherheitsmethoden und eine einfachere Verwaltung von Anmeldeinformationen in verschiedenen Umgebungen.
Beispiel
// Reference to OAuth2 client registration
@service
@actions(ACTIONS_METADATA)
@server(SERVER_URL, API_NAME)
@useAuth(Auth)
namespace API {
// Endpoints
}
@authReferenceId("NzFmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IyM5NzQ5Njc3Yi04NDk2LTRlODYtOTdmZS1kNDUzODllZjUxYjM=")
model Auth is OAuth2Auth<[{
type: OAuth2FlowType.authorizationCode;
authorizationUrl: "https://contoso.com/oauth2/v2.0/authorize";
tokenUrl: "https://contoso.com/oauth2/v2.0/token";
refreshUrl: "https://contoso.com/oauth2/v2.0/token";
scopes: ["scope-1", "scope-2"];
}]>
// Reference to API key registration
@service
@actions(ACTIONS_METADATA)
@server(SERVER_URL, API_NAME)
@useAuth(Auth)
namespace API {
// Endpoints
}
@authReferenceId("5f701b3e-bf18-40fb-badd-9ad0b60b31c0")
model Auth is ApiKeyAuth<ApiKeyLocation.header, "X-Your-Key">