다음을 통해 공유


사용자 지정 인증 확장 개요

이 문서에서는 Microsoft Entra ID에 대한 사용자 지정 인증 확장에 대한 대략적인 기술 개요를 제공합니다. 사용자 지정 인증 확장을 사용하면 외부 시스템과 통합하여 Microsoft Entra 인증 환경을 사용자 지정할 수 있습니다.

다음 다이어그램에서는 사용자 지정 인증 확장과 통합된 로그인 흐름을 보여 줍니다.

외부 원본의 클레임으로 보강되는 토큰을 보여 주는 다이어그램.

  1. 사용자가 앱에 로그인을 시도하면 Microsoft Entra 로그인 페이지로 리디렉션됩니다.
  2. 사용자가 인증의 특정 단계를 완료하면 이벤트 수신기가 트리거됩니다.
  3. 사용자 지정 인증 확장REST API 엔드포인트에 HTTP 요청을 보냅니다. 요청에는 이벤트, 사용자 프로필, 세션 데이터 및 기타 컨텍스트 정보에 대한 정보가 포함됩니다.
  4. REST API는 사용자 지정 워크플로를 수행합니다.
  5. REST API는 Microsoft Entra ID에 HTTP 응답을 반환합니다.
  6. Microsoft Entra 사용자 지정 인증 확장은 응답을 처리하고 이벤트 유형 및 HTTP 응답 페이로드를 기반으로 인증을 사용자 지정합니다.
  7. 토큰이 반환됩니다.

사용자 지정 인증 확장 REST API 엔드포인트

이벤트가 발생하면 Microsoft Entra ID는 사용자가 소유한 REST API 엔드포인트를 호출합니다. REST API에 대한 요청에는 이벤트, 사용자 프로필, 인증 요청 데이터 및 기타 컨텍스트 정보에 대한 정보가 포함됩니다.

프로그래밍 언어, 프레임워크 및 호스팅 환경을 사용하여 사용자 지정 인증 확장 REST API를 만들고 호스트할 수 있습니다. 빠른 시작 방법은 C# Azure Function을 사용합니다. Azure Functions를 사용하면 먼저 VM(가상 머신)을 만들거나 웹 애플리케이션을 게시하지 않고도 서버리스 환경에서 코드를 실행할 수 있습니다.

REST API는 다음을 처리해야 합니다.

  • REST API 호출을 보호하기 위한 토큰 유효성 검사입니다.
  • 비즈니스 논리
  • HTTP 요청 및 응답 스키마의 들어오고 나가는 유효성 검사입니다.
  • 감사 및 로깅.
  • 가용성, 성능 및 보안 제어.

Azure Functions에서 REST API를 실행하는 개발자의 경우 Microsoft Azure의 기본 제공 인증 기능을 사용하여 토큰 유효성 검사 구현에 도움이 되는 Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents NuGet 라이브러리를 사용하는 것이 좋습니다. 다양한 이벤트 유형에 대한 데이터 모델을 제공하고, 들어오고 나가는 요청 및 응답 처리를 시작하므로 비즈니스 논리에 더 많은 초점을 맞출 수 있습니다.

REST API 보호

사용자 지정 인증 확장과 REST API 간의 통신이 적절하게 보호되도록 하려면 여러 보안 컨트롤을 적용해야 합니다.

  1. 사용자 지정 인증 확장은 REST API를 호출할 때 Microsoft Entra ID에서 발급한 전달자 토큰과 함께 HTTP Authorization 헤더를 보냅니다.
  2. 전달자 토큰에는 appid 또는 azp 클레임이 포함됩니다. 해당 클레임에 99045fe1-7639-4a75-9d4a-577b6ca3810f 값이 포함되어 있는지 확인합니다. 이 값은 Microsoft Entra ID가 REST API를 호출하는 ID인지 확인합니다.
    1. V1 애플리케이션의 경우 appid 클레임의 유효성을 검사합니다.
    2. V2 애플리케이션의 경우 azp 클레임의 유효성을 검사합니다.
  3. 전달자 토큰 aud 대상 클레임에는 연결된 애플리케이션 등록의 ID가 포함됩니다. REST API 엔드포인트는 해당 특정 대상에 대해 전달자 토큰이 발급되었는지 확인해야 합니다.
  4. 전달자 토큰 iss 발급자 클레임에는 Microsoft Entra 발급자 URL이 포함됩니다. 테넌트 구성에 따라 발급자 URL은 다음 중 하나가 됩니다.
    • 인력: https://login.microsoftonline.com/{tenantId}/v2.0.
    • 고객: https://{domainName}.ciamlogin.com/{tenantId}/v2.0.

사용자 지정 클레임 공급자

사용자 지정 클레임 공급자는 REST API를 호출하여 외부 시스템에서 클레임을 가져오는 사용자 지정 인증 확장 유형입니다. 사용자 지정 클레임 공급자는 외부 시스템의 클레임을 토큰으로 매핑하고 디렉터리의 하나 이상의 애플리케이션에 할당할 수 있습니다.

사용자 지정 클레임 공급자에 대해 자세히 알아봅니다.

특성 컬렉션 시작 및 제출 이벤트

특성 컬렉션 시작 및 제출 이벤트를 사용자 지정 인증 확장과 함께 사용하여 사용자로부터 특성을 수집하기 전후에 논리를 추가할 수 있습니다. 예를 들어, 등록 중에 사용자가 입력하는 특성을 확인하는 워크플로를 추가할 수 있습니다. OnAttributeCollectionStart 이벤트는 특성 컬렉션 페이지가 렌더링되기 전에 특성 컬렉션 단계 시작 시 발생합니다. 값을 미리 채우고 차단 오류를 표시하는 등의 작업을 추가할 수 있습니다. OnAttributeCollectionSubmit 이벤트는 사용자가 특성을 입력하고 제출한 후에 트리거되므로 항목 유효성 검사 또는 특성 수정과 같은 작업을 추가할 수 있습니다.

참고 항목

특성 컬렉션 시작 및 제출 이벤트는 현재 외부 테넌트에서 Microsoft Entra 외부 ID 사용자 흐름에만 사용할 수 있습니다. 자세한 내용은 고유한 비즈니스 논리 추가를 참고 하세요.

참고 항목