Take a Test JavaScript API
本文內容
Take a Test 是以瀏覽器為基礎的 UWP 應用程式,可轉譯鎖定的線上評估以進行高風險測試,讓授課者專注於評估內容,而不是如何提供安全的測試環境。 為了達成此目的,它會使用任何 Web 應用程式可以使用的 JavaScript API。 Take-a-test API 支援 SBAC 瀏覽器 API 標準 ,以進行利害關係常見的核心測試。
有關應用程式本身的更多資訊,請參閱 Take a Test 應用程式技術參考 。 如需疑難解答說明,請參閱使用事件檢視器對 Microsoft Take a Test 進行疑難解答 。
Take a Test API 存在於下列命名空間中。 請注意,所有 API 都依賴全域 SecureBrowser
物件。
展開資料表
命名空間
描述
安全性命名空間
包含可讓您鎖定裝置以進行測試並強制執行測試環境的 API。
安全性命名空間可讓您鎖定裝置、檢查使用者和系統程序清單、取得 MAC 和 IP 位址,以及清除快取的 Web 資源。
展開資料表
鎖定裝置。 也用來解除鎖定裝置。 測試 Web 應用程式會在允許學生開始測試之前叫用此呼叫。 實作者必須採取任何必要動作來保護測試環境。 保護環境所採取的步驟是特定於裝置的,例如,包括停用螢幕擷取、在安全模式下停用語音聊天、清除系統剪貼簿、進入資訊亭模式、停用 OSX 10.7+ 裝置中的空間等方面。測試應用程式將在評估開始之前啟用鎖定,並在學生完成評估並退出安全性測試時停用鎖定。
語法
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);
參數
enable
- true 會在鎖定畫面上方執行 Take-a-Test 應用程式並套用本文件 中討論的策略。 false 會停止在鎖定畫面上方執行 Take-a-Test,並關閉它,除非應用程式未鎖定,否則不會有任何作用。
onSuccess
- [選擇性] 成功啟用或停用鎖定後所要呼叫的函式。 其形式必須為 Function(Boolean currentlockdownstate)
。
onError
- [選擇性] 如果鎖定作業失敗,要呼叫的函式。 其形式必須為 Function(Boolean currentlockdownstate)
。
需求
Windows 10,版本 1709 或更新版本
判斷鎖定內容是否仍套用至裝置。 測試 Web 應用程式會在允許學生開始測試之前叫用此應用程式,並在測試內定期啟動測試。
語法
void SecureBrowser.security.isEnvironmentSecure(Function callback);
參數
callback
- 當此函式完成時要呼叫的函式。 它必須是形式 Function(String state)
,其中 state
是包含兩個欄位的 JSON 字串。 第一個是 secure
欄位,僅當已啟用 (或停用函式) 所有必要的鎖定以啟用安全性測試環境時,該欄位才會顯示 true
,並且自應用程式進入鎖定模式以來,這些鎖定均未受到損害。 另一個欄位 messageKey
,包含廠商特定的其他詳細資料或資訊。 此處的目的是允許廠商新增額外的資訊來增強布林 secure
旗標:
{
'secure' : "true/false",
'messageKey' : "some message"
}
需求
Windows 10 版本 1709 或更新版本
取得測試應用程式執行所在的平排詳細資料。 這是用來增強使用者代理程式可辨識的任何資訊。
語法
void SecureBrowser.security.getDeviceInfo(Function callback);
參數
callback
- 當此函式完成時要呼叫的函式。 它必須是形式 Function(String infoObj)
,其中 infoObj
是包含數個欄位的 JSON 字串。 必須支援下列欄位:
os
表示 OS 類型 (例如:Windows、macOS、Linux、iOS、Android 等)
name
表示 OS 版本名稱,如果有的話 (例如:Sierra、Ubuntu)。
version
表示 OS 版本 (例如:10.1、10 專業版等)
brand
表示安全的瀏覽器商標 (例如:OAKS、CA、SmarterApp 等)
model
僅表示行動裝置的裝置型號;桌面瀏覽器的 null/未使用。
需求
Windows 10 版本 1709 或更新版本
取得使用者擁有之用戶端電腦上執行的所有程序清單。 測試應用程式會叫用此項目來檢查清單,並將其與測試週期期間視為拒絕列出的程序清單進行比較。 此呼叫應在評估開始時叫用,並在學生接受評估時定期叫用。 如果偵測到拒絕列出的程序,應該停止評估以保留測試完整性。
語法
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);
參數
denylistedProcessList
- 測試應用程式已列出拒絕列出的程序清單。
callback
- 找到使用中程序之後要叫用的函式。 其形式必須是:Function(String foundDenylistedProcesses)
,其中 foundDenylistedProcesses
形式為:"['process1.exe','process2.exe','processEtc.exe']"
。 如果找不到任何拒絕列出的程序,則會是空的。 如果為 Null,這表示原始函式呼叫中發生錯誤。
備註: 清單不包含系統程序。
需求
Windows 10 版本 1709 或更新版本
關閉瀏覽器並解除鎖定裝置。 當使用者選擇結束瀏覽器時,測試應用程式應該叫用此函式。
語法
void SecureBrowser.security.close(restart);
參數
備註: 在 Windows 10 版本 1607 中,裝置一開始必須鎖定。 在更新版本中,不論裝置是否已鎖定,此方法都會關閉瀏覽器。
需求
Windows 10 版本 1709 或更新版本
測試 Web 應用程式應該叫用此函式,以判斷寬容模式是否開啟或關閉。 在寬容模式中,瀏覽器應該放寬其一些嚴格的安全性攔截,以允許輔助技術與安全瀏覽器搭配使用。 例如,當處於寬容模式時,主動防止其他應用程式 UI 呈現的瀏覽器可能會想要放寬此情況。
語法
void SecureBrowser.security.getPermissiveMode(Function callback)
參數
callback
- 此呼叫完成時要叫用的函式。 其形式必須為:Function(Boolean permissiveMode)
,其中 permissiveMode
指出瀏覽器目前是否處於寬容模式。 如果它未定義或 Null,則取得作業中發生錯誤。
需求
Windows 10 版本 1709 或更新版本
測試 Web 應用程式應該叫用此函式,以開啟或關閉寬容模式。 在寬容模式中,瀏覽器應該放寬其一些嚴格的安全性攔截,以允許輔助技術與安全瀏覽器搭配使用。 例如,當處於寬容模式時,主動防止其他應用程式 UI 呈現的瀏覽器可能會想要放寬此情況。
語法
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)
參數
enable
- 指示預期的寬容模式狀態的布林值。
callback
- 此呼叫完成時要叫用的函式。 其形式必須為:Function(Boolean permissiveMode)
,其中 permissiveMode
指出瀏覽器目前是否處於寬容模式。 如果它未定義或 Null,則設定作業中發生錯誤。
需求
Windows 10 版本 1709 或更新版本
清除系統剪貼簿。 測試應用程式應該叫用此函式,以強制清除任何可能儲存在系統剪貼簿中的資料。 lockDown 函式也會執行此作業。
語法
void SecureBrowser.security.emptyClipBoard();
需求
Windows 10 版本 1709 或更新版本
取得裝置的 MAC 位址清單。 測試應用程式應該叫用此函式來協助診斷。
語法
void SecureBrowser.security.getMACAddress(Function callback);
參數
callback
- 此呼叫完成時要叫用的函式。 其形式必須是:Function(String addressArray)
,其中 addressArray
形式為:"['00:11:22:33:44:55','etc']"
。
備註
很難依賴來源 IP 位址來區分測試伺服器內的終端使用者電腦,因為防火牆/NAT/Proxy 通常會在學校使用。 MAC 位址可讓應用程式區分常見防火牆後方的終端用戶端電腦,以進行診斷。
需求
Windows 10 版本 1709 或更新版本
取得測試應用程式啟動的時間。
語法
DateTime SecureBrowser.security.getStartTime();
傳回
DateTime 物件能指出測試應用程式啟動的時間。
需求
Windows 10 版本 1709 或更新版本
查詢是否啟用或停用功能。
語法
Object SecureBrowser.security.getCapability(String feature)
參數
feature
- 用來判斷要查詢之功能的字串。 有效的功能字串為「screenMonitoring」、「printing」和「textSuggestions」(不區分大小寫)。
傳回值
此函式會以下列形式傳回 JavaScript 物件或常值:{<feature>:true|false}
。 如果查詢的功能已啟用,則為 true ;如果未啟用該功能或功能字串無效,則為 false 。
需求 Windows 10 版本 1703 或更新版本
啟用或停用瀏覽器上的特定功能。
語法
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)
參數
feature
- 用來判斷要設定之功能的字串。 有效的功能字串為 "screenMonitoring"
、 "printing"
和 "textSuggestions"
(不區分大小寫)。
value
- 功能的預期設定。 它必須是 "true"
或 "false"
。
onSuccess
- [選擇性] 在設定作業成功完成之後要呼叫的函式。 其形式必須是 Function(String jsonValue)
,其其中 jsonValue 的形式為 {<feature>:true|false|undefined}
。
onError
- [選擇性] 如果設定作業失敗,要呼叫的函式。 其形式必須是 Function(String jsonValue)
,其其中 jsonValue 的形式為 {<feature>:true|false|undefined}
。
備註
如果瀏覽器未知目標功能,此函式會將 undefined
的值傳遞至回撥函式。
需求 Windows 10 版本 1703 或更新版本
檢查目前的工作階段是否已從遠端登入。
語法
Boolean SecureBrowser.security.isRemoteSession();
傳回值
如果目前工作階段是遠端,則為 true ,否則為 false 。
需求
Windows 10,版本 1709 或更新版本
檢查目前工作階段是否在虛擬機器內執行。
語法
Boolean SecureBrowser.security.isVMSession();
傳回值
如果目前的工作階段正在虛擬機器中執行,則為 true ,否則為 false 。
備註
此 API 檢查只能偵測在特定 Hypervisor 中執行且實作適當 API 的 VM 工作階段
需求
Windows 10,版本 1709 或更新版本