Méthodes d’authentification
Pour utiliser Dataverse ServiceClient, deux approches principales sont disponibles pour gérer l’authentification auprès d’un environnement Dataverse. La première option est que ServiceClient peut gérer l’authentification à l’aide de ses fonctionnalités intégrées pour utiliser la bibliothèque d’authentification Microsoft (MSAL). Grâce à cette approche, ServiceClient gère en interne le processus d’authentification. L’autre option est entièrement personnalisée, dans laquelle vous fournissez une fonction que ServiceClient appelle pour obtenir un jeton d’accès OAuth. À l’aide de cette option, vous êtes responsable de tous les aspects du processus d’authentification.
Utiliser l’authentification intégrée à ServiceClient
L’approche vous permettant de vous authentifier dépend du constructeur que vous utilisez sur ServiceClient. L’utilisation d’une chaîne de connexion que vous récupérez à partir de la configuration de votre application ou d’Azure Key Vault est un choix typique. ServiceClient dispose d’autres options de constructeur qui prennent des parties des options de chaîne de connexion comme paramètres si vous préférez ne pas utiliser de chaîne de connexion. Toutes ces options permettent à ServiceClient d’utiliser ses fonctionnalités d’authentification intégrées. Voici certains des scénarios d’authentification que vous pouvez gérer à l’aide de cette approche :
OAuth demandant l’authentification à l’aide du compte nommé dans Microsoft 365 avec expérience utilisateur
OAuth demandant l’authentification à l’aide de l’utilisateur actuellement connecté avec une expérience utilisateur de base
Authentification par certificat
Authentification basée sur ClientId et ClientSecret
Voici un exemple de chaîne de connexion pour l’authentification basée sur ClientId et ClientSecret :
<add name="MyDataverse"
connectionString="
AuthType=ClientSecret;
url=https://contosotest.crm.dynamics.com;
ClientId={AppId};
ClientSecret={ClientSecret}"
/>
Vous pouvez consulter la documentation sur les chaînes de connexion pour d’autres exemples d’options.
Utiliser ServiceClient avec l’authentification personnalisée
L’utilisation de l’authentification personnalisée vous permet de contrôler l’acquisition du jeton. Lorsque vous utilisez des applications web ou des applications devant implémenter un jeton au nom de Flow à des fins d’authentification utilisateur, il est généralement recommandé d’utiliser cette approche. Lorsque vous utilisez cette approche, vous devez fournir une fonction que ServiceClient appelle lorsqu’il a besoin d’un jeton d’accès pour accéder à Dataverse. La fonction prend un seul paramètre, instanceUrl, et doit renvoyer un jeton d’accès à une chaîne.
Voici un exemple d’utilisation de l’authentification personnalisée :
Uri instanceUrl = new Uri("https://YourEnvironmentName.crm.dynamics.com");
ServiceClient serviceClient = new ServiceClient(
instanceUrl,
MyTokenProvider,
useUniqueInstance: true
);
Dans l’exemple ci-dessus, MyTokenProvider doit disposer de la logique nécessaire pour acquérir et renvoyer le jeton.
Voici un exemple de ce à quoi ressemblerait cette fonction sans la logique permettant d’obtenir le jeton :
static async Task<string> MyTokenProvider(string instanceUrl)
{
// Your logic to get the token
return ">TheToken>";
}
Vérifier si elle est prête à l’emploi
Avant d’utiliser l’instance de ServiceClient, vous pouvez vérifier si elle est prête à l’emploi en vérifiant la propriété IsReady. Si elle est définie sur true, le service Dataverse est prêt à accepter des demandes. Si elle est définie sur false, vous pouvez analyser les propriétés LastError et LastException pour en savoir plus sur les problèmes survenus.