Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
TypeSpec for Microsoft 365 Copilot prend en charge plusieurs méthodes d’authentification pour sécuriser les plug-ins d’API et s’intégrer à des services externes. Les types d’authentification pris en charge sont les suivants :
- Aucune authentification pour les points de terminaison publics
- Authentification par clé API pour un accès simple basé sur des jetons
- Flux de code d’autorisation OAuth2 pour les intégrations sécurisées non-Microsoft
- Authentification unique (SSO) de l’ID Entra pour une intégration transparente des identités Microsoft 365
Remarque
Cette documentation couvre Microsoft 365 Copilot scénarios d’authentification spécifiques. Pour obtenir une documentation complète sur l’authentification TypeSpec, y compris tous les modèles et décorateurs d’authentification natifs, consultez la documentation TypeSpec sur l’authentification.
Aucune authentification (anonyme)
Points de terminaison publics qui ne nécessitent aucune information d’identification d’authentification. L’API ne nécessite rien de spécifique. Sans @useAuth éléments décoratifs, toutes les API sont considérées comme anonymes.
Exemple
@service
@actions(ACTIONS_METADATA)
@server(SERVER_URL, API_NAME)
namespace API {
// Endpoints
}
Authentification par clé API
Authentification à l’aide de clés API ou de jetons d’accès personnels appliqués à des espaces de noms entiers. Utilisez le natif ApiKeyAuth de TypeSpec.
Exemple
@service
@actions(ACTIONS_METADATA)
@server(SERVER_URL, API_NAME)
@useAuth(ApiKeyAuth<ApiKeyLocation.header, "X-Your-Key">)
namespace API {
// Endpoints
}
Microsoft 365 Agents Toolkit peut inscrire automatiquement votre clé API et ajoutera également l’action apiKey/register à m365agents.yml dans votre projet Agents Toolkit.
# 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
L’exemple Gérer les réparations à l’aide de Microsoft 365 Copilot met en évidence l’utilisation de l’authentification par clé API.
Flux de code d’autorisation OAuth2
Autorisations déléguées par l’utilisateur pour accéder aux données utilisateur d’un service protégé par OAuth2. Utilisez le natif OAuth2Auth de TypeSpec. Mettez à jour , authorizationUrltokenUrl, refreshUrlet scopes en fonction de l’API spécifique à laquelle vous intégrez.
Découvrez comment créer automatiquement l’application Entra ID à l’aide du Kit de ressources Agents et mettre à jour l’application Entra ID une fois l’inscription terminée.
Exemple
@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
}
Microsoft 365 Agents Toolkit peut inscrire automatiquement votre configuration OAuth2 et ajoutera également l’action oauth/register à m365agents.yml dans votre projet Agents Toolkit.
# 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
L’agent Tasks utilisant TypeSpec pour Microsoft 365 Copilot qui se connecte à l’exemple d’API Microsoft Graph met en évidence l’utilisation d’OAuth2 avec le flux de code d’autorisation.
Authentification unique Entra ID
Authentification transparente appliquant la session Microsoft 365 existante de l’utilisateur pour les scénarios d’intégration native. Pour terminer l’inscription de l’authentification unique, utilisez le flux normal OAuth2Auth et effectuez les étapes manuelles.
Utilisation de configurations d’authentification inscrites
Pour les scénarios de production, inscrivez et gérez les informations d’identification d’authentification via le portail des développeurs Microsoft Teams au lieu de les incorporer directement dans le code TypeSpec. Utilisez l’élément @authReferenceId décoratif pour référencer les configurations d’authentification préinscription par leurs identificateurs uniques. Cette approche offre un moyen sécurisé de gérer les informations d’identification sans exposer d’informations sensibles dans votre codebase.
Lorsque vous utilisez @authReferenceId, spécifiez l’ID d’inscription à partir des inscriptions de client OAuth ou des inscriptions de clés API configurées dans le portail des développeurs. Cette approche sépare la configuration de l’authentification du code, ce qui permet de meilleures pratiques de sécurité et une gestion plus facile des informations d’identification dans différents environnements.
Exemple
// 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">