Authentifizierungsmethoden

Abgeschlossen

Es sind zwei primäre Ansätze für die Authentifizierung bei einem Dataverse-Umgebung verfügbar, um den Dataverse-ServiceClient zu verwenden. Die erste Option ist es, dass ServiceClient die Authentifizierung mithilfe seiner integrierten Funktionen zur Verwendung der Microsoft-Authentifizierungsbibliothek (MSAL) durchführen kann. Bei dieser Methode verwaltet ServiceClient den Authentifizierungsprozess intern. Die andere Option ist vollständig benutzerdefiniert. Sie stellen eine Funktion zur Verfügung, die der ServiceClient aufruft, um ein OAuth-Zugriffstoken abzurufen. Wenn Sie diese Option verwenden, sind Sie für alle Aspekte des Authentifizierungsprozesses verantwortlich.

Die integrierte ServiceClient-Authentifizierung verwenden

Es ist von dem auf ServiceClient verwendeten Konstruktor abhängig, welchen Ansatz Sie zur Authentifizierung verwenden. Typischerweise wird eine einer Verbindungszeichenfolge verwendet, die Sie aus Ihrer Anwendungskonfiguration oder Azure Key Vault abrufen. ServiceClient verfügt über andere Konstruktoroptionen, die Teile der Verbindungszeichenfolgen-Optionen als Parameter übernehmen, wenn Sie keine Verbindungszeichenfolge verwenden möchten. Alle diese Optionen ermöglichen es ServiceClient, seine integrierten Authentifizierungsfunktionen zu verwenden. Im Folgenden sind einige der Authentifizierungsszenarien aufgeführt, die Sie mit dieser Methode bewältigen können:

  • OAuth verwendet benanntes Konto in Microsoft 365 mit UX, um zur Authentifizierung aufzufordern

  • OAuth verwendet den aktuell angemeldeten Benutzer mit Fallback-UX, um zur Authentifizierung aufzufordern

  • Zertifikatbasierte Authentifizierung

  • ClientId‑ und ClientSecret-basierte Authentifizierung

Hier finden Sie ein Beispiel für eine Verbindungszeichenfolge für die auf ClientId und ClientSecret basierende Authentifizierung:

<add name="MyDataverse"
  connectionString="
  AuthType=ClientSecret;
  url=https://contosotest.crm.dynamics.com;
  ClientId={AppId};
  ClientSecret={ClientSecret}"
  />

Sie können die Verbindungszeichenfolge-Dokumentation für weitere Optionsbeispiele überprüfen.

ServiceClient mit benutzerdefinierter Authentifizierung verwenden

Mit der benutzerdefinierten Authentifizierung können Sie den Token-Erwerb steuern. Wenn Sie mit Webanwendungen oder Anwendungen arbeiten, die zur Benutzerauthentifizierung einen Flow im Namen des Benutzers implementieren müssen, wird in der Regel die Verwendung dieses Ansatzes empfohlen. Wenn Sie diesen Ansatz verwenden, müssen Sie eine Funktion bereitstellen, die ServiceClient aufruft, wenn für den Zugriff auf Dataverse ein Zugriffstoken erforderlich ist. Für die Funktion wird ein einzelner Parameter benötigt, eine „instanceUrl“, und für sie muss ein Zeichenfolge-Zugriffstoken zurückgegeben werden.

Hier ist ein Beispiel für das Verwenden der benutzerdefinierten Authentifizierung:

Uri instanceUrl = new Uri("https://YourEnvironmentName.crm.dynamics.com");

ServiceClient serviceClient = new ServiceClient(
    instanceUrl,
    MyTokenProvider,
    useUniqueInstance: true
);

Im obigen Beispiel muss MyTokenProvider die erforderliche Logik haben, um das Token abzurufen und zurückzugeben.

Hier ist ein Beispiel, wie diese Funktion ohne die Logik zum Abrufen des Tokens aussehen würde:

static async Task<string> MyTokenProvider(string instanceUrl)
{
    // Your logic to get the token

    return ">TheToken>";
}

Prüfen, ob dies einsatzbereit ist

Bevor Sie die ServiceClient-Instanz verwenden, können Sie die Eigenschaft IsReady überprüfen, um festzustellen, ob es einsatzbereit ist. Bei „true“ ist der Dataverse-Dienst bereit, Anforderungen anzunehmen. Bei „false“ können Sie die Eigenschaften LastError und LastException auswerten, um Details zu aufgetretenen Problemen zu bekommen.