ID 및 액세스 관리 개발 모범 사례 제로 트러스트
이 문서는 개발자가 애플리케이션 개발 수명 주기에 대한 ID 및 액세스 관리 모범 사례를 이해하는 데 도움이 됩니다. IAM(ID 및 액세스 관리)을 사용하여 안전하고 제로 트러스트 호환되는 애플리케이션 개발을 시작합니다.
제로 트러스트 보안 프레임워크는 명시적 확인, 최소 권한 있는 액세스 및 위반 가정 원칙을 사용합니다. 네트워크 경계 외부에서 애플리케이션에 액세스하는 것과 같은 일반적인 시나리오를 허용하면서 사용자 및 데이터를 보호합니다. 보안 공격에 취약해질 수 있는 보안 네트워크 경계 뒤의 상호 작용에 대한 암시적 신뢰에 대한 의존도를 줄입니다.
산업 보안 추세는 애플리케이션 요구 사항에 영향을 줍니다.
제로 트러스트 구현은 계속 진화하지만 각 조직의 여정은 고유하며 사용자 및 애플리케이션 ID로 시작하는 경우가 많습니다. 다음은 많은 조직이 제로 트러스트 배포할 때 우선 순위를 지정하는 정책 및 컨트롤입니다.
- 앱 및 서비스에 대한 자격 증명 위생 및 회전 정책을 구현합니다. 공격자가 인증서 또는 암호와 같은 비밀을 손상하는 경우 앱 ID를 가장하여 토큰을 획득하기 위한 시스템 액세스의 깊이를 달성할 수 있습니다. 그런 다음 중요한 데이터에 액세스하고, 횡적으로 이동하고, 지속성을 설정합니다.
- 강력한 인증을 롤아웃합니다. IT 관리자는 다단계 인증 및 암호 없는 FIDO2 디바이스가 필요한 정책을 구성하고 있습니다.
- 위험 수준이 낮은 앱에 대한 사용자 동의를 확인된 게시자 앱으로 제한합니다. Microsoft Graph와 같은 API의 데이터에 액세스하면 풍부한 애플리케이션을 빌드할 수 있습니다. 조직과 고객은 동의를 부여하기 전에 앱의 권한 요청 및 신뢰성을 평가합니다. IT 관리자는 게시자 확인을 요구하여 명시적으로 확인 원칙을 수용합니다. 위험 수준이 낮은 권한에 대한 사용자 동의만 허용하여 최소 권한 원칙을 적용합니다.
- 레거시 프로토콜 및 API 차단 IT 관리자는 "기본 인증"과 같은 이전 인증 프로토콜을 차단하고 OpenID 커넥트 및 OAuth2와 같은 최신 프로토콜을 요구합니다.
신뢰할 수 있는 표준 기반 인증 라이브러리 사용
알려진 표준 및 라이브러리를 사용하여 애플리케이션을 개발하여 애플리케이션 이식성 및 보안을 강화합니다. 신뢰할 수 있는 표준 기반 인증 라이브러리는 앱이 최신 기술 및 위협에 응답할 수 있도록 최신 상태를 유지합니다. 표준 기반 개발 방법론은 지원되는 표준 및 해당 이점에 대한 개요를 제공합니다.
알려진 취약성 및 광범위한 설명서가 있는 프로토콜을 사용하는 대신 MSAL(Microsoft 인증 라이브러리), Microsoft Id 웹 인증 라이브러리 및 Azure SDK(소프트웨어 개발자 키트)와 같은 라이브러리를 사용하여 애플리케이션을 개발합니다. MSAL 및 SDK(소프트웨어 개발자 키트)를 사용하면 추가 코드를 작성할 필요 없이 이러한 기능을 사용할 수 있습니다.
- 조건부 액세스
- 디바이스 등록 및 관리
- 암호 없는 인증 및 FIDO2 인증
MSAL 및 Microsoft Graph 는 Microsoft Entra 애플리케이션을 개발하기 위한 최상의 선택입니다. MSAL 개발자는 프로토콜 준수를 보장합니다. Microsoft는 Microsoft Entra ID로 직접 작업할 때 효율성을 위해 MSAL을 최적화합니다.
Microsoft Entra ID에 앱 등록
Microsoft Entra ID의 애플리케이션 속성에 대한 보안 모범 사례를 따릅니다. Microsoft Entra ID의 애플리케이션 등록은 애플리케이션의 위생 상태가 잘못 구성되거나 경과하면 가동 중지 시간 또는 손상이 발생할 수 있으므로 매우 중요합니다.
보안을 향상시키는 애플리케이션 속성에는 리디렉션 URI, 액세스 토큰(암시적 흐름과 함께 사용하지 않는 것), 인증서 및 비밀, 애플리케이션 ID URI 및 애플리케이션 소유권이 포함됩니다. 코드에 대한 보안 위협 모델 평가와 유사한 정기 보안 및 상태 평가를 수행합니다.
ID 및 액세스 관리 위임
고객이 정의하고 관리하는 명시적 ID 확인 및 액세스 제어에 토큰을 사용하는 애플리케이션을 개발합니다. Microsoft는 사용자 고유의 사용자 이름 및 암호 관리 시스템을 개발하지 말 것을 권고합니다.
IT 관리자가 앱을 종료하거나 다시 배포하지 않고 자격 증명을 회전할 수 있도록 코드에서 자격 증명을 유지합니다. Azure Key Vault 또는 Azure 관리 ID와 같은 서비스를 사용하여 IAM을 위임합니다.
최소 권한 액세스를 위한 계획 및 디자인
제로 트러스트 핵심 원칙은 최소 권한 액세스입니다. 고객이 최소 권한 정책을 성공적으로 구성할 수 있도록 애플리케이션을 충분히 개발하고 문서화합니다. 토큰 및 API를 지원할 때 애플리케이션에서 호출하는 리소스에 대한 좋은 설명서를 고객에게 제공합니다.
항상 사용자가 특정 작업을 수행하는 데 필요한 최소 권한을 제공합니다. 예를 들어 Microsoft Graph에서 세분화된 범위를 사용합니다.
Graph Explorer에서 범위를 탐색하여 API를 호출하고 필요한 권한을 검사합니다. 가장 낮은 권한에서 가장 높은 권한으로 순서대로 표시됩니다. 가능한 가장 낮은 권한을 선택하면 애플리케이션이 공격에 덜 취약합니다.
최소 권한 원칙을 사용하여 보안 강화의 지침에 따라 애플리케이션의 공격 표면을 줄이고 보안 위반 폭발 반경이 손상되면 이를 줄입니다.
토큰을 안전하게 관리
애플리케이션이 Microsoft Entra ID에서 토큰을 요청하는 경우 안전하게 관리합니다.
- 애플리케이션 범위가 올바르게 지정되었는지 확인합니다.
- 적절하게 캐시합니다.
- 의도한 대로 사용합니다.
- 오류 클래스를 검사 적절한 응답을 코딩하여 토큰 문제를 처리합니다.
- 액세스 토큰을 직접 읽는 대신 토큰 응답에서 해당 범위 및 세부 정보를 봅니다.
CAE(지속적인 액세스 평가) 지원
CAE(지속적인 액세스 평가 ) 를 사용하면 Microsoft Graph에서 보안 이벤트에 대한 응답으로 액세스를 신속하게 거부할 수 있습니다. 예를 들어 다음과 같은 테넌트 관리자 활동이 있습니다.
- 사용자 계정을 삭제하거나 사용하지 않도록 설정
- 사용자에 대해 MFA(다단계 인증)를 사용하도록 설정합니다.
- 사용자의 발급된 토큰을 명시적으로 해지합니다.
- 위험 수준이 높은 상태 이동하는 사용자를 검색합니다.
CAE를 지원하는 경우 Microsoft Entra ID에서 Microsoft Graph를 호출하는 토큰은 표준 60~90분 대신 24시간 동안 유효합니다. CAE는 MSAL이 토큰이 만료되기 전에 토큰을 사전에 새로 고칠 수 있도록 하여 앱에 복원력을 추가합니다.
IT에서 사용자 및 그룹에 할당할 앱 역할 정의
앱 역할은 애플리케이션에서 역할 기반 액세스 제어를 구현하는 데 도움이 됩니다. 앱 역할의 일반적인 예로는 관리istrator, Reader 및 Contributor가 있습니다. 역할 기반 액세스 제어를 사용하면 애플리케이션에서 정의된 역할에 따라 중요한 작업을 사용자 또는 그룹으로 제한할 수 있습니다.
확인된 게시자 되기
확인된 게시자는 Microsoft 파트너 네트워크 계정으로 ID를 확인하고 설정된 확인 프로세스를 완료했습니다. 다중 테넌트 앱 개발자의 경우 확인된 게시자가 되는 것은 고객 테넌트에서 IT 관리자와의 신뢰를 구축하는 데 도움이 됩니다.
다음 단계
- 토큰 사용자 지정은 Microsoft Entra 토큰에서 받을 수 있는 정보를 설명합니다. 최소한의 권한으로 애플리케이션 제로 트러스트 보안을 강화하면서 유연성과 제어를 향상시키기 위해 토큰을 사용자 지정하는 방법을 알아봅니다.
- 토큰 에서 그룹 클레임 및 앱 역할 구성은 앱 역할 정의를 사용하여 앱을 구성하고 앱 역할에 보안 그룹을 할당하는 방법을 설명합니다. 이 방법은 최소한의 권한으로 애플리케이션 제로 트러스트 보안을 강화하면서 유연성과 제어를 향상시킵니다.
- id에 대한 제로 트러스트 접근 방식을 사용하여 앱을 빌드하면 사용 권한 및 액세스 모범 사례에 대한 개요를 제공합니다.
- ID 통합 가이드에서는 보안 솔루션을 Microsoft 제품과 통합하여 제로 트러스트 솔루션을 만드는 방법을 설명합니다.
- 애플리케이션 등록, 권한 부여 및 액세스 에 대한 개발자 및 관리자 책임은 IT 전문가와 더 잘 공동 작업하는 데 도움이 됩니다.
- 단일 및 다중 테넌트 앱 에 대해 지원되는 ID 및 계정 유형은 앱이 Microsoft Entra ID) 테넌트, Microsoft Entra 테넌트 또는 개인 Microsoft 계정의 사용자만 허용하는지 여부를 선택하는 방법을 설명합니다.
- 권한 부여 모범 사례는 애플리케이션에 대한 최상의 권한 부여, 권한 및 동의 모델을 구현하는 데 도움이 됩니다.
- API Protection은 등록을 통해 API를 보호하고, 사용 권한 및 동의를 정의하고, 제로 트러스트 목표를 달성하기 위해 액세스를 적용하는 모범 사례를 설명합니다.