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.
Le Kit de développement logiciel (SDK) JavaScript nécessite un AuthenticationProvider pour obtenir des jetons JWT pour envoyer des activités au canal cible. Pour plus d’informations, consultez Jetons d’accès dans la plateforme d’identités Microsoft
Le package @microsoft/agents-hosting fournit un fournisseur d’authentification par défaut basé sur MSAL, qui peut être configuré pour les types d’informations d’identification suivants :
- Secret du client
- Certificat client
- Identités gérées attribuées par l'utilisateur
- Certificats d'identité fédérée (FIC)
Locataire unique ou multi-locataires
La clé secrète client et l’authentification par certificat client prennent en charge les configurations monolocataires et multilocataires.
Les identités gérées assignées par l'utilisateur et les justificatifs d'identité fédérée ne prennent en charge que les configurations à locataire unique.
Note
Dans un environnement multilocataire, vous devez configurer l’instance Azure Bot en tant que multilocataire et l’inscription de l’application Microsoft EntraID doit être configurée en tant que Comptes dans n’importe quel répertoire d’organisation (n’importe quel locataire Microsoft Entra ID - Multilocataire). Pour en savoir plus, consultez Applications uniques et mutualisées
Variables d’environnement pour chaque type d’authentification
La configuration est obtenue au moment de l’exécution à partir de variables d’environnement, à l’aide de la fonction loadAuthConfigFromEnv(): AuthConfigurationd’assistance. L’instance CloudAdapter doit être initialisée avec le AuthConfiguration.
En fonction des variables fournies, le type d’authentification est déduit comme décrit ci-dessous.
Environnement à locataire unique avec secret client
| Nom du paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
| tenantId | String | Null | ID de client Microsoft Entra ID pour l’inscription de l’application. |
| clientId | String | Null | ID client (ID d’application) de l’inscription de l’application. |
| Secret du client | String | Null | Secret associé à l’inscription de l’application. Doit être utilisé uniquement à des fins de test et de développement. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
clientSecret={app-registration-secret}
Il s’agit de la configuration recommandée pour le développement local.
Locataire unique avec certificat de client
| Nom du paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
| tenantId | String | Null | ID de client Microsoft Entra ID pour l’inscription de l’application. |
| clientId | String | Null | ID client (ID d’application) de l’inscription de l’application. |
| certPemFile | String | Null | Chemin d’accès au fichier de certificat PEM. |
| certKeyFile | String | Null | Chemin d’accès au fichier de clé privée pour le certificat. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
certPemFile={path-to-pem-file}
certKeyFile={path-to-key-file}
Note
Le fichier de clé ne doit pas utiliser de mot de passe.
Server unique avec identité managée assignée par l'utilisateur
| Nom du paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
| tenantId | String | Null | ID de client Microsoft Entra ID pour l’inscription de l’application. |
| clientId | String | Null | ID client d’identité managée à utiliser lors de la création du jeton d’accès. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
Il s’agit de la configuration recommandée pour les scénarios de production. Pour plus d’informations, consultez Identités managées pour les ressources Azure.
Note
L’agent doit s’exécuter dans n’importe quel service Azure prenant en charge les identités managées. Pour voir quels services Azure prennent en charge les identités managées, consultez les identités managées pour les ressources Azure. L’identité managée doit correspondre à celle configurée dans EntraID. Pour plus d’informations, consultez Comment configurer des identités managées.
Client unique avec identifiants d’identité fédérée
| Nom du paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
| tenantId | String | Null | ID de client Microsoft Entra ID pour l’inscription de l’application. |
| clientId | String | Null | ID client (ID d’application) de l’inscription de l’application. |
| FICClientId | String | Null | ID client de l'identité gérée du crédentiel d'identité fédérée. |
tenantId={tenant-id-guid}
clientId={app-id-guid}
FICClientId={client-id-of-the-FIC}
Pour plus d’informations, consultez Authentification à l’aide des informations d’identification de l’identité fédérée.
Multilocataire avec ClientSecret
| Nom du paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
| clientId | String | Null | ID client (ID d’application) de l’inscription de l’application. |
| Secret du client | String | Null | Secret associé à l’inscription de l’application. Doit être utilisé uniquement à des fins de test et de développement. |
clientId={app-id-guid}
clientSecret={app-registration-secret}
Multilocataire avec certificat client
| Nom du paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
| clientId | String | Null | ID client (ID d’application) de l’inscription de l’application. |
| certPemFile | String | Null | Chemin d’accès au fichier de certificat PEM. |
| certKeyFile | String | Null | Chemin d’accès au fichier de clé privée pour le certificat. |
clientId={app-id-guid}
certPemFile={path-to-pem-file}
certKeyFile={path-to-key-file}
Compatibilité descendante avec le Kit de développement logiciel (SDK) Azure Bot Framework
Pour charger la configuration au même format que le Kit de développement logiciel (SDK) Azure Bot Framework, nous fournissons une autre fonction loadBotAuthConfigFromEnv(): AuthConfigurationd’assistance.
| Nom du paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
| MicrosoftAppTenantId | String | Null | L'ID de locataire Microsoft Entra ID (ancien format SDK Bot Framework). |
| MicrosoftAppId | String | Null | ID client (ID d'application) de l'inscription d'application (format SDK Bot Framework hérité). |
| MicrosoftAppPassword | String | Null | Secret de l’application (format SDK Bot Framework hérité). |
MicrosoftAppTenantId={tenant-id-guid}
MicrosoftAppId={app-id-guid}
MicrosoftAppPassword={app-registration-secret}
Fournisseur d’authentification personnalisé
Les utilisateurs nécessitant un fournisseur d’authentification personnalisé peuvent implémenter l’interface :
export interface AuthProvider {
getAccessToken: (authConfig: AuthConfiguration, scope: string) => Promise<string>
}
Par exemple, implémentons le AuthProvider en utilisant le @azure/identity.
import { EnvironmentCredential } from "@azure/identity"
import { AuthProvider, AuthConfiguration } from "@microsoft/agents-bot-hosting"
class DevTokenProvider implements AuthProvider {
async getAccessToken(authConfig: AuthConfiguration): Promise<string> {
const id = new EnvironmentCredential()
const tokenResponse = await id.getToken("https://api.botframework.com/.default")
return tokenResponse.token
}
Pour instancier CloudAdapter en utilisant DevTokenProvider
const adapter = new CloudAdapter(authConfig, new DevTokenProvider())