Azure Communication Services でマネージド ID を使用する方法
Azure Communication Services は、開発者がリアルタイムの通信機能をアプリケーションに組み込む、フル マネージドの通信プラットフォームです。 Azure Communication Services でマネージド ID を使用すると、アプリケーションの認証プロセスを簡素化しながら、セキュリティを強化できます。 このドキュメントでは、Azure Communication Services でマネージド ID を使用する方法について説明します。
Azure Communication Services でマネージド ID を使用する
Azure Communication Services では、マネージド ID を使用したサービスの認証がサポートされています。 マネージド ID を使用すると、独自のアクセス トークンと資格情報を管理する必要がなくなります。
Azure Communication Services リソースには、次の 2 種類の ID を割り当てることができます。
- システム割り当て ID は、リソースに関連付けられ、リソースが削除されると削除されます。 リソースでは、システム割り当て ID を 1 つだけ設定できます。
- ユーザー割り当て ID は、Azure Communication Services リソースに割り当てることができる Azure リソースです。 リソースを削除しても、この ID は削除されません。 リソースでは、複数のユーザー割り当て ID を設定できます。
Azure Communication Services でマネージド ID を使用するには、次の手順に従います。
- Communication Services リソースへのアクセス権をマネージド ID に付与します。 この割り当ては、Azure portal、Azure CLI、Azure Communication Management SDK を使用して行うことができます。
- マネージド ID を使用して Azure Communication Services で認証します。 認証は、マネージド ID をサポートする Azure SDK または REST API を使用して行うことができます。
システム割り当て ID を追加する
ユーザー割り当て ID を追加する
ユーザー割り当て ID を Azure Communication Services リソースに割り当てるには、まず ID を作成してから、そのリソース識別子を Communication Service リソースに追加する必要があります。
最初に、ユーザー割り当てマネージド ID リソースを作成する必要があります。
以下の手順に従って、ユーザー割り当てマネージド ID リソースを作成します。
アプリのページの左側のナビゲーションで、[設定] グループまで下にスクロールします。
[ID] を選択します。
[ユーザー割り当て済み]>[追加] を選びます。
Azure Communication Services 管理 SDK を使用したマネージド ID
マネージド ID は、Azure Communication Management SDK を使用して Azure Communication Services リソースに割り当てることもできます。 この割り当ては、作成時またはリソースの更新時にリソース定義に ID プロパティを導入することで実現できます。
CommunicationServiceResourceData
で Identity
プロパティを設定することで、Azure Communication Management SDK for .NET を使用して、マネージド ID を Azure Communication Services リソースに割り当てることができます。
次に例を示します。
public async Task CreateResourceWithSystemAssignedManagedIdentity()
{
ArmClient armClient = new ArmClient(new DefaultAzureCredential());
SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync();
//Create Resource group
ResourceGroupCollection rgCollection = subscription.GetResourceGroups();
// With the collection, we can create a new resource group with an specific name
string rgName = "myRgName";
AzureLocation location = AzureLocation.WestUS2;
ArmOperation<ResourceGroupResource> lro = await rgCollection.CreateOrUpdateAsync(WaitUntil.Completed, rgName, new ResourceGroupData(location));
ResourceGroupResource resourceGroup = lro.Value;
// get resource group collection
CommunicationServiceResourceCollection collection = resourceGroup.GetCommunicationServiceResources();
string communicationServiceName = "myCommunicationService";
// Create Communication Service Resource
var identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned);
CommunicationServiceResourceData data = new CommunicationServiceResourceData("global")
{
DataLocation = "UnitedStates",
Identity = identity
};
var communicationServiceLro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, communicationServiceName, data);
var resource = communicationServiceLro.Value;
}
.NET Management SDK の使用方法の詳細については、「Azure Communication Management SDK for .NET」を参照してください。
リソース インスタンスの管理に固有の詳細については、「Communication Service リソース インスタンスの管理」を参照してください
Note
リソースは、システム割り当て ID とユーザー割り当て ID の両方を同時に持つことができます。 この場合、type
プロパティは SystemAssigned,UserAssigned
になります。
リソースからすべてのマネージド ID 割り当てを削除するには、type
プロパティを None
として指定することもできます。
次のステップ
これで、Azure Communication Services でマネージド ID を有効にする方法について説明しました。 認証プロセスを簡素化し、セキュリティを向上させるために、この機能を独自のアプリケーションに実装することを検討してください。