다음을 통해 공유


PowerShell을 사용하여 위험 기반 스텝업 동의 구성

이 문서에서는 Microsoft Entra ID에서 위험 기반 단계별 동의를 구성하는 방법을 알아봅니다. 위험 기반 상향 동의는 불법 동의 요청을 보내는 악성 앱에 대한 사용자 노출을 줄이는 데 도움이 됩니다.

예를 들어 게시자가 확인되지 않았고 기본이 아닌 권한이 필요한 새로 등록된 다중 테넌트 앱에 대한 동의 요청은 위험한 것으로 간주됩니다. 위험 사용자 동의 요청이 감지되면 요청에 관리자 동의에 대한 "스텝업"이 대신 필요합니다. 이 스텝업 기능은 기본적으로 사용하도록 설정되어 있지만 사용자 동의가 사용하도록 설정된 경우에만 동작이 변경됩니다.

위험한 동의 요청이 감지되면 동의 프롬프트에 관리자 승인이 필요하다는 메시지가 표시됩니다. 관리자 동의 요청 워크플로가 설정된 경우 사용자는 동의 프롬프트에서 직접 관리자에게 추가 검토가 필요한 요청을 보낼 수 있습니다. 관리자 동의 요청 워크플로가 사용하도록 설정되지 않은 경우 다음 메시지가 표시됩니다.

AADSTS90094: <clientAppDisplayName>에는 관리자만 권한을 부여할 수 있는 조직의 리소스에 대한 액세스 권한이 필요합니다. 이 앱을 사용하기 전에 관리자에게 이 앱에 대한 권한을 부여하도록 요청합니다.

이 경우 감사 이벤트도 "ApplicationManagement" 범주, "애플리케이션 동의" 작업 유형 및 "위험한 애플리케이션 검색됨" 상태 설명과 함께 기록됩니다.

필수 조건

위험 기반 스텝업 동의를 구성하려면 다음이 필요합니다.

Microsoft Graph PowerShell 베타 모듈을 사용하여 위험이 감지된 경우 필요한 관리자 동의 단계를 비활성화하거나 이전에 비활성화되어 있던 경우 활성화할 수 있습니다.

Important

Microsoft Graph PowerShell 베타 cmdlet 모듈을 사용하고 있는지 확인합니다.

  1. 다음 명령을 실행합니다.

    Install-Module Microsoft.Graph.Beta
    
  2. Microsoft Graph PowerShell에 연결합니다.

    Connect-MgGraph -Scopes "Directory.ReadWrite.All"
    
  3. 테넌트에서 동의 정책 설정 디렉터리 설정의 현재 값을 검색합니다. 이렇게 하려면 이 기능에 대한 디렉터리 설정을 만들었는지 여부를 확인해야 합니다. 만들지 않은 경우 해당 디렉터리 설정 템플릿의 값을 사용합니다.

    $consentSettingsTemplateId = "dffd5d46-495d-40a9-8e21-954ff55e198a" # Consent Policy Settings
    $settings = Get-MgBetaDirectorySetting -All | Where-Object { $_.TemplateId -eq $consentSettingsTemplateId }
    if (-not $settings) {
        $params = @{
            TemplateId = $consentSettingsTemplateId
            Values = @(
                @{ 
                    Name = "BlockUserConsentForRiskyApps"
                    Value = "True"
                }
                @{ 
                    Name = "ConstrainGroupSpecificConsentToMembersOfGroupId"
                    Value = "<groupId>"
                }
                @{ 
                    Name = "EnableAdminConsentRequests"
                    Value = "True"
                }
                @{ 
                    Name = "EnableGroupSpecificConsent"
                    Value = "True"
                }
            )
        }
        $settings = New-MgBetaDirectorySetting -BodyParameter $params
    }
    $riskBasedConsentEnabledValue = $settings.Values | ? { $_.Name -eq "BlockUserConsentForRiskyApps" }
    
  4. 값을 확인합니다.

    $riskBasedConsentEnabledValue
    

    다음 설정 값을 이해합니다.

    설정 Type 설명
    BlockUserConsentForRiskyApps 부울 위험한 요청이 감지되면 사용자 동의를 차단하는지 여부를 나타내는 플래그입니다.
  5. BlockUserConsentForRiskyApps의 값을 변경하려면 Update-MgBetaDirectorySetting cmdlet을 사용합니다.

    $params = @{
        TemplateId = $consentSettingsTemplateId
        Values = @(
            @{ 
                Name = "BlockUserConsentForRiskyApps"
                Value = "False"
            }
            @{ 
                Name = "ConstrainGroupSpecificConsentToMembersOfGroupId"
                Value = "<groupId>"
            }
            @{ 
                Name = "EnableAdminConsentRequests"
                Value = "True"
            }
            @{ 
                Name = "EnableGroupSpecificConsent"
                Value = "True"
            }
        )
    }
    Update-MgBetaDirectorySetting -DirectorySettingId $settings.Id -BodyParameter $params
    

다음 단계