다음을 통해 공유


Microsoft Entra ID를 사용한 Azure confidential ledger 인증

Azure confidential ledger에 액세스하는 데 권장되는 방법은 Microsoft Entra ID 서비스에 인증하는 것입니다. 이렇게 하면 Azure confidential ledger에서 액세스하는 보안 주체의 디렉터리 자격 증명을 가져오지 못합니다.

이를 위해 클라이언트는 다음 2단계 프로세스를 수행합니다.

  1. 첫 번째 단계에서 클라이언트는 다음을 수행합니다.
    1. Microsoft Entra 서비스와 통신합니다.
    2. Microsoft Entra 서비스에서 인증을 받습니다.
    3. Azure confidential ledger에 대해 특별히 발급된 액세스 토큰을 요청합니다.
  2. 두 번째 단계에서 클라이언트는 Azure confidential ledger에 대한 요청을 발급하여 첫 번째 단계에서 획득한 액세스 토큰을 Azure confidential ledger에 대한 ID 증명으로 제공합니다.

그런 다음, Azure confidential ledger는 Microsoft Entra ID에서 액세스 토큰을 발급한 보안 주체를 대신하여 요청을 실행합니다. 모든 권한 부여 확인은 이 ID를 사용하여 수행됩니다.

대부분의 경우 위의 흐름을 구현하는 번거로움(및 그 이상)을 대부분 제거하므로 Azure 기밀 원장 SDK 중 하나를 사용하여 프로그래밍 방식으로 서비스에 액세스하는 것이 좋습니다. 예를 들어 Python 클라이언트 라이브러리.NET 클라이언트 라이브러리를 참조하세요.

기본 인증 시나리오는 다음과 같습니다.

  • 로그인한 사용자를 인증하는 클라이언트 애플리케이션: 이 시나리오에서 대화형(클라이언트) 애플리케이션은 사용자에게 자격 증명(예: 사용자 이름 및 암호)에 대한 Microsoft Entra 프롬프트를 트리거합니다. 사용자 인증을 참조하세요.

  • "헤드리스" 애플리케이션: 이 시나리오에서 애플리케이션은 자격 증명을 제공한 사용자가 없는 상태에서 실행됩니다. 대신 애플리케이션에서 구성된 일부 자격 증명을 사용하여 Microsoft Entra ID에서 "자체적으로" 인증을 받습니다. 애플리케이션 인증을 참조하세요.

  • On-Behalf-Of 인증: "웹 서비스" 또는 "웹앱" 시나리오라고도 하는 이 시나리오에서 애플리케이션은 다른 애플리케이션에서 Microsoft Entra 액세스 토큰을 가져온 다음, Azure confidential ledger에서 사용할 수 있는 다른 Microsoft Entra 액세스 토큰으로 "변환"합니다. 즉, 애플리케이션이 자격 증명을 제공한 사용자 또는 애플리케이션과 Azure confidential ledger 서비스 사이에서 중재자 역할을 합니다. On-Behalf-Of 인증을 참조하세요.

Microsoft Entra 매개 변수

Azure confidential ledger에 대한 Microsoft Entra 리소스

Microsoft Entra ID에서 액세스 토큰을 가져오면 클라이언트에서 토큰을 발급해야 하는 Microsoft Entra 리소스를 지정해야 합니다. Azure confidential ledger 엔드포인트의 Microsoft Entra 리소스는 포트 정보와 경로를 제외한 엔드포인트의 URI입니다.

예를 들어 "myACL"이라는 Azure confidential ledger가 있는 경우 URI는 다음과 같습니다.

https://myACL.confidential-ledger.azure.com

Microsoft Entra 테넌트 ID

Microsoft Entra ID는 다중 테넌트 서비스이며 모든 조직은 Microsoft Entra ID에서 디렉터리라는 개체를 만들 수 있습니다. 디렉터리 개체에는 사용자 계정, 애플리케이션 및 그룹과 같은 보안 관련 개체가 포함됩니다. Microsoft Entra ID는 종종 디렉터리를 테넌트라고 합니다. Microsoft Entra 테넌트는 GUID(테넌트 ID)로 식별됩니다. 대부분의 경우 Microsoft Entra 테넌트는 조직의 도메인 이름으로 식별할 수도 있습니다.

예를 들어 "Contoso"라는 조직에는 aaaabbbb-0000-cccc-1111-dddd2222eeee 테넌트 ID와 contoso.com 도메인 이름이 있을 수 있습니다.

Microsoft Entra 기관 엔드포인트

Microsoft Entra ID에는 인증을 위한 많은 엔드포인트가 있습니다.

  • 인증되는 보안 주체를 호스트하는 테넌트가 알려진 경우(즉, 사용자 또는 애플리케이션이 있는 Microsoft Entra 디렉터리를 알고 있는 경우) Microsoft Entra 엔드포인트는 https://login.microsoftonline.com/{tenantId}입니다. 여기서 {tenantId}는 Microsoft Entra ID에 있는 조직의 테넌트 ID 또는 해당 도메인 이름(예: contoso.com)입니다.
  • 인증되는 보안 주체를 호스트하는 테넌트를 알 수 없는 경우 위의 {tenantId}common 값으로 바꿔 "공통" 엔드포인트를 사용할 수 있습니다.

인증에 사용되는 Microsoft Entra 서비스 엔드포인트는 Microsoft Entra 기관 URL 또는 간단히 Microsoft Entra 기관이라고도 합니다.

참고 항목

Microsoft Entra 서비스 엔드포인트는 국가별 클라우드에서 변경됩니다. 국가별 클라우드에 배포된 Azure confidential ledger 서비스를 사용하는 경우 해당 국가별 클라우드 Microsoft Entra 서비스 엔드포인트을 설정하세요. 엔드포인트를 변경하려면 AadAuthorityUri환경 변수를 필수 URI로 설정합니다.

사용자 인증

사용자 인증을 사용하여 Azure confidential ledger에 액세스하는 가장 쉬운 방법은 Azure confidential ledger SDK를 사용하고 Azure confidential ledger 연결 문자열의 Federated Authentication 속성을 true로 설정하는 것입니다. SDK를 처음 사용하여 서비스에 요청을 보내면 사용자에게 Microsoft Entra 자격 증명을 입력할 수 있는 로그인 양식이 표시됩니다. 인증에 성공하면 요청을 Azure confidential ledger에 보냅니다.

Azure confidential ledger SDK를 사용하지 않는 애플리케이션은 Microsoft Entra 서비스 보안 프로토콜 클라이언트를 구현하는 대신 MSAL(Microsoft 인증 라이브러리)을 계속 사용할 수 있습니다. 개발자용 Microsoft ID 플랫폼을 사용하여 웹앱에서 사용자를 로그인하고 API를 호출할 수 있도록 설정을 참조하세요.

애플리케이션이 프런트 엔드 역할을 하고 Azure confidential ledger 클러스터에 대한 사용자를 인증하려는 경우 Azure confidential ledger에 대한 위임된 권한을 애플리케이션에 부여해야 합니다.

애플리케이션 인증

Azure confidential ledger를 사용하는 애플리케이션은 Microsoft Entra ID의 토큰을 사용하여 인증합니다. 애플리케이션 소유자가 먼저 Microsoft Entra ID에 등록해야 합니다. 또한 등록은 모든 테넌트에서 앱을 식별하는 두 번째 애플리케이션 개체를 만듭니다.

Azure confidential ledger 애플리케이션을 Microsoft Entra ID에 등록하는 방법에 대한 자세한 단계는 다음 문서를 검토하세요.

등록 끝에 애플리케이션 소유자는 다음 값을 가져옵니다.

  • 애플리케이션 ID(Microsoft Entra 클라이언트 ID 또는 appID라고도 함)
  • 인증 키(또한 공유 암호라고도 함)

애플리케이션은 토큰을 가져올 Microsoft Entra ID에 이 두 값 모두가 있어야 합니다.

Azure confidential ledger SDK는 동일한 코드를 사용하는 환경에서 Azure confidential ledger에 대한 원활한 인증을 허용하는 Azure ID 클라이언트 라이브러리를 사용합니다.

.NET Python Java JavaScript
Azure ID SDK .NET Azure ID SDK Python Azure ID SDK Java Azure ID SDK JavaScript

On-Behalf-Of 인증

이 시나리오에서 애플리케이션은 애플리케이션에서 관리하는 임의의 일부 리소스에 대한 Microsoft Entra 액세스 토큰을 보냈으며, 애플리케이션에서 원래 Microsoft Entra 액세스 토큰으로 표시된 보안 주체를 대신하여 confidential ledger에 액세스할 수 있도록 해당 토큰을 사용하여 Azure confidential ledger 리소스에 대한 새 Microsoft Entra 액세스 토큰을 획득합니다.

이 흐름을 OAuth2 토큰 교환 흐름이라고 합니다. 일반적으로 Microsoft Entra ID를 사용하는 여러 구성 단계가 필요하며, 경우에 따라(Microsoft Entra 테넌트 구성에 따라) Microsoft Entra 테넌트 관리자의 특별한 동의가 필요할 수 있습니다.

다음 단계