다음을 통해 공유


Microsoft 365 사용자를 위한 단일 테넌트 및 다중 테넌트 인증

이 문서에서는 단일 테넌트 및 다중 테넌트, Microsoft Entra ID(Microsoft Entra ID) 애플리케이션에 대한 인증 프로세스의 인사이트를 제공합니다. Azure Communication Services에서 사용할 수 있는 통화 소프트웨어 개발 키트(SDK)를 사용하여 Microsoft 365 사용자를 위한 통화 환경을 빌드할 때 인증을 사용할 수 있습니다. 이 문서의 사용 사례는 개별 인증 아티팩트도 구분합니다.

사례 1: 단일 테넌트 애플리케이션의 예제

Fabrikam 회사는 내부용 애플리케이션을 빌드했습니다. 해당 애플리케이션의 모든 사용자는 Microsoft Entra ID를 가지고 있습니다. Azure Communication Services에 대한 액세스는 Azure RBAC(Azure 역할 기반 액세스 제어)에 의해 제어됩니다.

Microsoft 365 사용자를 위한 Fabrikam의 호출 애플리케이션과 해당 Azure Communication Services 리소스에 대한 인증 프로세스를 간략하게 설명하는 다이어그램.

다음 시퀀스 다이어그램에서는 단일 테넌트 인증에 대해 자세히 설명합니다.

Fabrikam의 Microsoft 365 사용자 인증을 자세히 설명하는 시퀀스 다이어그램. 클라이언트 애플리케이션은 단일 테넌트 Microsoft Entra 애플리케이션에 대한 Azure Communication Services 액세스 토큰을 가져옵니다.

시작하기 전에

  • Alice 또는 그녀의 Microsoft Entra 관리자는 첫 번째 로그인 시도 전에 사용자 지정 Teams 애플리케이션 동의를 제공해야 합니다. 동의에 대해 자세히 알아보세요.
  • Azure Communication Services 리소스 관리자는 Alice에게 자신의 역할을 수행할 수 있는 권한을 부여해야 합니다. Azure RBAC 역할 할당에 대해 자세히 알아보세요.

단계:

  1. Microsoft Entra ID를 사용하여 Alice를 인증: Alice는 MSAL(Microsoft 인증 라이브러리)에서 표준 OAuth 흐름을 사용하여 인증됩니다. 인증에 성공하면 클라이언트 애플리케이션은 값이 A1인 Microsoft Entra 액세스 토큰과 값이 A2인 Microsoft Entra 사용자의 개체 ID를 받습니다. 토큰은 이 문서의 뒷부분에 설명되어 있습니다. 개발자 관점에서의 인증은 이 빠른 시작에서 다룹니다.
  2. Alice에 대한 액세스 토큰 가져오기: 값이 B인 사용자 지정 인증 아티팩트를 사용하여 Fabrikam 애플리케이션은 권한 부여 논리를 수행하여 Alice에게 Azure Communication Services 액세스 토큰에 대한 Microsoft Entra 액세스 토큰을 교환할 수 있는 권한이 있는지 여부를 결정합니다. 권한 부여가 성공적으로 완료되면 Fabrikam 애플리케이션은 아티팩트 A1, A2A3을 사용하여 컨트롤 플레인 논리를 수행합니다. Fabrikam 애플리케이션 내에서 Alice에 대한 Azure Communication Services 액세스 토큰 D가 생성됩니다. 이 액세스 토큰은 통화와 같은 Azure Communication Services의 데이터 평면 작업에도 사용할 수 있습니다. A2A3 아티팩트는 유효성 검사를 위해 아티팩트 A1과 함께 전달됩니다. 유효성 검사는 Microsoft Entra 토큰이 예상 사용자에게 발급되었음을 보장합니다. 이 애플리케이션은 공격자가 다른 애플리케이션이나 다른 사용자에게 발급된 Microsoft Entra 액세스 토큰을 사용하는 것을 방지합니다. A 아티팩트를 가져오는 방법에 대한 자세한 내용은 MSAL 라이브러리를 통해 Microsoft Entra 사용자 토큰 및 개체 ID 받기애플리케이션 ID 가져오기를 참조하세요.
  3. Bob에게 전화 걸기: Alice는 Fabrikam의 앱을 사용하여 Microsoft 365 사용자 Bob에게 전화를 겁니다. 통화는 Azure Communication Services 액세스 토큰을 사용하여 통화 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 사용자의 개체 ID
    • 원본: Fabrikam의 Microsoft Entra 테넌트
    • 권한: https://login.microsoftonline.com/<tenant>/
  • 아티팩트 A3
    • 형식: Microsoft Entra 애플리케이션 ID
    • 원본: Fabrikam의 Microsoft Entra 테넌트
  • 아티팩트 B
    • 형식: 사용자 지정 Fabrikam 권한 부여 아티팩트(Microsoft Entra ID 또는 다른 권한 부여 서비스에서 발급)
  • 아티팩트 C
    • 형식: Azure Communication Services 리소스 권한 부여 아티팩트
    • 원본: Microsoft Entra 인증을 위한 전달자 토큰 또는 HMAC(해시 기반 메시지 인증 코드) 페이로드 및 액세스 키 기반 인증을 위한 서명이 있는 “권한 부여” HTTP 헤더입니다.
  • 아티팩트 D
    • 형식: Azure Communication Services 액세스 토큰
    • 대상 그룹: Azure Communication Services, 데이터 평면
    • Azure Communication Services 리소스 ID: Fabrikam의 Azure Communication Services Resource ID

사례 2: 다중 테넌트 애플리케이션의 예

Contoso 회사는 외부 고객을 위한 애플리케이션을 빌드했습니다. 이 애플리케이션은 Contoso의 자체 인프라 내에서 사용자 지정 인증을 사용합니다. Contoso는 연결 문자열을 사용하여 Fabrikam의 애플리케이션에서 토큰을 검색합니다.

Contoso 애플리케이션이 Contoso의 고유한 Azure Communication Services 리소스를 사용하여 Fabrikam 사용자를 인증하는 방법을 보여 주는 시퀀스 다이어그램.

다음 시퀀스 다이어그램에서는 다중 테넌트 인증을 자세히 설명합니다.

다중 테넌트 Microsoft Entra 애플리케이션에 대한 Microsoft 365 사용자 및 Azure Communication Services 액세스 토큰의 인증을 자세히 설명하는 시퀀스 다이어그램.

시작하기 전에

  • Alice 또는 그녀의 Microsoft Entra 관리자는 첫 번째 로그인 시도 전에 Contoso의 Microsoft Entra 애플리케이션 동의를 제공해야 합니다. 동의에 대해 자세히 알아보세요.

단계:

  1. Fabrikam 애플리케이션을 사용하여 Alice 인증: Alice는 Fabrikam의 애플리케이션을 통해 인증됩니다. MSAL(Microsoft 인증 라이브러리)을 사용하는 표준 OAuth 흐름이 사용됩니다. 올바른 권한으로 MSAL을 구성해야 합니다. 인증에 성공하면 Contoso 클라이언트 애플리케이션은 값이 A1인 Microsoft Entra 액세스 토큰과 값이 A2인 Microsoft Entra 사용자의 개체 ID를 받습니다. 토큰 세부 정보는 아래에 설명되어 있습니다. 개발자 관점에서의 인증은 이 빠른 시작에서 다룹니다.
  2. Alice에 대한 액세스 토큰 가져오기: 값이 B인 사용자 지정 인증 아티팩트를 사용하여 Contoso 애플리케이션은 권한 부여 논리를 수행하여 Alice에게 Azure Communication Services 액세스 토큰에 대한 Microsoft Entra 액세스 토큰을 교환할 수 있는 권한이 있는지 여부를 결정합니다. 권한 부여가 성공적으로 완료되면 Contoso 애플리케이션은 아티팩트 A1, A2A3을 사용하여 컨트롤 플레인 논리를 수행합니다. 그러면 Contoso 애플리케이션 내에서 Alice에 대한 Azure Communication Services 액세스 토큰 D가 생성됩니다. 이 액세스 토큰은 통화와 같은 Azure Communication Services의 데이터 평면 작업에도 사용할 수 있습니다. A2A3 아티팩트는 아티팩트 A1과 함께 전달됩니다. 유효성 검사는 Microsoft Entra 토큰이 예상 사용자에게 발급되었음을 보장합니다. 이 애플리케이션은 공격자가 다른 애플리케이션이나 다른 사용자에게 발급된 Microsoft Entra 액세스 토큰을 사용하는 것을 방지합니다. A 아티팩트를 가져오는 방법에 대한 자세한 내용은 MSAL 라이브러리를 통해 Microsoft Entra 사용자 토큰 및 개체 ID 받기애플리케이션 ID 가져오기를 참조하세요.
  3. Bob에게 전화 걸기: Alice는 Fabrikam의 애플리케이션을 사용하여 Microsoft 365 사용자 Bob에게 전화를 겁니다. 통화는 Azure Communication Services 액세스 토큰을 사용하여 통화 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 사용자의 개체 ID
    • 원본: Fabrikam의 Microsoft Entra 테넌트
    • 권한: https://login.microsoftonline.com/<tenant>/ 또는 https://login.microsoftonline.com/organizations/(시나리오에 따라)
  • 아티팩트 A3
    • 형식: Microsoft Entra 애플리케이션 ID
    • 원본: Contoso 애플리케이션 등록의 Microsoft Entra 테넌트
  • 아티팩트 B
    • 형식: 사용자 지정 Contoso 권한 부여 아티팩트(Microsoft Entra ID 또는 다른 권한 부여 서비스에서 발급)
  • 아티팩트 C
    • 형식: Azure Communication Services 리소스 권한 부여 아티팩트
    • 원본: Microsoft Entra 인증을 위한 전달자 토큰 또는 HMAC(해시 기반 메시지 인증 코드) 페이로드 및 액세스 키 기반 인증을 위한 서명이 있는 “권한 부여” HTTP 헤더입니다.
  • 아티팩트 D
    • 형식: Azure Communication Services 액세스 토큰
    • 대상 그룹: Azure Communication Services, 데이터 평면
    • Azure Communication Services 리소스 ID: Contoso의 Azure Communication Services Resource ID

다음 단계

다음 문서는 사용자에게 유용할 수 있습니다.

  • 모바일 및 데스크톱 애플리케이션에서 Microsoft 365 사용자를 위한 Azure Communication Services 액세스 토큰을 획득하는 프로세스를 보여 주는 샘플 앱을 사용해 보세요.

  • 단일 페이지 애플리케이션에서 Microsoft 365 사용자를 위한 Azure Communication Services 액세스 토큰을 획득하는 방법을 보려면 SPA 샘플 앱을 확인합니다.

  • Azure Communication Services 인증 서비스의 서버 구현에 대해 자세히 알아보려면 인증 서비스 hero 샘플을 확인하세요.