다음을 통해 공유


JavaScript API 테스트 수행

시험 응시는 중요도가 높은 테스트를 위해 제한된 온라인 평가를 렌더링하는 브라우저 기반 UWP 앱으로, 교육자가 보안 환경을 조성하는 것보다 평가 콘텐츠에 집중할 수 있도록 합니다. 이를 위해 모든 웹 애플리케이션에서 활용할 수 있는 JavaScript API를 사용합니다. 시험 응시 API는 중요한 공통 핵심 테스트를 위한 SBAC 브라우저 API 표준을 지원합니다.

앱 자체에 대한 자세한 내용은 시험 응시 앱 기술 참조 를 참조하세요. 문제 해결 도움말은 이벤트 뷰어를 사용하여 Microsoft 시험 응시 문제 해결을 참조하세요.

참조 설명서

시험 응시 API는 다음 네임스페이스에 있습니다. 모든 API는 전역 SecureBrowser 개체에 따라 달라집니다.

네임스페이스 Description
보안 네임스페이스 테스트를 위해 디바이스를 잠그고 테스트 환경을 적용할 수 있는 API가 포함되어 있습니다.

보안 네임스페이스

보안 네임스페이스를 사용하면 디바이스를 잠그고, 사용자 및 시스템 프로세스 목록을 확인하고, MAC 및 IP 주소를 가져오고, 캐시된 웹 리소스를 지울 수 있습니다.

메서드 Description
잠금 테스트를 위해 디바이스를 잠깁니다.
isEnvironmentSecure 잠금 컨텍스트가 디바이스에 계속 적용되는지 여부를 확인합니다.
getDeviceInfo 테스트 애플리케이션이 실행되는 플랫폼에 대한 세부 정보를 가져옵니다.
프로세스 목록 검사 실행 중인 사용자 및 시스템 프로세스의 목록을 가져옵니다.
닫다 브라우저를 닫고 디바이스의 잠금을 해제합니다.
getPermissiveMode 허용 모드가 켜지거나 꺼져 있는지 확인합니다.
setPermissiveMode 허용 모드를 켜거나 끕니다.
클립보드를 비웁니다 시스템 클립보드를 지웁니다.
getMACAddress 디바이스의 MAC 주소 목록을 가져옵니다.
getStartTime 테스트 앱이 시작된 시간을 가져옵니다.
getCapability 기능이 활성화되었는지 비활성화되었는지를 확인합니다.
setCapability 지정된 기능을 사용하거나 사용하지 않도록 설정합니다.
isRemoteSession 현재 세션이 원격으로 로그인되어 있는지 확인합니다.
isVMSession 현재 세션이 가상 머신에서 실행되고 있는지 확인합니다.

잠금

디바이스를 잠깁니다. 디바이스의 잠금을 해제하는 데도 사용됩니다. 테스트 웹 애플리케이션은 학생이 테스트를 시작할 수 있도록 허용하기 전에 이 호출을 호출합니다. 구현자는 테스트 환경을 보호하는 데 필요한 모든 작업을 수행해야 합니다. 환경을 보호하기 위해 수행되는 단계는 디바이스에 따라 다릅니다. 예를 들어, 보안 모드에서 화면 캡처를 사용하지 않도록 설정, 음성 채팅을 사용하지 않도록 설정, 시스템 클립보드 지우기, 키오스크 모드로 전환, OSX 10.7 이상의 디바이스에서 공간 사용 안 함 등의 측면을 포함합니다. 테스트 애플리케이션은 평가가 시작되기 전에 잠금을 사용하도록 설정하고 학생이 평가를 완료하고 보안 테스트를 벗어나면 잠금을 사용하지 않도록 설정합니다.

Syntax
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);

매개 변수

  • enable - true 이면 잠금 화면 위에서 시험 응시 앱을 실행하고 시험 응시 앱 기술 참조에 설명된 정책을 적용합니다. false 는 잠금 화면 위에서 시험 응시 실행을 중지하고 앱이 잠기지 않는 한 닫습니다. 이 경우 효과가 없습니다.
  • onSuccess - [선택 사항] 잠금을 성공적으로 사용하거나 사용하지 않도록 설정한 후 호출할 함수입니다. 형식 Function(Boolean currentlockdownstate)이어야 합니다.
  • onError - [선택 사항] 잠금 작업이 실패한 경우 호출할 함수입니다. 형식 Function(Boolean currentlockdownstate)이어야 합니다.

요구 사항
Windows 10 버전 1709 이상


isEnvironmentSecure

잠금 컨텍스트가 디바이스에 계속 적용되는지 여부를 확인합니다. 테스트 웹 애플리케이션은 학생이 테스트를 시작할 수 있도록 하기 전에 이를 호출하고 테스트 내에서 주기적으로 호출합니다.

Syntax
void SecureBrowser.security.isEnvironmentSecure(Function callback);

매개 변수

  • callback - 이 함수가 완료되면 호출할 함수입니다. 두 개의 필드가 Function(String state) 포함된 JSON 문자열인 형식 state 이어야 합니다. 첫 번째 secure 필드는 보안 테스트 환경을 활성화하기 위해 필요한 모든 잠금 기능이 활성화되었거나 비활성화되어야 할 기능들이 비활성화된 경우에만 true 보여지며, 앱이 잠금 모드에 들어간 이후 이러한 조건들이 손상되지 않은 경우에만 표시됩니다. 다른 필드에 messageKey는 공급업체별 기타 세부 정보 또는 정보가 포함됩니다. 여기서 의도는 공급업체가 부울 secure 플래그를 보강하는 추가 정보를 넣을 수 있도록 하는 것입니다.
{
    'secure' : "true/false",
    'messageKey' : "some message"
}

요구 사항
Windows 10, 버전 1709 이상


getDeviceInfo (기기 정보 가져오기)

테스트 애플리케이션이 실행되는 플랫폼에 대한 세부 정보를 가져옵니다. 사용자 에이전트에서 식별할 수 있는 모든 정보를 보강하는 데 사용됩니다.

Syntax
void SecureBrowser.security.getDeviceInfo(Function callback);

매개 변수

  • callback - 이 함수가 완료되면 호출할 함수입니다. 여러 필드를 포함하는 JSON 문자열인 형식 Function(String infoObj)infoObj 이어야 합니다. 지원되는 필드는 다음과 같습니다.
    • os 는 OS 유형을 나타냅니다(예: Windows, macOS, Linux, iOS, Android 등).
    • name 는 OS 릴리스 이름(예: Sierra, Ubuntu)이 있는 경우를 나타냅니다.
    • version 는 OS 버전을 나타냅니다(예: 10.1, 10 Pro 등).
    • brand 은 보안 브라우저 브랜딩(예: OAKS, CA, SmarterApp 등)을 나타냅니다.
    • model 는 모바일 디바이스에 대해서만 디바이스 모델을 나타냅니다. 데스크톱 브라우저에 null/사용되지 않습니다.

요구 사항
Windows 10, 버전 1709 이상


examineProcessList

사용자가 소유한 클라이언트 컴퓨터에서 실행되는 모든 프로세스의 목록을 가져옵니다. 테스트 애플리케이션은 이를 호출하여 목록을 검사하고 테스트 주기 동안 거부 목록으로 간주되는 프로세스 목록과 비교합니다. 이 호출은 평가 시작 시와 학생이 평가를 수행하는 동안 주기적으로 호출되어야 합니다. 거부 나열된 프로세스가 감지되면 테스트 무결성을 유지하기 위해 평가를 중지해야 합니다.

Syntax
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);

매개 변수

  • denylistedProcessList - 테스트 애플리케이션이 거부 목록에 나열된 프로세스 목록입니다.
    callback - 활성 프로세스가 발견되면 호출할 함수입니다. 이 형식은 Function(String foundDenylistedProcesses)이어야 하고, 이때 foundDenylistedProcesses"['process1.exe','process2.exe','processEtc.exe']" 형식이어야 합니다. 거부 목록에 있는 프로세스가 없으면 비어 있게 됩니다. null이면 원래 함수 호출에서 오류가 발생했음을 나타냅니다.

발언 목록에는 시스템 프로세스가 포함되지 않습니다.

요구 사항
Windows 10, 버전 1709 이상


close

브라우저를 닫고 디바이스의 잠금을 해제합니다. 테스트 애플리케이션은 사용자가 브라우저를 종료하도록 선택할 때 이를 호출해야 합니다.

Syntax
void SecureBrowser.security.close(restart);

매개 변수

  • restart - 이 매개 변수는 무시되지만 제공해야 합니다.

발언 Windows 10 버전 1607에서는 디바이스를 처음에 잠가야 합니다. 이후 버전에서 이 메서드는 디바이스가 잠겨 있는지 여부에 관계없이 브라우저를 닫습니다.

요구 사항
Windows 10, 버전 1709 이상


getPermissiveMode (관대한 모드 가져오기 함수)

테스트 웹 애플리케이션은 허용 모드가 켜지거나 꺼져 있는지 확인하기 위해 이를 호출해야 합니다. 허용 모드에서 브라우저는 보조 기술이 보안 브라우저에서 작동할 수 있도록 엄격한 보안 후크의 일부를 완화할 것으로 예상됩니다. 예를 들어 다른 애플리케이션 UI가 그 위에 표시되지 않도록 적극적으로 방지하는 브라우저는 허용 모드에서 이 작업을 완화할 수 있습니다.

Syntax
void SecureBrowser.security.getPermissiveMode(Function callback)

매개 변수

  • callback - 이 호출이 완료되면 호출할 함수입니다. 브라우저가 현재 허용 모드인지 여부를 나타내는 형식 Function(Boolean permissiveMode)permissiveMode 이어야 합니다. 정의되지 않은 경우 또는 null이면 가져오기 작업에서 오류가 발생했습니다.

요구 사항
Windows 10, 버전 1709 이상


setPermissiveMode

테스트 웹 애플리케이션은 허용 모드를 켜거나 끄기 위해 이를 호출해야 합니다. 허용 모드에서 브라우저는 보조 기술이 보안 브라우저에서 작동할 수 있도록 엄격한 보안 후크의 일부를 완화할 것으로 예상됩니다. 예를 들어 다른 애플리케이션 UI가 그 위에 표시되지 않도록 적극적으로 방지하는 브라우저는 허용 모드에서 이 작업을 완화할 수 있습니다.

Syntax
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)

매개 변수

  • enable - 부울 값으로, 의도한 허용 모드 상태를 나타냅니다.
  • callback - 이 호출이 완료되면 호출할 함수입니다. 브라우저가 현재 허용 모드인지 여부를 나타내는 형식 Function(Boolean permissiveMode)permissiveMode 이어야 합니다. 정의되지 않거나 null인 경우 set 작업에서 오류가 발생했습니다.

요구 사항
Windows 10, 버전 1709 이상


클립보드 비우기

시스템 클립보드를 지웁니다. 테스트 애플리케이션은 시스템 클립보드에 저장될 수 있는 모든 데이터를 강제로 지우기 위해 이를 호출해야 합니다. lockDown 함수도 이 작업을 수행합니다.

Syntax
void SecureBrowser.security.emptyClipBoard();

요구 사항
Windows 10, 버전 1709 이상


getMACAddress

디바이스의 MAC 주소 목록을 가져옵니다. 테스트 애플리케이션은 진단을 지원하기 위해 이를 호출해야 합니다.

Syntax
void SecureBrowser.security.getMACAddress(Function callback);

매개 변수

  • callback - 이 호출이 완료되면 호출할 함수입니다. 이 형식은 Function(String addressArray)이어야 하고, 이때 addressArray"['00:11:22:33:44:55','etc']" 형식이어야 합니다.

Remarks
방화벽/NAT/프록시가 학교에서 일반적으로 사용되기 때문에 원본 IP 주소를 사용하여 테스트 서버 내의 최종 사용자 컴퓨터를 구분하기가 어렵습니다. MAC 주소를 사용하면 앱이 진단 목적으로 일반 방화벽 뒤에 있는 최종 클라이언트 컴퓨터를 구분할 수 있습니다.

요구 사항
Windows 10, 버전 1709 이상


getStartTime

테스트 앱이 시작된 시간을 가져옵니다.

Syntax
DateTime SecureBrowser.security.getStartTime();

돌아오다
테스트 앱이 시작된 시간을 나타내는 DateTime 개체입니다.

요구 사항
Windows 10, 버전 1709 이상


getCapability

기능이 활성화되었는지 비활성화되었는지를 확인합니다.

Syntax
Object SecureBrowser.security.getCapability(String feature)

매개 변수

feature - 쿼리할 기능을 결정하는 문자열입니다. 유효한 기능 문자열은 "screenMonitoring", "printing" 및 "textSuggestions"(대/소문자를 구분하지 않습니다)입니다.

반환 값
이 함수는 다음과 같은 형식 {<feature>:true|false}의 JavaScript 개체 또는 리터럴을 반환합니다. 쿼리된 기능을 사용하도록 설정하면 true이고, 기능이 활성화되지 않았거나 기능 문자열이 유효하지 않은 경우 false입니다.

요구 사항 Windows 10 버전 1703 이상


setCapability

브라우저에서 특정 기능을 사용하거나 사용하지 않도록 설정합니다.

Syntax
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)

매개 변수

  • feature - 설정할 기능을 결정하는 문자열입니다. 유효한 기능 문자열은 "screenMonitoring", "printing""textSuggestions" (대/소문자를 구분하지 않습니다)입니다.
  • value - 기능에 대한 의도된 설정입니다. 반드시 "true" 또는 "false"이어야 합니다.
  • onSuccess - [선택 사항] 집합 작업이 성공적으로 완료된 후 호출할 함수입니다. Function(String jsonValue)가 다음과 같은 형식 {<feature>:true|false|undefined} 이어야 합니다.
  • onError - [선택 사항] set 작업이 실패한 경우 호출할 함수입니다. Function(String jsonValue)가 다음과 같은 형식 {<feature>:true|false|undefined} 이어야 합니다.

Remarks
대상 기능을 브라우저에 알 수 없는 경우 이 함수는 콜백 함수에 값을 undefined 전달합니다.

요구 사항 Windows 10 버전 1703 이상


isRemoteSession

현재 세션이 원격으로 로그인되어 있는지 확인합니다.

Syntax
Boolean SecureBrowser.security.isRemoteSession();

반환 값
현재 세션이 원격이면 true이고, 그렇지 않으면 false입니다.

요구 사항
Windows 10 버전 1709 이상


isVMSession

현재 세션이 가상 머신 내에서 실행되고 있는지 확인합니다.

Syntax
Boolean SecureBrowser.security.isVMSession();

반환 값
현재 세션이 가상 머신에서 실행되고 있으면 true이고, 그렇지 않으면 false입니다.

Remarks
이 API 검사는 적절한 API를 구현하는 특정 하이퍼바이저에서 실행되는 VM 세션만 검색할 수 있습니다.

요구 사항
Windows 10 버전 1709 이상