如何使用受控識別搭配 Azure 通訊服務
Azure 通訊服務 是完全受控的通訊平臺,可讓開發人員在其應用程式中建置即時通訊功能。 透過搭配 Azure 通訊服務 使用受控識別,您可以簡化應用程式的驗證程式,同時提高其安全性。 本文件涵蓋如何使用受控識別搭配 Azure 通訊服務。
搭配使用受控識別搭配 Azure 通訊服務
Azure 通訊服務 支援使用受控識別向服務進行驗證。 藉由使用受控識別,您就不需要管理自己的存取令牌和認證。
您的 Azure 通訊服務 資源可以指派兩種類型的身分識別:
- 系統 指派的身 分識別,系結至您的資源,並在刪除資源時刪除。 您的資源只能有一個系統指派的身分識別。
- 使用者指派的身分識別,這是可指派給 Azure 通訊服務 資源的 Azure 資源。 刪除資源時,不會刪除此身分識別。 您的資源可以有多個使用者指派的身分識別。
若要搭配 Azure 通訊服務 使用受控識別,請遵循下列步驟:
- 將您的受控識別存取權授與通訊服務資源。 此指派可以透過 Azure 入口網站、Azure CLI 和 Azure 通訊管理 SDK。
- 使用受控識別向 Azure 通訊服務 進行驗證。 您可以透過支援受控識別的 Azure SDK 或 REST API 來完成驗證。
新增系統指派的身分識別
新增使用者指派的身分識別
將使用者指派的身分識別指派給 Azure 通訊服務 資源時,必須先建立身分識別,然後將其資源標識符新增至您的通訊服務資源。
首先,您必須建立使用者指派的受控識別資源。
根據這些指示建立使用者指派的受控識別資源。
在應用程式頁面的左側瀏覽中,向下捲動至 [設定] 群組。
選取 [身分識別]。
選取 [使用者指派]>[新增]。
使用 Azure 通訊服務 管理 SDK 的受控識別
您也可以使用 Azure 通訊管理 SDK,將受控識別指派給 Azure 通訊服務 資源。 藉由在建立資源時或更新資源時,引進資源定義中的身分識別屬性,即可達成此指派。
您可以使用適用於 .NET 的 Azure 通訊管理 SDK,在 上CommunicationServiceResourceData
設定 Identity
屬性,將受控識別指派給 Azure 通訊服務 資源。
例如:
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 管理 SDK 的詳細資訊,請參閱 適用於 .NET 的 Azure 通訊管理 SDK。
如需管理資源實例的特定詳細資訊,請參閱 管理您的通訊服務資源實例
注意
資源可以同時擁有系統指派和使用者指派的身分識別。 在此情況下,type
屬性將會是 SystemAssigned,UserAssigned
。
您也可以將 屬性指定 type
為 None
來達成從資源移除所有受控識別指派。
下一步
現在您已瞭解如何使用 Azure 通訊服務 啟用受控識別。 請考慮在自己的應用程式中實作這項功能,以簡化驗證程式並改善安全性。