每一個與 Azure 通訊服務互動的用戶端都必須接受驗證。 在一般架構中,請參閱 客戶端和伺服器架構、 存取金鑰 或 Microsoft Entra ID 驗證 用於伺服器端驗證。
其他類型的驗證採用「使用者存取權杖」驗證需要使用者參與的服務。 例如,聊天或通話服務會利用 使用者存取令牌 ,讓用戶在線程中新增,並彼此交談。
Authentication Options
下表顯示 Azure 通訊服務 SDK 及其驗證選項:
| SDK | Authentication option |
|---|---|
| Identity | 存取金鑰或 Microsoft Entra 驗證 |
| SMS | 存取金鑰或 Microsoft Entra 驗證 |
| 電話號碼 | 存取金鑰或 Microsoft Entra 驗證 |
| Call Automation | 存取金鑰或 Microsoft Entra 驗證 |
| 存取金鑰或 Microsoft Entra 驗證 | |
| Advanced Messaging | 存取金鑰或 Microsoft Entra 驗證 |
| Calling | 使用者存取令牌 |
| Chat | 使用者存取令牌 |
每個授權選項會簡短描述如下:
Access Key
存取金鑰驗證適合於受信任服務環境中執行的服務應用程式。 您的存取金鑰可位於 Azure 通訊服務入口網站中。 服務應用程式會使用存取金鑰作為認證,以此初始化對應的 SDK。 See an example of how it's used in the Identity SDK.
由於存取金鑰屬於您資源中連接字串的一部分,使用連接字串進行驗證等同於使用存取金鑰進行驗證。
如果您想要使用存取密鑰手動呼叫 Azure 通訊服務的 API,則需要簽署要求。 Signing the request is explained, in detail, within a tutorial.
若要設定服務主體,請從 Azure CLI 建立已註冊的應用程式, 之後即可用端點和認證來驗證 SDK。 See examples of how service principal is used.
Azure 通訊服務支援通訊服務資源的Microsoft Entra ID 驗證。 如需受控識別支持的詳細資訊,請參閱 如何搭配 Azure 通訊服務使用受控識別。
Microsoft Entra ID 驗證
Azure 平台提供了角色型存取 (Azure RBAC) 來控制對資源的存取。 Azure RBAC 安全性主體代表要求存取 Azure 資源的使用者、群組、服務主體或受控識別。 與其他授權選項相比,Microsoft Entra ID 驗證提供了卓越的安全性和易用性。
Managed Identity:
- 藉由使用受控識別,您可以避免必須將您的帳戶存取金鑰儲存在您的程式碼中,就像使用存取金鑰授權一樣。 平臺會完全管理、輪替及保護身分識別認證,降低認證暴露的風險。
- 受控識別可以對支援 Microsoft Entra ID 驗證的 Azure 服務和資源進行驗證。 此方法提供了一種無縫且安全的方式來管理認證。
- For more information about using Managed Identity with Azure Communication Services, see Managed Identity.
Service Principal:
- 若要設定服務主體,請從 Azure CLI 建立已註冊的應用程式, 然後使用端點和認證來驗證 SDK。
- For examples, see service principal.
通訊服務支援對通訊服務資源進行 Microsoft Entra ID 驗證,雖然您可以繼續對通訊服務應用程式使用存取金鑰授權,但 Microsoft 建議盡可能移到 Microsoft Entra ID。
使用受信任的驗證服務 Hero 範例,將 Azure 通訊服務存取權杖與 Microsoft Entra ID 相對應。
使用者存取令牌
使用者存取權杖係透過身分識別 SDK 而產生,且與身分識別 SDK 中建立的使用者相關聯。 請參閱範例,了解如何建立使用者並產生權杖。 之後,系統會以使用者存取權杖來驗證在聊天或電話撥接 SDK 中新增至交談的參與者。 如需詳細資訊,請參閱將聊天新增至您的應用程式。 使用者存取令牌驗證與存取密鑰和Microsoft Entra 驗證不同,因為它用來驗證使用者,而不是安全的 Azure 資源。
針對監視和計量使用身分識別
使用者身分識別的用意,在於充當透過 Azure 監視器收集記錄和計量的主要金鑰。 如果您希望檢視特定使用者所有通話之類的內容,請設定您的驗證方式,使其可將特定 Azure 通訊服務識別對應至單一使用者。 Learn more about log analytics, and metrics available to you.