이 문서에서는 Microsoft ID 플랫폼의 ID 토큰, 액세스 토큰 및 보안 토큰을 사용하여 애플리케이션에 보안을 빌드할 수 있도록 도와줍니다. Microsoft Entra 토큰으로 받을 수 있는 정보와 이를 사용자 지정할 수 있는 방법에 대해 설명합니다. 이는 ISV(독립 소프트웨어 개발자)가 Microsoft Entra ID용 애플리케이션을 빌드하고 최적화하는 방법에 대한 문서 시리즈 중 다섯 번째입니다. 이 시리즈에서는 다음 항목에 대해 자세히 알아볼 수 있습니다.
- 독립 소프트웨어 개발자를 위한 Microsoft Entra ID에서는 이 클라우드 기반 ID 및 액세스 관리 서비스를 사용하여 직원이 애플리케이션을 통해 리소스에 액세스할 수 있도록 하는 방법을 설명합니다.
- Microsoft Entra ID 에코시스템에 애플리케이션 설정에서는 Microsoft Entra 관리 센터 또는 Microsoft Graph API(애플리케이션 프로그래밍 인터페이스)를 사용하여 Microsoft Entra ID 테넌트에 앱을 등록하는 방법을 설명합니다.
- 애플리케이션 및 사용자 인증에서는 애플리케이션에서 Microsoft Entra ID를 사용하여 사용자 및 애플리케이션을 인증하는 방법을 설명합니다.
- 애플리케이션, 리소스 및 워크로드 권한 부여에서는 개인이 애플리케이션과 상호 작용하고 애플리케이션에 지시를 내릴 때, API가 사용자를 대신하여 작업할 때 및 애플리케이션이나 서비스가 독립적으로 작동할 때의 권한 부여에 대해 설명합니다.
애플리케이션이 Microsoft Entra ID에 연결할 때의 기본 작업은 토큰 요청과 처리입니다. 개발자는 Microsoft Entra ID가 위임된 권한 앱 또는 API에 보내는 토큰을 사용자 지정할 수 있습니다. 워크로드 토큰은 사용자 지정할 수 없습니다.
애플리케이션에서 OIDC(OpenID Connect)를 구현하고 ID 토큰을 요청하는 경우 앱의 ID 토큰을 사용자 지정할 수 있습니다. API를 구현하는 경우에는 API를 호출하는 앱이 수신하는 액세스 토큰을 사용자 지정할 수 있습니다. 앱이 수신하고 API에 액세스할 수 있는 권한을 앱에 부여하는 액세스 토큰을 애플리케이션에서 사용자 지정할 수는 없습니다.
ISV의 토큰 사용자 지정을 위한 기본 방법은 앱 등록에서 토큰에 선택적 클레임을 추가하는 것입니다. 선택적 클레임 참조에 사용 가능한 선택적 클레임이 나열되어 있습니다.
다중 테넌트 앱의 경우 모든 테넌트에 선택적 클레임을 사용할 수 있습니다. 사용자의 온-프레미스 보안 ID 클레임을 포함하기 위해 선택적 onprem_sid 클레임을 포함하도록 API 액세스 토큰을 구성할 수 있습니다. 사용자가 선택적 클레임을 구성할 수 있지만 토큰에 구성한 선택적 클레임이 포함되지 않은 경우 항상 앱에서 처리해야 합니다. 예를 들어 사용자는 온-프레미스 보안 식별자가 없는 Microsoft Entra ID 전용 사용자일 수 있습니다. 이 경우 Microsoft Entra ID는 토큰에 선택적 클레임을 포함하지 않습니다. Microsoft Entra ID는 빈("") 값을 갖는 클레임을 반환하지 않습니다.
그룹 클레임은 특수하게 처리해야 하는 선택적 클레임입니다. 앱 또는 API는 사용자의 보안 그룹 및 중첩된 그룹을 토큰에 포함하거나 그룹 클레임을 사용하여 보안 그룹 및 중첩 그룹을 배포 목록과 함께 포함할 수 있습니다. 애플리케이션은 wids(테넌트 전체 역할) 클레임을 사용하여 토큰에 사용자의 디렉터리 역할을 포함할 수 있습니다. 모든 사용자의 그룹 및/또는 배포 목록을 포함하면 토큰에 그룹 또는 배포 목록이 없을 수 있습니다.
토큰 크기에 따라 그룹 클레임의 총 항목 수가 OAuth 2.0 앱의 경우 200개, SAML 앱의 경우 150개, 하이브리드 흐름의 일부로 암시적 허용을 사용하는 앱의 경우 6개로 제한됩니다. 그룹이 너무 많으면 토큰에 그룹 초과 클레임이 있습니다. 토큰에 그룹 초과분 클레임이 포함된 경우 Microsoft Graph 호출로 돌아가 사용자 그룹을 가져옵니다. 사용자가 너무 많은 그룹의 멤버인지 알 수 있는 방법이 없으므로 Microsoft Graph를 호출하여 사용자의 그룹 멤버 자격을 확인할 수 있는 기능을 앱에 항상 포함합니다. Microsoft Graph 코드 요구 사항 때문에 그룹 클레임 대신 Microsoft Graph를 사용하는 것이 좋습니다.
그룹 초과를 방지하려면 애플리케이션에 할당된 그룹만 포함하도록 그룹 클레임을 구성합니다. 이 방법을 사용하면 그룹 클레임은 앱 또는 API에 할당된 그룹 중 사용자가 멤버인 그룹만 포함합니다(중첩 그룹 지원하지 않음). 사용자는 앱에 할당된 그룹의 직접 멤버여야 합니다.
그룹 초과를 방지하는 또 다른 방법으로 그룹 대신 역할을 사용합니다. 토큰에서 수신하는 애플리케이션 또는 API에 대한 역할을 구성할 수 있습니다. IT 관리자는 P1 이상의 라이선싱을 사용하여 Microsoft Entra ID 테넌트에서 정의하는 역할에 그룹을 할당할 수 있습니다. 할당 후 토큰의 역할 클레임에는 사용자에게 할당된 모든 역할 또는 사용자의 그룹 멤버 자격 기반의 역할이 포함됩니다.
그룹 또는 역할 사용의 장단점을 평가합니다. ISV의 경우 그룹 대신 역할을 사용하는 것이 좋습니다.
다음 단계
- 독립 소프트웨어 개발자를 위한 Microsoft Entra ID에서는 이 클라우드 기반 ID 및 액세스 관리 서비스를 사용하여 직원이 애플리케이션을 통해 리소스에 액세스할 수 있도록 하는 방법을 설명합니다.
- Microsoft Entra ID 에코시스템에 애플리케이션 설정에서는 Microsoft Entra 관리 센터 또는 Microsoft Graph API를 사용하여 Microsoft Entra ID 테넌트에 앱을 등록하는 방법을 설명합니다.
- 애플리케이션 및 사용자 인증에서는 애플리케이션에서 Microsoft Entra ID를 사용하여 사용자 및 애플리케이션을 인증하는 방법을 설명합니다.
- 애플리케이션, 리소스 및 워크로드 권한 부여에서는 개인이 애플리케이션과 상호 작용하고 애플리케이션에 지시를 내릴 때, API가 사용자를 대신하여 작업할 때 및 애플리케이션이나 서비스가 독립적으로 작동할 때의 권한 부여에 대해 설명합니다.