다음을 통해 공유


토큰 사용자 지정

개발자로서 Microsoft Entra ID와의 기본 상호 작용은 사용자를 식별하는 토큰을 요청하는 것입니다. 또한 웹 API를 호출하기 위한 권한 부여를 얻기 위해 토큰을 요청합니다. 웹 API 토큰은 API가 특정 요청을 서비스할 때 수행할 수 있는 작업을 결정합니다. 이 문서에서는 토큰에서 받을 수 있는 정보와 토큰을 사용자 지정하는 방법에 대해 알아봅니다. 이러한 제로 트러스트 개발자 모범 사례는 최소한의 권한으로 애플리케이션 보안을 강화하면서 유연성과 제어를 향상시킵니다.

애플리케이션 토큰을 사용자 지정하는 이유는 애플리케이션 및 API에서 보다 세부적인 권한 부여를 추진하는 데 사용하는 프로세스에 따라 달라집니다. 예를 들어 앱에는 토큰의 정보를 사용하는 다양한 사용자 역할, 액세스 수준 및 기능이 있을 수 있습니다.

Microsoft Graph API는 Microsoft 365에서 강력한 디렉터리 정보 및 데이터 집합을 제공합니다. Microsoft Graph의 데이터를 기반으로 세분화되고 풍부한 권한 부여 시스템을 개발할 수 있습니다. 예를 들어 사용자의 그룹 멤버 자격, 자세한 프로필 데이터, SharePoint 및 Outlook의 정보에 액세스하여 권한 부여 결정에 사용할 수 있습니다. Microsoft Entra ID의 토큰에 권한 부여 데이터를 포함할 수도 있습니다.

애플리케이션 수준 권한 부여

IT 전문가는 토큰을 사용자 지정하거나 개발자가 코드를 추가하지 않고 앱 수준 권한 부여를 추가할 수 있습니다.

IT 전문가는 사용자 할당 필수 플래그를 사용하여 사용자 집합만 애플리케이션에 로그인할 수 있도록 하여 테넌트 내의 모든 앱에 토큰이 발급되지 않도록 할 수 있습니다. 이 플래그가 없으면 테넌트에 있는 모든 사용자가 애플리케이션에 액세스할 수 있습니다. 이 플래그를 사용하면 할당된 사용자 및 그룹만 애플리케이션에 액세스할 수 있습니다. 할당된 사용자가 앱에 액세스하면 앱이 토큰을 받습니다. 사용자에게 할당이 없는 경우 앱은 토큰을 받지 않습니다. 항상 토큰을 받지 않는 토큰 요청을 정상적으로 처리해야 합니다.

토큰 사용자 지정 방법

토큰을 사용자 지정하는 방법에는 선택적 클레임 및 클레임 매핑의 두 가지가 있습니다.

선택적 클레임

선택적 클레임 은 Microsoft Entra ID가 토큰으로 애플리케이션에 보낼 클레임을 지정합니다. 선택적 클레임을 사용하여 다음을 수행할 수 있습니다.

  • 애플리케이션 토큰에 포함할 클레임을 더 선택합니다.
  • Microsoft ID 플랫폼 토큰에서 반환하는 클레임의 동작을 변경합니다.
  • 애플리케이션에 대한 사용자 지정 클레임을 추가하고 액세스합니다.

선택적 클레임은 정의된 스키마를 사용하여 애플리케이션 등록 개체에서 중단됩니다. 실행 중인 위치에 관계없이 애플리케이션에 적용합니다. 다중 테넌트 애플리케이션을 작성할 때 선택적 클레임은 Microsoft Entra ID의 모든 테넌트에서 일관되므로 잘 작동합니다. 예를 들어 IP 주소는 테넌트별이 아닌 반면 애플리케이션에는 IP 주소가 있습니다.

기본적으로 테넌트에서 게스트 사용자는 앱에 로그인할 수도 있습니다. 게스트 사용자를 차단하려면 선택적 클레임 (acct)에 옵트인합니다. 1이면 사용자에게 게스트 분류가 있습니다. 게스트를 차단하려면 acct==1로 토큰을 차단합니다.

클레임 매핑 정책

Microsoft Entra ID에서 정책 개체는 개별 애플리케이션 또는 조직의 모든 애플리케이션에 대한 규칙 집합을 나타냅니다. 클레임 매핑 정책은 Microsoft Entra ID가 특정 애플리케이션에 대한 토큰에서 발급하는 클레임을 수정합니다.

스키마가 없는 테넌트별 정보(예: EmployeeID, DivisionName)에 대한 클레임 매핑을 사용합니다. 클레임 매핑은 테넌트 관리자가 제어하는 서비스 주체 수준에서 적용됩니다. 클레임 매핑은 엔터프라이즈 앱 또는 해당 애플리케이션의 서비스 주체에 해당합니다. 각 테넌트에는 고유한 클레임 매핑이 있을 수 있습니다.

기간 업무 애플리케이션을 개발하는 경우 테넌트가 수행하는 작업(테넌트가 토큰에서 사용할 수 있는 특정 클레임)을 구체적으로 살펴볼 수 있습니다. 예를 들어 조직의 온-프레미스 Active Directory 사용자의 부서 이름 속성(Microsoft Entra ID의 표준 필드 아님)이 있는 경우 Microsoft Entra 커넥트 사용하여 Microsoft Entra ID와 동기화할 수 있습니다.

표준 확장 특성 중 하나를 사용하여 해당 정보를 포함할 수 있습니다. 모든 테넌트에 적용되지 않더라도 해당 확장에서 작성할 수 있는 나누기 이름 클레임으로 토큰을 정의할 수 있습니다. 예를 들어 조직에서는 해당 부서 이름을 확장 특성 13에 넣습니다.

클레임 매핑을 사용하면 해당 부서 이름을 특성 7에 넣는 다른 테넌트에서 작동할 수 있습니다.

토큰 사용자 지정 계획

사용자 지정하는 토큰은 애플리케이션 유형(클라이언트 애플리케이션 또는 API)에 따라 달라집니다. 토큰을 사용자 지정하기 위해 수행할 수 있는 작업은 차이가 없습니다. 토큰에 넣을 수 있는 항목은 각 토큰에 대해 동일합니다. 사용자 지정하도록 선택한 토큰은 앱에서 사용하는 토큰에 따라 달라집니다.

ID 토큰 사용자 지정

클라이언트 애플리케이션을 개발하는 경우 ID 토큰사용자를 식별하도록 요청하는 토큰이므로 사용자 지정합니다. 토큰의 대상 클레임(aud)이 애플리케이션의 클라이언트 ID와 일치하는 경우 토큰은 앱에 속합니다. API를 호출하지만 구현하지 않는 클라이언트 애플리케이션의 경우 앱의 ID 토큰만 사용자 지정해야 합니다.

Azure Portal 및 Microsoft Graph API를 사용하면 앱에 대한 액세스 토큰도 사용자 지정할 수 있지만 이러한 사용자 지정은 효과가 없습니다. 소유하지 않은 API에 대한 액세스 토큰을 사용자 지정할 수 없습니다. 앱은 클라이언트 앱이 API를 호출하기 위한 권한 부여로 수신하는 액세스 토큰을 디코딩하거나 검사하려고 시도해서는 안 됩니다.

액세스 토큰 사용자 지정

API를 개발하는 경우 API가 API에 대한 클라이언트 호출의 일부로 액세스 토큰을 수신하기 때문에 액세스 토큰을 사용자 지정합니다.

클라이언트 애플리케이션은 항상 사용자에게 ID를 지정하기 위해 수신하는 ID 토큰을 사용자 지정합니다. API는 API 호출의 일부로 API가 수신하는 액세스 토큰을 사용자 지정합니다.

그룹 및 앱 역할

가장 일반적인 권한 부여 방법 중 하나는 사용자의 그룹 멤버 자격 또는 할당된 역할에 대한 액세스를 기반으로 하는 것입니다. 토큰 에서 그룹 클레임 및 앱 역할을 구성하면 앱 역할 정의를 사용하여 앱을 구성하고 앱 역할에 보안 그룹을 할당하는 방법을 보여 줍니다. 이러한 방법은 최소한의 권한으로 애플리케이션 제로 트러스트 보안을 강화하면서 유연성과 제어를 개선하는 데 도움이 됩니다.

다음 단계