다음을 통해 공유


Microsoft Entra ID의 애플리케이션 속성의 보안 모범 사례

보안은 Microsoft Entra ID에 애플리케이션을 등록할 때 중요한 개념이며 조직에서 업무용으로도 중요합니다. 애플리케이션 구성이 잘못되면 가동 중지 시간이나 손상이 발생할 수 있습니다. 애플리케이션에 추가된 권한에 따라 조직 전체에 효과가 있을 수 있습니다.

보안 애플리케이션은 조직에 필수적이므로 보안 문제로 인한 가동 중지 시간은 비즈니스 또는 비즈니스가 의존하는 일부 중요한 서비스에 영향을 줄 수 있습니다. 따라서 애플리케이션이 항상 정상적이고 안전한 상태를 유지하도록 시간과 리소스를 할당하는 것이 중요합니다. 코드에 대한 보안 위협 모델 평가와 마찬가지로 애플리케이션에 대한 정기적인 보안 및 상태 평가를 수행합니다. 조직의 보안에 대한 광범위한 관점을 보려면 SDL(보안 개발 수명 주기)을 확인하세요.

이 문서에서는 다음 애플리케이션 속성에 대한 보안 모범 사례를 설명합니다.

  • 리디렉션 URI
  • 액세스 토큰(암시적 흐름에 사용됨)
  • 인증서 및 암호
  • 응용 프로그램 ID URI
  • 애플리케이션 소유권

리디렉션 URI

애플리케이션의 리디렉션 URI를 최신 상태로 유지하는 것이 중요합니다. Azure Portal의 애플리케이션에 대한 인증에서 애플리케이션에 대해 플랫폼을 선택한 다음, 리디렉션 URI 속성을 정의할 수 있습니다.

리디렉션 URI 속성이 있는 위치를 보여주는 스크린샷.

리디렉션 URI에 대한 다음 지침을 고려합니다.

  • 모든 URI의 소유권을 유지합니다. 리디렉션 URI 중 하나의 소유권이 상실되면 애플리케이션이 손상될 수 있습니다.
  • 모든 DNS 레코드가 업데이트되고 변경 사항에 대해 주기적으로 모니터링되는지 확인합니다.
  • 와일드카드 회신 URL이나 http 또는 URN과 같은 안전하지 않은 URI 체계를 사용하지 않습니다.
  • 목록을 작게 유지합니다. 불필요한 URI를 자릅니다. 가능한 경우 Http에서 Https로 URL을 업데이트합니다.

액세스 토큰(암시적 흐름에 사용됨)

암시적 흐름이 필요한 시나리오는 이제 인증 코드 흐름을 사용하여 암시적 흐름 오용과 관련된 손상 위험을 줄일 수 있습니다. Azure Portal의 애플리케이션에 대한 인증에서 애플리케이션에 대해 플랫폼을 선택한 다음, 액세스 토큰(암시적 흐름에 사용됨) 속성을 설정할 수 있습니다.

암시적 흐름 속성이 있는 위치를 보여주는 스크린샷.

암시적 흐름과 관련된 다음 지침을 고려합니다.

  • 암시적 흐름이 필요한지 여부를 이해합니다. 명시적으로 필요하지 않는 한 암시적 흐름을 사용하지 마세요.
  • 애플리케이션이 암시적 흐름을 사용하여 액세스 토큰을 받도록 구성되었지만 이를 적극적으로 사용하지 않는 경우 오용으로부터 보호하기 위해 설정을 해제합니다.
  • 유효한 암시적 흐름 시나리오에 별도의 애플리케이션을 사용합니다.

인증서 및 암호

자격 증명이라고도 하는 인증서 및 비밀은 기밀 클라이언트로 사용되는 경우 애플리케이션의 중요한 부분입니다. Azure Portal의 애플리케이션에 대한 인증서 및 비밀에서 인증서 및 비밀을 추가하거나 제거할 수 있습니다.

인증서 및 비밀이 있는 위치를 보여 주는 스크린샷.

인증서 및 비밀과 관련된 다음 지침을 고려합니다.

  • 가능하면 항상 인증서 자격 증명을 사용하고 암호 자격 증명(비밀이라고도 함)은 사용하지 마세요. 암호 비밀을 자격 증명으로 사용하는 것이 편리하지만 가능하다면 애플리케이션에 대한 토큰을 가져오기 위한 유일한 자격 증명 형식으로 x509 인증서를 사용하세요.
  • Key Vault와 관리 ID를 사용하여 애플리케이션에 대한 자격 증명을 관리합니다.
  • 애플리케이션이 퍼블릭 클라이언트 앱으로만 사용되는 경우(사용자가 퍼블릭 엔드포인트를 사용하여 로그인할 수 있음) 애플리케이션 개체에 지정된 자격 증명이 없는지 확인합니다.
  • 애플리케이션에 사용된 자격 증명의 유효성 및 만료를 검토합니다. 애플리케이션에서 사용되지 않는 자격 증명을 사용하면 보안 위반이 발생할 수 있습니다. 자격 증명을 자주 롤오버하고 애플리케이션 간에 자격 증명을 공유하지 않습니다. 하나의 애플리케이션에 많은 자격 증명이 없어야 합니다.
  • 프로덕션 파이프라인을 모니터링하여 모든 종류의 자격 증명이 코드 리포지토리로 커밋되지 않도록 합니다.
  • 자격 증명 스캐너는 소스 코드 및 빌드 출력에서 자격 증명 및 기타 중요한 콘텐츠를 검색하는 데 사용할 수 있는 정적 분석 도구입니다.

응용 프로그램 ID URI

애플리케이션의 애플리케이션 ID URI 속성은 웹 API를 식별하는 데 사용되는 전역적으로 고유한 URI를 지정합니다. 범위의 접두사이며 액세스 토큰에서 대상 그룹 클레임의 값이기도 하며 확인된 고객 소유 도메인을 사용해야 합니다. 다중 테넌트 애플리케이션의 경우에는 값도 전역적으로 고유해야 합니다. 식별자 URI라고도 합니다. Azure Portal의 애플리케이션에 대한 API 노출에서 애플리케이션 ID URI 속성을 정의할 수 있습니다.

애플리케이션 ID URI가 있는 위치를 보여주는 스크린샷.

애플리케이션 ID URI 정의와 관련된 다음 지침을 고려합니다.

  • api 또는 https URI 체계를 사용하는 것이 좋습니다. 조직에서 URI 충돌을 방지하려면 지원되는 형식으로 속성을 설정합니다. 와일드카드를 사용하지 않습니다.
  • LoB(사업 부문) 애플리케이션에서 확인된 도메인을 사용합니다.
  • 보안을 유지하기 위해 조직의 URI 인벤토리를 유지합니다.
  • 애플리케이션 ID URI를 사용하여 조직의 WebApi를 노출합니다. 애플리케이션을 식별할 때 애플리케이션 ID URI를 사용하지 않고 애플리케이션(클라이언트) ID 속성을 대신 사용합니다.

다음 API 및 HTTP 체계 기반 애플리케이션 ID URI 형식이 지원됩니다. 표 다음 목록에 설명된 대로 자리 표시자 값을 바꿉니다.

지원되는 애플리케이션 ID
URI 형식
앱 ID URI의 예
api://<appId> api://00001111-aaaa-2222-bbbb-3333cccc4444
api://<tenantId>/<appId> api://aaaabbbb-0000-cccc-1111-dddd2222eeee/00001111-aaaa-2222-bbbb-3333cccc4444
api://<tenantId>/<string> api://aaaabbbb-0000-cccc-1111-dddd2222eeee/api
api://<string>/<appId> api://productapi/00001111-aaaa-2222-bbbb-3333cccc4444
https://<tenantInitialDomain>.onmicrosoft.com/<string> https://contoso.onmicrosoft.com/productsapi
https://<verifiedCustomDomain>/<string> https://contoso.com/productsapi
https://<string>.<verifiedCustomDomain> https://product.contoso.com
https://<string>.<verifiedCustomDomain>/<string> https://product.contoso.com/productsapi
  • <appId> - 애플리케이션 개체의 애플리케이션 ID(appId) 속성입니다.
  • <string> - 호스트 또는 API 패스 세그먼트의 문자열 값입니다.
  • <tenantId> - Azure 내에서 테넌트를 나타내기 위해 Azure에서 생성한 GUID입니다.
  • <tenantInitialDomain> - <tenantInitialDomain>.onmicrosoft.com, 여기서 <tenantInitialDomain>은 초기 도메인 이름 및 테넌트 만들기 시 지정한 테넌트 작성자입니다.
  • <verifiedCustomDomain> - Microsoft Entra 테넌트용으로 구성된 확인된 사용자 지정 도메인입니다.

참고 항목

api:// 체계를 사용하는 경우 "api://" 바로 뒤에 문자열 값을 추가합니다. 예를 들면 api://<string>입니다. 해당 문자열 값은 GUID 또는 임의의 문자열일 수 있습니다. GUID 값을 추가하는 경우 앱 ID 또는 테넌트 ID와 일치해야 합니다. 애플리케이션 ID URI 값은 테넌트에서 고유해야 합니다. api://<tenantId>를 애플리케이션 ID URI로 추가하는 경우 다른 어떤 앱에서도 해당 URI를 사용할 수 없습니다. 대신 api://<appId> 또는 HTTP 체계를 사용하는 것이 좋습니다.

Important

애플리케이션 ID URI 값은 슬래시 "/" 문자로 끝나서는 안 됩니다.

앱 소유권 구성

소유자는 등록된 애플리케이션의 모든 측면을 관리할 수 있습니다. 조직 내 모든 애플리케이션의 소유권을 정기적으로 검토하는 것이 중요합니다. 자세한 내용은 Microsoft Entra 액세스 검토를 참조하세요. Azure Portal의 애플리케이션에 대한 소유자에서 애플리케이션의 소유자를 관리할 수 있습니다.

애플리케이션 소유자가 관리되는 위치를 보여 주는 스크린샷.

애플리케이션 소유자 지정과 관련된 다음 지침을 고려합니다.

  • 애플리케이션 소유권이 조직 내 최소한의 사람들에게만 유지되도록 합니다.
  • 관리자는 몇 달에 한 번씩 소유자 목록을 검토하여 소유자가 여전히 조직에 소속되어 있으며 여전히 애플리케이션을 소유해야 하는지 확인해야 합니다.

통합 도우미

Azure Portal에서 통합 도우미를 사용하여 애플리케이션이 고품질 기준을 충족하는지 확인하고 안전한 통합을 제공할 수 있습니다. 통합 도우미는 Microsoft ID 플랫폼과 통합할 때 일반적인 실수를 방지하는 데 도움이 되는 모범 사례와 권장 사항을 강조합니다.

통합 도우미를 찾을 수 있는 위치를 보여 주는 스크린샷.

다음 단계