Azure Communication Services に対する認証

クライアントと Azure Communication Services とのやり取りはすべて認証される必要があります。 一般的なアーキテクチャでは、「クライアントとサーバーのアーキテクチャ」を参照して、アクセス キー または Microsoft Entra 認証 がサーバー側の認証に使用されます。

別の種類の認証では、ユーザー アクセス トークン を使用して、ユーザーが参加する必要があるサービスに対して認証を行います。 たとえば、チャットまたは呼び出しサービスは、 ユーザーアクセス トークン を利用して、ユーザーをスレッドに追加し、相互に会話できるようにします。

認証オプション

次の表は、Azure Communication Services の SDK とその認証オプションを示しています。

SDK 認証オプション
ID アクセス キーまたは Microsoft Entra 認証
SMS アクセス キーまたは Microsoft Entra 認証
電話番号 アクセス キーまたは Microsoft Entra 認証
電子メール アクセス キーまたは Microsoft Entra 認証
通話 ユーザー アクセス トークン
チャット ユーザー アクセス トークン

ここでは、各認証オプションについて簡単に説明します。

アクセス キー

アクセス キー認証は、信頼できるサービス環境で実行されているサービス アプリケーションに適しています。 アクセス キーは、Azure Communication Services ポータルで確認できます。 サービス アプリケーションでは、これを資格情報として使用して、対応する SDK を初期化します。 ID SDKでの使用方法については、例を参照してください。

アクセス キーはリソースの接続文字列の一部なので、接続文字列を使用した認証は、アクセス キーを使用した認証に相当します。

アクセス キーを使用して Azure Communication Services の API を手動で呼び出す場合は、要求に署名する必要があります。 要求に署名する方法は、チュートリアルの中で詳しく説明します。

Microsoft Entra 認証

Azure プラットフォームは、リソースへのアクセスを制御するためにロールベース アクセス (Azure RBAC) を提供します。 "セキュリティ プリンシパル" は、Azure RBAC リソースへのアクセスを要求するユーザー、グループ、サービス プリンシパル、またはマネージド ID を表します。 Microsoft Entra 認証は、他の承認オプションよりも優れたセキュリティと使いやすさを提供します。 たとえば、マネージド ID を使用すると、アクセス キーの認証と同様に、アカウント アクセス キーをコードに保存する必要がなくなります。 通信サービス アプリケーションでは引き続きアクセス キー認証を使用できますが、Microsoft では、可能な限り Microsoft Entra ID に移行することをお勧めします。

サービス プリンシパルを設定するには、Azure CLI から登録済みアプリケーションを作成します。 次に、エンドポイントと資格情報を使用して、SDK を認証できます。 サービス プリンシパルの使用例をご覧ください。

通信サービスは、通信サービス リソースに対する Microsoft Entra 認証をサポートします。 マネージド id のサポートの詳細については、「Microsoft Entra のドキュメント」を参照してください。

Azure Communication Services のアクセス トークンを Microsoft Entra ID とマップするには、信頼された認証サービスのヒーロー サンプルを使用してください。

ユーザー アクセス トークン

ユーザー アクセス トークンは、ID SDK を使用して生成され、ID SDK で作成されたユーザーに関連付けられます。 ユーザーを作成し、トークンを生成する方法の例を参照してください。 次に、ユーザー アクセス トークンを使用して、チャットまたは呼び出し SDK で会話に追加された参加者を認証します。 詳細については、「チャットをアプリに追加する」を参照してください。 ユーザー アクセス トークン認証は、セキュリティで保護された Azure リソースではなくユーザーの認証に使用するという点で、アクセス キーや Microsoft Entra 認証と異なります。

監視とメトリックに ID を使用する

ユーザー ID は、Azure Monitor によって収集されるログとメトリックの主キーとして機能することを目的としています。 たとえば、特定のユーザーのすべての呼び出しを表示する場合は、特定の Azure Communication Services ID (または複数の ID) を単一のユーザーにマップするように認証を設定する必要があります。 ログ分析および使用可能なメトリックの詳細については、以下を参照してください。

次のステップ

詳細については、次の記事を参照してください。