Azure Active Directory의 애플리케이션에 대한 동의 환경

이 문서에서는 Azure AD(Azure Active Directory) 애플리케이션 동의 사용자 환경에 대해 알아봅니다. 그러면 조직에 대한 애플리케이션을 지능적으로 관리하고/관리하거나 더 원활한 동의 환경이 포함된 애플리케이션을 개발할 수 있습니다.

동의란 사용자가 자신을 대신해 보호되는 리소스에 액세스하기 위해 애플리케이션에 권한을 부여하는 프로세스를 말합니다. 관리자 또는 사용자에게 조직/개인 데이터에 대한 액세스를 허용하도록 동의를 요청할 수 있습니다.

동의를 부여하는 실제 사용자 환경은 사용자의 테넌트, 사용자의 권한(또는 역할) 범위 및 클라이언트 애플리케이션에서 요청한 사용 권한 형식에 따라 달라집니다. 즉, 애플리케이션 개발자와 테넌트 관리자는 동의 환경을 어느 정도 제어할 수 있습니다. 관리자는 테넌트에서 동의 환경을 제어하기 위해 테넌트 또는 앱에서 정책을 유연하게 사용 및 사용하지 않도록 설정할 수 있습니다. 애플리케이션 개발자는 어떤 유형의 권한을 요청하는지 및 사용자 동의 흐름 또는 관리자 동의 흐름을 통해 사용자를 안내할지 여부를 지정할 수 있습니다.

  • 사용자 동의 흐름 - 애플리케이션 개발자가 현재 사용자만의 동의를 기록하려는 목적으로 권한 부여 엔드포인트로 사용자를 안내하는 경우입니다.
  • 관리자 동의 흐름 - 애플리케이션 개발자가 전체 테넌트의 동의를 기록하려는 목적으로 관리자 동의 엔드포인트로 사용자를 안내하는 경우입니다. 관리자 동의 흐름이 제대로 작동되도록 하려면 애플리케이션 개발자는 애플리케이션 매니페스트의 RequiredResourceAccess 속성에서 모든 사용 권한을 나열해야 합니다. 자세한 내용은 애플리케이션 매니페스트를 참조하세요.

동의 확인 프롬프트는 사용자가 자신을 대신해 클라이언트 애플리케이션이 보호되는 리소스에 액세스할 정도로 신뢰하는지 판단할 충분한 정보를 확보하도록 설계됩니다. 구성 요소에 대한 이해는 사용자 동의가 더 많은 정보를 확보하고 결정을 내리는 데 도움이 되며, 또한 개발자가 더 나은 사용자 환경을 빌드하는 데도 도움이 됩니다.

다음 다이어그램 및 테이블은 동의 확인 프롬프트의 구성 요소에 대한 정보를 제공합니다.

동의 확인 프롬프트의 구성 요소

# 구성 요소 목적
1 사용자 ID 이 ID는 클라이언트 애플리케이션이 대신해 보호되는 리소스에 액세스를 요청하는 사용자를 나타냅니다.
2 제목 제목은 사용자가 사용자 또는 관리자 동의 흐름의 통과 여부에 따라 변경됩니다. 사용자 동의 흐름에서 제목은 "사용 권한 요청"이지만 관리자 동의 흐름의 제목은 "조직에 대한 동의" 줄이 추가됩니다.
3 앱 로고 이 이미지는 이 앱이 액세스하려던 앱인지 여부를 나타내는 시각적 신호를 사용자가 확보하는 데 도움이 됩니다. 이 이미지는 애플리케이션 개발자가 제공하며 이 이미지의 소유권에 대한 유효성은 검사되지 않습니다.
4 앱 이름 이 값은 애플리케이션이 사용자의 데이터에 액세스를 요청하는 것을 사용자에게 알려야 합니다. 이 이름은 개발자가 제공하며 이 앱 이름의 소유권에 대한 유효성은 검사되지 않습니다.
5 게시자 이름 및 확인 파란색 "확인" 배지는 앱 게시자가 Microsoft 파트너 네트워크 계정을 사용하여 ID를 확인하고 확인 프로세스를 완료했다는 것을 의미합니다. 앱이 게시자를 확인하면 게시자 이름이 표시됩니다. 앱의 게시자가 확인되지 않으면 게시자 이름 대신 “확인되지 않음”이 표시됩니다. 자세한 내용은 게시자 확인에 대해 읽어보세요. 게시자 이름을 선택하면 게시자 이름, 게시자 도메인, 만든 날짜, 인증 세부 정보 및 회신 URL과 같은 사용 가능한 추가 앱 정보가 표시됩니다.
6 Microsoft 365 인증 Microsoft 365 인증 로고는 앱이 업계 최고의 표준 프레임워크에서 파생된 컨트롤을 기준으로 심사를 받았으며 고객 데이터를 보호하기 위한 강력한 보안 및 규정 준수 방식이 사용되고 있음을 의미합니다. 자세한 내용은 Microsoft 365 인증에 대해 읽어보세요.
7 게시자 정보 Microsoft에서 애플리케이션을 게시하는지 여부를 표시합니다.
8 사용 권한 이 목록에는 클라이언트 애플리케이션에서 요청하는 사용 권한이 포함됩니다. 사용자는 동의하는 경우 자신을 대신해 액세스 권한이 클라이언트 애플리케이션에 부여되는 데이터를 파악하려면 요청되는 권한 유형을 항상 평가해야 합니다. 애플리케이션 개발자로서 최소 권한이 포함된 권한에 대한 액세스를 요청하는 것이 가장 좋습니다.
9 사용 권한 설명 이 값은 사용 권한을 노출하는 서비스에서 제공됩니다. 사용 권한 설명을 참조하려면 사용 권한 옆의 펼침 단추를 설정 및 해제해야 합니다.
10 https://myapps.microsoft.com 사용자가 검토해서 현재 해당 데이터에 액세스 권한이 있는 모든 타사 애플리케이션을 제거할 수 있는 링크입니다.
11 여기에서 보고 이 링크는 앱을 신뢰하지 않는 경우, 앱이 다른 앱을 가장한다고 생각되는 경우, 앱이 데이터를 오용한다고 생각되는 경우 또는 다른 이유로 의심스러운 앱을 보고하는 데 사용됩니다.

다음 섹션에서는 일반적인 시나리오와 각 시나리오에 대한 예상 동의 환경을 설명합니다.

사용자가 부여할 수 있는 권한이 앱에 필요합니다.

이 동의 시나리오에서 사용자는 사용자의 권한 범위 내에 있는 권한 세트가 필요한 앱에 액세스합니다. 사용자는 사용자 동의 흐름으로 이동됩니다.

관리자는 전체 테넌트를 대신하여 동의를 제공할 수 있는 기존 동의 프롬프트에서 추가 제어를 확인할 수 있습니다. 컨트롤은 기본적으로 꺼짐으로 설정되어 있으므로 관리자가 명시적으로 확인란을 체크할 경우에만 전체 테넌트를 대신해 동의가 부여됩니다. 이 확인란은 전역 관리자 역할에 대해서만 표시되므로 클라우드 관리 및 앱 관리 이 확인란이 표시되지 않습니다.

시나리오 1a에 대한 동의 확인 프롬프트

사용자에게는 기존의 동의 확인 프롬프트가 표시됩니다.

기존 동의 프롬프트를 보여 주는 스크린샷

사용자가 부여할 수 없는 권한이 앱에 필요합니다.

이 동의 시나리오에서 사용자는 사용자의 권한 범위를 벗어난 하나 이상의 권한이 필요한 앱에 액세스합니다.

관리자는 전체 테넌트를 대신하여 동의할 수 있는 기존의 동의 확인 프롬프트에서 추가 컨트롤을 확인할 수 있습니다.

시나리오 1a에 대한 동의 확인 프롬프트

관리자가 아닌 사용자는 애플리케이션에 대한 동의를 부여하는 것이 차단되므로 앱에 액세스하려면 관리자에게 요청하라는 메시지가 나타납니다. 사용자의 테넌트에서 관리자 동의 워크플로를 사용하도록 설정한 경우 관리자가 아닌 사용자는 동의 프롬프트에서 관리자 승인 요청을 제출할 수 있습니다. 관리자 동의 워크플로에 대한 자세한 내용은 관리자 동의 워크플로를 참조하세요.

사용자에게 앱 액세스 권한을 관리자에게 요청하도록 알리는 동의 프롬프트의 스크린샷

이 동의 시나리오에서 사용자는 관리자 동의 흐름으로 이동하거나 이동됩니다.

관리 사용자에게는 관리자 동의 확인 프롬프트가 표시됩니다. 이 프롬프트에서 제목 및 사용 권한 설명이 변경됐습니다. 이 변경 사항은 이 프롬프트에 대한 동의를 통해 전체 테넌트를 대신해 요청된 데이터에 대한 액세스 권한이 앱에 부여된다는 사실을 강조 표시합니다.

시나리오 3a에 대한 동의 확인 프롬프트

관리자가 아닌 사용자는 애플리케이션에 대한 동의를 부여하는 것이 차단되므로 앱에 액세스하려면 관리자에게 요청하라는 메시지가 나타납니다.

사용자에게 앱 액세스 권한을 관리자에게 요청하도록 알리는 동의 프롬프트의 스크린샷

이 시나리오에서 관리자는 테넌트의 모든 사용자를 대신하여 위임된 권한을 포함할 수 있는 애플리케이션이 요청하는 모든 권한에 동의합니다. 관리자는 Azure Portal에서 애플리케이션 등록의 API 권한 페이지를 통해 동의를 부여합니다.

Azure Portal을 통한 명시적 관리자 동의의 스크린샷

애플리케이션에 새 권한이 필요하지 않으면 해당 테넌트의 모든 사용자에게 동의 대화 상자가 표시되지 않습니다. 위임된 권한에 동의할 수 있는 관리자 역할을 알아보려면 Azure AD의 관리자 역할 권한을 참조하세요.

중요

권한 부여 단추를 사용하는 명시적 동의 부여는 현재 MSAL.js를 사용하는 SPA(단일 페이지 애플리케이션)에 필요합니다. 그렇지 않고 액세스 토큰을 요청하는 경우 애플리케이션이 실패합니다.

일반적인 문제

이 섹션에서는 동의 환경과 관련된 일반적인 문제 및 가능한 문제 해결 팁을 간략하게 설명합니다.

  • 403 오류

    • 이는 위임된 시나리오인가요? 사용자에게 어떤 권한이 있나요?
    • 엔드포인트를 사용하기 위해 필요한 권한이 추가되나요?
    • 토큰을 확인하여 엔드포인트를 호출하는 데 필요한 클레임이 있는지 확인합니다.
    • 어떤 권한에 동의했나요? 누가 동의했나요?
  • 사용자가 동의할 수 없음

    • 테넌트 관리자가 조직에 대한 사용자 동의를 사용하지 않도록 설정했는지 확인합니다.
    • 요청하는 권한이 관리자 제한 권한인지 확인합니다.
  • 관리자가 동의한 후에도 사용자가 여전히 차단됨

    • 정적 권한이 동적으로 요청된 권한의 상위 집합으로 구성되어 있는지 확인합니다.
    • 앱에 사용자 할당이 필요한지 확인합니다.

알려진 오류 해결

문제 해결 단계는 애플리케이션에 대한 동의를 수행할 때 예기치 않은 오류를 참조하세요.

다음 단계