次の方法で共有


マネージド 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 を割り当てることができます。

  1. システム割り当て ID は、リソースに関連付けられ、リソースが削除されると削除されます。 リソースでは、システム割り当て ID を 1 つだけ設定できます。
  2. ユーザー割り当て ID は、Azure Communication Services リソースに割り当てることができる Azure リソースです。 リソースを削除しても、この ID は削除されません。 リソースには、複数のユーザー割り当て ID を設定できます。

Azure Communication Services でマネージド ID を使用するには、次の手順に従います。

  1. Communication Services リソースへのアクセス権をマネージド ID に付与します。 この割り当ては、Azure portal、Azure CLI、Azure Communication Management SDK を使用して行うことができます。
  2. マネージド ID を使用して、Azure Communication Services で認証します。 認証は、マネージド ID をサポートする Azure SDK または REST API を使用して行うことができます。

システム割り当て ID を追加する

  1. アプリのページの左側のナビゲーションで、[設定] グループまで下にスクロールします。

  2. アイデンティティ を選択します。

  3. [システム割り当て済み] タブで、 [状態][オン] に切り替えます。 保存 を選択します。 システム割り当てマネージド ID を有効にする方法を示すスクリーンショット。

ユーザー割り当て ID を追加する

ユーザー割り当て ID を Azure Communication Services リソースに割り当てるには、まず ID を作成してから、そのリソース識別子を Communication Service リソースに追加する必要があります。

まず、ユーザー割り当てマネージド ID リソースを作成する必要があります。

  1. 次の手順に従って、ユーザー割り当てマネージド ID リソースを作成します。

  2. アプリのページの左側のナビゲーションで、[設定] グループまで下にスクロールします。

  3. アイデンティティ を選択します。

  4. を選択して、>にユーザーを割り当て、を追加します。

  5. 前に作成した ID を検索して選び、[追加] を選びます。 ユーザー割り当てマネージド ID を有効にする方法を示すスクリーンショット。

Azure Communication Services 管理 SDK を使用したマネージド ID

Azure Communication Management SDK を使用して、Azure Communication Services リソースにマネージド ID を割り当てることもできます。

この割り当てを実現するには、作成時またはリソースの更新時に、リソース定義に ID プロパティを導入します。

IdentityCommunicationServiceResourceData プロパティを設定することで、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 の使用方法の詳細については、「.NET 用 Azure Communication Management SDK」を参照してください。

リソース インスタンスの管理に固有の詳細については、「 Communication Service リソース インスタンスの管理」を参照してください。

リソースは、システム割り当て ID とユーザー割り当て ID の両方を同時に持つことができます。 この場合、 type プロパティは SystemAssigned,UserAssigned

type プロパティをNoneとして指定することで、リソースからすべてのマネージド ID 割り当てを削除することもできます。

次のステップ