Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Knihovna identity se používá pro správu uživatelů a tokenů pro Azure Communication Services.
Začínáme
Prerequisites
- Předplatné služby Azure.
- Existující prostředek komunikační služby. Pokud potřebujete prostředek vytvořit, můžete použít webuAzure Portal, Azure PowerShellu nebo Azure CLI.
Instalování
npm install @azure/communication-identity
Podpora prohlížečů
JavaScriptový balíček
Pokud chcete tuto klientskou knihovnu použít v prohlížeči, musíte nejprve použít bundler. Podrobnosti o tom, jak to udělat, najdete v naší dokumentaci sdružování.
Klíčové koncepty
Clients
Poskytuje CommunicationIdentityClient metody pro správu uživatelů a jejich tokenů.
Examples
Authentication
Klíč a/nebo připojovací řetězec můžete získat ze svého zdroje Communication Services v Azure Portal. Jakmile máte klíč, můžete ho ověřit CommunicationIdentityClient některou z následujících metod:
Vytvořte KeyCredential s před AzureKeyCredential inicializací klienta
import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const key = "<some-key>";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new AzureKeyCredential(key);
const client = new CommunicationIdentityClient(endpoint, credential);
Použití připojovacího řetězce
import { CommunicationIdentityClient } from "@azure/communication-identity";
// Example connection string
const connectionString =
"endpoint=https://contoso.eastus.communications.azure.net/;accesskey=secret";
const client = new CommunicationIdentityClient(connectionString);
Pomocí TokenCredential
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
Pokud k inicializaci klienta použijete klíč, budete také muset zadat příslušný koncový bod. Tento koncový bod můžete získat z prostředku služby Communication Services na webu azure Portal.
Usage
Vytvoření nového uživatele
Použijte tuto metodu createUser k vytvoření nového uživatele.
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
const user = await client.createUser();
Vytvoření a obnovení uživatelského tokenu
Použijte tuto metodu getToken k vydání nebo obnovení tokenu pro stávajícího uživatele. Metoda také zahrnuje seznam rozsahů komunikačních tokenů. Možnosti rozsahu zahrnují:
-
chat(Použijte to pro plný přístup k Chat API) -
voip(Použijte toto pro plný přístup k API pro volání) -
chat.join(Přístup k Chat API, ale bez povolení k vytváření, mazání nebo aktualizaci chat vláken) -
chat.join.limited(Omezenější verze chat.join, která neumožňuje přidávat ani odebírat účastníky) -
voip.join(Přístup k API pro volání, ale bez povolení k zahájení nových hovorů)
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
const user = await client.createUser();
const { token } = await client.getToken(user, ["chat"]);
Pro obnovení uživatelského tokenu vydejte další token se stejným uživatelem.
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
const user = await client.createUser();
let { token } = await client.getToken(user, ["chat"]);
// Refresh the token again
({ token } = await client.getToken(user, ["chat"]));
Vytvoření uživatelského tokenu s vlastním expirací
Je také možné vytvořit přístupový token Communication Identity přizpůsobením doby expirace. Platnost tokenu musí být v rozmezí [60 1440] minut. Pokud není uvedeno, použije se výchozí hodnota 1440 minut (24 hodin).
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
const user = await client.createUser();
const tokenOptions = { tokenExpiresInMinutes: 60 };
const { token } = await client.getToken(user, ["chat"], tokenOptions);
Vytvoření uživatele a tokenu v jednom požadavku
Pro pohodlí použijte createUserAndToken k vytvoření nového uživatele a vydání tokenu s jedním voláním funkce. To znamená jeden webový požadavek, na rozdíl od vytvoření uživatele nejprve a následného vydání tokenu.
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
const { user, token } = await client.createUserAndToken(["chat"]);
Vytvoření uživatele a tokenu s vlastním expirací v jediném požadavku
Je také možné vytvořit přístupový token Communication Identity přizpůsobením doby expirace. Platnost tokenu musí být v rozmezí [60 1440] minut. Pokud není uvedeno, použije se výchozí hodnota 1440 minut (24 hodin).
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
const userAndTokenOptions = { tokenExpiresInMinutes: 60 };
const { user, token } = await client.createUserAndToken(["chat"], userAndTokenOptions);
Odebírání tokenů pro uživatele
Použijte tuto metodu revokeTokens k odebrání všech vydaných tokenů uživateli.
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
// Create user
const user = await client.createUser();
// Later when you want to revoke the user's tokens
await client.revokeTokens(user);
Mazání uživatele
Použijte tuto metodu deleteUser k odstranění uživatele.
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
// Create user
const user = await client.createUser();
// Later when you want to delete the user
await client.deleteUser(user);
Výměna Azure AD access tokenu uživatele Teams za přístupový token pro komunikaci
Použijte getTokenForTeamsUser metodu k výměně Azure AD přístupového tokenu uživatele Teams za nový CommunicationAccessToken s odpovídajícím časem expirace.
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const endpoint = "https://contoso.eastus.communications.azure.net";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);
const { token, expiresOn } = await client.getTokenForTeamsUser({
teamsUserAadToken: "<aad-access-token-of-a-teams-user>",
clientId: "<cliend-id-of-an-aad-application>",
userObjectId: "<aad-object-id-of-a-teams-user>",
});
Troubleshooting
Logging
Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Další kroky
Podrobné příklady použití této knihovny najdete v ukázkách adresáři.
Contributing
Pokud byste chtěli přispět do této knihovny, přečtěte si prosím průvodce přispívání kde se dozvíte více o tom, jak kód sestavit a testovat.
Související projekty
Azure SDK for JavaScript