JavaScript 用 Azure Communication Identity クライアント ライブラリ - バージョン 1.3.1
ID ライブラリは、Azure Communication Servicesのユーザーとトークンを管理するために使用されます。
作業の開始
前提条件
- Azure サブスクリプション。
- 既存の Communication Services リソース。 リソースを作成する必要がある場合は、Azure Portal、Azure PowerShell、または Azure CLI を使用できます。
[インストール中]
npm install @azure/communication-identity
ブラウザーのサポート
JavaScript バンドル
ブラウザーでこのクライアント ライブラリを使用するには、まず bundler を使用する必要があります。 これを行う方法の詳細については、 バンドルに関するドキュメントを参照してください。
主要な概念
クライアント
には CommunicationIdentityClient
、ユーザーとそのトークンを管理するメソッドが用意されています。
例
認証
Azure Portal で Communication Services リソースからキーや接続文字列を取得できます。 キーを取得したら、次のいずれかの方法で を CommunicationIdentityClient
認証できます。
クライアントをAzureKeyCredential
初期化する前に を使用して を作成KeyCredential
する
import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const credential = new AzureKeyCredential(KEY);
const client = new CommunicationIdentityClient(ENDPOINT, credential);
接続文字列の使用
import { CommunicationIdentityClient } from "@azure/communication-identity";
const connectionString = `endpoint=ENDPOINT;accessKey=KEY`;
const client = new CommunicationIdentityClient(connectionString);
TokenCredential
の使用
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(ENDPOINT, credential);
キーを使用してクライアントを初期化する場合は、適切なエンドポイントも指定する必要があります。 このエンドポイントは、 Azure Portal の Communication Services リソースから取得できます。
使用
CommunicationIdentityClient のインスタンスの作成
import { CommunicationIdentityClient } from "@azure/communication-identity";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
新しいユーザーの作成
メソッドを createUser
使用して新しいユーザーを作成します。
const user = await client.createUser();
ユーザー トークンの作成と更新
メソッドを getToken
使用して、既存のユーザーのトークンを発行または更新します。 メソッドは、通信トークン スコープの一覧も受け取ります。 スコープ オプションには、次のものが含まれます。
chat
(チャット API へのフル アクセスには、これを使用します)voip
(呼び出し元 API へのフル アクセスには、これを使用します)chat.join
(チャット API へのアクセス(ただし、チャット スレッドを作成、削除、または更新するための承認なし)chat.join.limited
(参加者の追加または削除を許可しない、より限定的なバージョンの chat.join)voip.join
(呼び出し元 API へのアクセス(ただし、新しい呼び出しを開始するための承認なし)
let { token } = await client.getToken(user, ["chat"]);
ユーザー トークンを更新するには、同じユーザーで別のトークンを発行します。
let { token } = await client.getToken(user, ["chat"]);
カスタム有効期限を使用してユーザー トークンを作成する
また、有効期限をカスタマイズすることで、通信 ID アクセス トークンを作成することもできます。 トークンの有効期間は [60,1440] 分の範囲内である必要があります。 指定しない場合、既定値の 1440 分 (24 時間) が使用されます。
const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let { token } = await client.getToken(user, ["chat"], tokenOptions);
1 つの要求でユーザーとトークンを作成する
便宜上、 を使用 createUserAndToken
して新しいユーザーを作成し、1 つの関数呼び出しでトークンを発行します。 これは、最初にユーザーを作成してからトークンを発行するのではなく、単一の Web 要求に変換されます。
let { user, token } = await client.createUserAndToken(["chat"]);
1 つの要求でカスタムの有効期限を持つユーザーとトークンを作成する
また、有効期限をカスタマイズすることで、通信 ID アクセス トークンを作成することもできます。 トークンの有効期間は [60,1440] 分の範囲内である必要があります。 指定しない場合、既定値の 1440 分 (24 時間) が使用されます。
const userAndTokenOptions: CreateUserAndTokenOptions = { tokenExpiresInMinutes: 60 };
let { user, token } = await client.createUserAndToken(["chat"], userAndTokenOptions);
ユーザーのトークンの取り消し
メソッドを revokeTokens
使用して、ユーザーに対して発行されたすべてのトークンを取り消します。
await client.revokeTokens(user);
ユーザーの削除
ユーザーを削除するには、 deleteUser
メソッドを使用します。
await client.deleteUser(user);
Teams ユーザーの Azure AD アクセス トークンを通信アクセス トークンと交換する
メソッドを使用して getTokenForTeamsUser
、Teams ユーザーの Azure AD アクセス トークンを、有効期限が一致する新 CommunicationAccessToken
しいユーザーと交換します。
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>",
});
トラブルシューティング
次のステップ
このライブラリの使用方法の詳細な例については、 samples ディレクトリを参照してください。
共同作成
このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。
関連プロジェクト
Azure SDK for JavaScript