Azure Communication Identity-Clientbibliothek für .NET – Version 1.2.0
Azure Communication Identity verwaltet Token für Azure Communication Services.
Quellcode | Produktdokumentation | Proben
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure Communication Identity-Clientbibliothek für .NET mit NuGet:
dotnet add package Azure.Communication.Identity
Voraussetzungen
Sie benötigen ein Azure-Abonnement und eine Communication Service-Ressource , um dieses Paket verwenden zu können.
Um einen neuen Kommunikationsdienst zu erstellen, können Sie das Azure-Portal, die Azure PowerShell oder die .NET-Verwaltungsclientbibliothek verwenden.
Authentifizieren des Clients
Der Identitätsclient kann mithilfe einer Verbindungszeichenfolge authentifiziert werden, die von einer Azure-Kommunikationsressourcen im Azure-Portal abgerufen wurde.
// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new CommunicationIdentityClient(connectionString);
Alternativ können Sie auch den Endpunkt und den Zugriffsschlüssel verwenden, der von einer Azure-Kommunikationsressourcen im Azure-Portal abgerufen wurde.
var endpoint = new Uri("https://my-resource.communication.azure.com");
var accessKey = "<access_key>";
var client = new CommunicationIdentityClient(endpoint, new AzureKeyCredential(accessKey));
Clients haben auch die Möglichkeit, sich mit einem gültigen Active Directory-Token zu authentifizieren.
var endpoint = new Uri("https://my-resource.communication.azure.com");
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(endpoint, tokenCredential);
Wichtige Begriffe
CommunicationIdentityClient
stellt die Funktionen zum Verwalten von Benutzerzugriffstoken bereit: Erstellen neuer Token und Widerrufen dieser Token.
Threadsicherheit
Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch threadsübergreifend.
Zusätzliche Konzepte
Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer
Beispiele
Erstellen eines neuen Benutzers
Response<CommunicationUserIdentifier> userResponse = await client.CreateUserAsync();
CommunicationUserIdentifier user = userResponse.Value;
Console.WriteLine($"User id: {user.Id}");
Abrufen eines Tokens für einen vorhandenen Benutzer
Response<AccessToken> tokenResponse = await client.GetTokenAsync(user, scopes: new[] { CommunicationTokenScope.Chat });
string token = tokenResponse.Value.Token;
DateTimeOffset expiresOn = tokenResponse.Value.ExpiresOn;
Console.WriteLine($"Token: {token}");
Console.WriteLine($"Expires On: {expiresOn}");
Es ist auch möglich, ein Kommunikationsidentitäts-Zugriffstoken zu erstellen, indem Sie die Ablaufzeit anpassen. Die Gültigkeitsdauer des Tokens muss innerhalb des [1,24] Stunden-Bereichs liegen. Wenn nicht angegeben, wird der Standardwert von 24 Stunden verwendet.
TimeSpan tokenExpiresIn = TimeSpan.FromHours(1);
Response<AccessToken> tokenResponse = await client.GetTokenAsync(user, scopes: new[] { CommunicationTokenScope.Chat }, tokenExpiresIn);
string token = tokenResponse.Value.Token;
DateTimeOffset expiresOn = tokenResponse.Value.ExpiresOn;
Console.WriteLine($"Token: {token}");
Console.WriteLine($"Expires On: {expiresOn}");
Erstellen eines Benutzers und eines Tokens in derselben Anforderung
Response<CommunicationUserIdentifierAndToken> response = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.Chat });
var (user, token) = response.Value;
Console.WriteLine($"User id: {user.Id}");
Console.WriteLine($"Token: {token.Token}");
Es ist auch möglich, ein Kommunikationsidentitäts-Zugriffstoken zu erstellen, indem Sie die Ablaufzeit anpassen. Die Gültigkeitsdauer des Tokens muss innerhalb des [1,24] Stunden-Bereichs liegen. Wenn nicht angegeben, wird der Standardwert von 24 Stunden verwendet.
TimeSpan tokenExpiresIn = TimeSpan.FromHours(1);
Response<CommunicationUserIdentifierAndToken> response = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.Chat }, tokenExpiresIn);
var (user, token) = response.Value;
Console.WriteLine($"User id: {user.Id}");
Console.WriteLine($"Token: {token.Token}");
Aufheben der Token eines Benutzers
Falls die Token eines Benutzers kompromittiert sind oder widerrufen werden müssen:
Response revokeResponse = await client.RevokeTokensAsync(user);
Löschen eines Benutzers
Response deleteResponse = await client.DeleteUserAsync(user);
Austauschen des Azure AD-Zugriffstokens eines Teams-Benutzers gegen ein Kommunikationsidentitäts-Zugriffstoken
Kann CommunicationIdentityClient
verwendet werden, um ein Azure AD-Zugriffstoken eines Teams-Benutzers gegen ein neues Kommunikationsidentitäts-Zugriffstoken mit einer übereinstimmenden Ablaufzeit auszutauschen.
Die GetTokenForTeamsUser
Funktion akzeptiert die folgenden Parameter, die in den GetTokenForTeamsUserOptions
Optionsbehälter eingeschlossen sind:
teamsUserAadToken
Azure Active Directory-Zugriffstoken eines Teams-BenutzersclientId
Client-ID einer Azure AD-Anwendung, die anhand des AppId-Anspruchs im Azure AD-Zugriffstoken überprüft werden solluserObjectId
Objekt-ID eines Azure AD-Benutzers (Teams-Benutzer), der anhand des OID-Anspruchs im Azure AD-Zugriffstoken überprüft werden soll
Response<AccessToken> tokenResponse = await client.GetTokenForTeamsUserAsync(new GetTokenForTeamsUserOptions(teamsUserAadToken, clientId, userObjectId));
string token = tokenResponse.Value.Token;
Console.WriteLine($"Token: {token}");
Problembehandlung
Bei allen Vorgängen des Benutzertokendiensts wird bei einem Fehler eine RequestFailedException ausgelöst.
// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new CommunicationIdentityClient(connectionString);
try
{
Response<CommunicationUserIdentifier> response = await client.CreateUserAsync();
}
catch (RequestFailedException ex)
{
Console.WriteLine(ex.Message);
}
Nächste Schritte
Weitere Informationen zu Kommunikationsbenutzerzugriffstoken
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.