Microsoft 365 使用者的單一租使用者和多租用戶驗證
本文可讓您深入瞭解單一租使用者和多租使用者、 Microsoft Entra ID (Microsoft Entra ID) 應用程式的驗證程式。 當您使用 Azure 通訊服務 提供的通話軟體開發工具包 (SDK) 建置Microsoft 365 使用者的通話體驗時,可以使用驗證。 本文中的使用案例也會細分個別驗證成品。
案例 1:單一租用戶應用程式的範例
Fabrikam 公司已建置應用程式供內部使用。 應用程式的所有使用者都有Microsoft Entra ID。 Azure 通訊服務的存取是由 Azure 角色型存取控制 (Azure RBAC) 控制。
下列順序圖表詳細說明單一租用戶驗證。
開始之前:
- Alice 或她的 Microsoft Entra 系統管理員必須在第一次嘗試登入之前,先同意自訂 Teams 應用程式。 深入了解同意。
- Azure 通訊服務資源管理員必須將執行所屬角色的權限授與 Alice。 深入了解 Azure RBAC 角色指派。
步驟:
- 使用 Microsoft Entra ID 驗證 Alice:使用標準 OAuth 流程向 Microsoft 驗證程式庫 (MSAL)驗證 Alice。 如果驗證成功,用戶端應用程式會收到一個Microsoft Entra 存取令牌,其 值為 ,且具有 值為
A1
A2
Microsoft Entra 使用者的物件標識碼。 本中稍候會概述權杖。 本快速入門會以開發人員觀點探索驗證。 - 取得Alice的存取令牌:Fabrikam 應用程式使用具有值的
B
自訂驗證成品會執行授權邏輯,以決定Alice是否有權交換 Azure 通訊服務 存取令牌的 Microsoft Entra 存取令牌。 成功授權之後,Fabrikam 應用程式會使用成品A1
、A2
和A3
來執行控制平面邏輯。 Azure 通訊服務 為 Fabrikam 應用程式中的 Alice 產生存取令牌D
。 此存取權杖可用於 Azure 通訊服務中的資料平面動作,例如通話。A2
和A3
成品會隨著成品A1
一起傳遞以進行驗證。 驗證可確保 Microsoft Entra 權杖已核發給預期使用者。 應用程式可防止攻擊者使用向其他應用程式或其他用戶發出的Microsoft Entra 存取令牌。 如需如何取得A
成品的詳細資訊,請參閱 透過 MSAL 連結庫 和取得應用程式識別碼,接收Microsoft Entra 使用者令牌和 對象標識碼。 - 呼叫 Bob:Alice 使用 Fabrikam 的應用程式呼叫 Microsoft 365 使用者 Bob。 通話會使用 Azure 通訊服務存取權杖,透過呼叫 SDK 進行。 深入瞭解 如何開發Microsoft 365位使用者的應用程式。
成品:
- 人工製品
A1
- 類型:Microsoft Entra 存取權杖
- 物件:
Azure Communication Services
、控制平面 - 來源:Fabrikam 的 Microsoft Entra 租用戶
- 權限:
https://auth.msft.communication.azure.com/Teams.ManageCalls
、https://auth.msft.communication.azure.com/Teams.ManageChats
- 人工製品
A2
- 類型:Microsoft Entra 使用者的物件識別碼
- 來源:Fabrikam 的 Microsoft Entra 租用戶
- 授權單位:
https://login.microsoftonline.com/<tenant>/
- 人工製品
A3
- 類型:Microsoft Entra 應用程式識別碼
- 來源:Fabrikam 的 Microsoft Entra 租用戶
- 人工製品
B
- 類型:自訂 Fabrikam 授權成品 (由 Microsoft Entra ID 或不同授權服務核發)
- 人工製品
C
- 類型:Azure 通訊服務資源授權成品。
- 來源:透過適用於 Microsoft Entra 驗證的持有人權杖,或是雜湊式訊息驗證碼 (HMAC) 承載,以及存取金鑰型驗證的簽章來「授權」HTTP 標頭。
- 人工製品
D
- 類型:Azure 通訊服務存取權杖
- 物件:
Azure Communication Services
、數據平面 - Azure 通訊服務資源識別碼:Fabrikam 的
Azure Communication Services Resource ID
案例 2:多租使用者應用程式的範例
Contoso 公司已為外部客戶建置應用程式。 應用程式會在 Contoso 本身基礎結構中使用自訂驗證。 Contoso 會使用連接字串來自 Fabrikam 應用程式擷取權杖。
下列順序圖詳細說明多租用戶驗證。
開始之前:
- Alice 或她的 Microsoft Entra 系統管理員必須在第一次嘗試登入之前,先同意 Contoso 的 Microsoft Entra 應用程式。 深入了解同意。
步驟:
- 使用 Fabrikam 應用程式來驗證 Alice:透過 Fabrikam 應用程式驗證 Alice。 將使用透過 Microsoft 驗證程式庫的標準 OAuth 流程。 請務必確保使用正確的授權單位來設定 MSAL。 如果驗證成功,Contoso 用戶端應用程式會收到具有 值的 Microsoft Entra 存取令牌,以及具有 值
A1
A2
之 Microsoft Entra 使用者的物件標識碼。 權杖詳細資訊如下所述。 本快速入門會以開發人員觀點探索驗證。 - 取得Alice的存取令牌:使用具有值的
B
自定義驗證成品,Contoso 應用程式會執行授權邏輯,以決定Alice是否有權交換 Azure 通訊服務 存取令牌的 Microsoft Entra 存取令牌。 成功授權之後,Contoso 應用程式會使用成品A1
、A2
和A3
來執行控制平面邏輯。 Contoso 應用程式中的 Alice 會產生 Azure 通訊服務 存取令牌D
。 此存取權杖可用於 Azure 通訊服務中的資料平面動作,例如通話。A2
和A3
成品會隨著成品A1
一起傳遞。 驗證可確保 Microsoft Entra 權杖已核發給預期使用者。 應用程式可防止攻擊者使用向其他應用程式或其他用戶發出的Microsoft Entra 存取令牌。 如需如何取得A
成品的詳細資訊,請參閱 透過 MSAL 連結庫 和取得應用程式識別碼,接收Microsoft Entra 使用者令牌和 對象標識碼。 - 呼叫 Bob:Alice 使用 Fabrikam 的應用程式呼叫 Microsoft 365 使用者 Bob。 通話會使用 Azure 通訊服務存取權杖,透過呼叫 SDK 進行。 在本快速入門中,深入瞭解如何開發Microsoft 365位使用者的應用程式。
成品:
- 人工製品
A1
- 類型:Microsoft Entra 存取權杖
- 物件:
Azure Communication Services
、控制平面 - 來源:Contoso 應用程式註冊的 Microsoft Entra 租用戶
- 權限:
https://auth.msft.communication.azure.com/Teams.ManageCalls
、https://auth.msft.communication.azure.com/Teams.ManageChats
- 人工製品
A2
- 類型:Microsoft Entra 使用者的物件識別碼
- 來源:Fabrikam 的 Microsoft Entra 租用戶
- 授權單位:
https://login.microsoftonline.com/<tenant>/
或https://login.microsoftonline.com/organizations/
(根據您的案例)
- 人工製品
A3
- 類型:Microsoft Entra 應用程式識別碼
- 來源:Contoso 應用程式註冊的 Microsoft Entra 租用戶
- 人工製品
B
- 類型:自訂 Contoso 授權成品 (由 Microsoft Entra ID 或不同授權服務核發)
- 人工製品
C
- 類型:Azure 通訊服務資源授權成品。
- 來源:透過適用於 Microsoft Entra 驗證的持有人權杖,或是雜湊式訊息驗證碼 (HMAC) 承載,以及存取金鑰型驗證的簽章來「授權」HTTP 標頭
- 人工製品
D
- 類型:Azure 通訊服務存取權杖
- 物件:
Azure Communication Services
、數據平面 - Azure 通訊服務資源識別碼:Contoso 的
Azure Communication Services Resource ID
下一步
- 深入了解驗證。
- 請嘗試本 快速入門來驗證Microsoft 365位使用者。
- 請嘗試本 快速入門來呼叫 Microsoft 365 使用者。
您可能會對下列樣本應用程式感興趣:
試用範例應用程式,其示範在行動裝置和傳統型應用程式中取得Microsoft 365 個使用者 Azure 通訊服務 存取令牌的程式。
若要查看如何在單頁應用程式中取得Microsoft 365 使用者的 Azure 通訊服務 存取令牌,請參閱 SPA 範例應用程式。
如要深入了解適用於 Azure 通訊服務的驗證服務伺服器實作,請參閱驗證服務主圖樣本。