テスト JavaScript API の実行
テストは、重大な影響をもたらすテストに対応した、厳正なオンライン評価を提供するブラウザー ベースの UWP アプリです。これにより、教育者はセキュリティ保護されたテスト環境を提供する方法ではなく、コンテンツの評価に集中することができます。 これを実現するために、任意の Web アプリケーションが利用できる JavaScript API を使用します。 テスト API は、重要性の高い一般的なコア テスト用の SBAC ブラウザー API 標準をサポートします。
アプリ自体の詳細については、「テスト アプリのテクニカル リファレンス」を参照してください。 トラブルシューティングのヘルプについては、「イベント ビューアーを使用した Microsoft テストのトラブルシューティング」を参照してください。
リファレンス ドキュメント
テスト API は次の名前空間に存在します。 すべての API はグローバル SecureBrowser
オブジェクトに依存します。
名前空間 | 説明 |
---|---|
セキュリティ名前空間 | テスト用にデバイスをロックダウンし、テスト環境を使用できる API が含まれています。 |
セキュリティ名前空間
セキュリティ名前空間を使用すると、デバイスのロックダウン、ユーザー プロセスとシステム プロセスの一覧の確認、MAC および IP アドレスの取得、キャッシュされている Web リソースのクリアを行うことができます。
メソッド | 説明 |
---|---|
ロックダウン | テスト用にデバイスをロックダウンします。 |
isEnvironmentSecure | ロックダウン コンテキストが引き続きデバイスに適用されるかどうか判断します。 |
getDeviceInfo | テスト アプリケーションが稼働しているプラットフォームの詳細を取得します。 |
examineProcessList | 稼働中のユーザー プロセスとシステム プロセスの一覧を取得します。 |
閉じる | ブラウザーを閉じ、デバイスのロックを解除します。 |
getPermissiveMode | 制限解除モードがオンかオフかどうか確認します。 |
setPermissiveMode | 制限解除モードのオンとオフを切り替えます。 |
emptyClipBoard | システム クリップボードをクリアします。 |
getMACAddress | デバイスの MAC アドレスの一覧を取得します。 |
getStartTime | テスト アプリが起動した時刻を取得します。 |
getCapability | 機能が有効か無効か確認します。 |
setCapability | 指定した機能を有効化または無効化します。 |
isRemoteSession | 現在のセッションがリモートでログインしているかどうか確認します。 |
isVMSession | 現在のセッションが仮想マシンで稼働しているかどうか確認します。 |
ロックダウン
デバイスをロックダウンします。 デバイスのロックを解除するためにも使用されます。 テスト Web アプリケーションは、学生にテストの開始を許可する前にこの呼び出しを実施します。 実装担当者は、テスト環境をセキュリティで保護するために必要なアクションを実行する必要があります。 環境をセキュリティで保護するための手順はデバイスごとに異なり、たとえば、画面キャプチャの無効化、セキュア モードでのボイス チャットの無効化、システム クリップボードのクリア、キオスク モードへの移行、OSX 10.7 以降のデバイスでの Spaces の無効化などの側面が含まれます。テスト アプリケーションを使用すると、評価が開始する前にロックダウンを有効化でき、学生が評価を完了し、セキュリティで保護されたテストから外れると、ロックダウンを無効化できます。
構文
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);
Parameters
enable
- true は、ロック画面上でテスト アプリを実行し、このドキュメントで説明されているポリシーを適用します。 false を設定すると、アプリがロックダウンされていない場合を除いて、ロック画面の上でテストの実行を停止しテストを閉じます。その場合、影響は発生しません。onSuccess
- [オプション] ロックダウンが正常に有効または無効にされた後で呼び出す関数です。 これはFunction(Boolean currentlockdownstate)
の形式である必要があります。onError
- [オプション] ロックダウン操作に失敗した場合に呼び出す関数です。 これはFunction(Boolean currentlockdownstate)
の形式である必要があります。
要件
Windows 10 のバージョン 1709 以降
isEnvironmentSecure
ロックダウン コンテキストが引き続きデバイスに適用されるかどうか判断します。 学生がテストを開始できるようになる前と、テスト実施中に定期的に、テスト Web アプリケーションはこれを呼び出します。
構文
void SecureBrowser.security.isEnvironmentSecure(Function callback);
Parameters
callback
- この関数が完了したときに呼び出す関数です。 これはFunction(String state)
の形式である必要があり、state
は 2 つのフィールドを含む JSON 文字列です。 1 つ目のフィールドはsecure
で、セキュリティで保護されたテスト環境を有効にするために必要なすべてのロックが有効化され (または機能が無効化され)、アプリがロックダウン モードになってからこれらのいずれも侵害されていない場合にのみtrue
を表示します。 もう 1 つのフィールドのmessageKey
には、ベンダー固有のその他の詳細または情報が含まれます。 ここでの目的は、ベンダーがブール値のsecure
フラグを拡張する追加情報を配置できるようにすることです。
{
'secure' : "true/false",
'messageKey' : "some message"
}
要件
Windows 10、バージョン 1709 以降
getDeviceInfo
テスト アプリケーションが稼働しているプラットフォームの詳細を取得します。 これを使用すると、ユーザー エージェントから識別可能な情報を拡張できます。
構文
void SecureBrowser.security.getDeviceInfo(Function callback);
Parameters
callback
- この関数が完了したときに呼び出す関数です。 これはFunction(String infoObj)
の形式である必要があり、infoObj
は複数のフィールドを含む JSON 文字列です。 次のフィールドをサポートする必要があります。os
OS の種類を表します (例: Windows、macOS、Linux、iOS、Android)。name
存在する場合、OS リリースの名前を表します (例: シエラ、Ubuntu)。version
OS バージョンを表します (例: 10.1、10 Pro)。brand
セキュリティで保護されたブラウザーのブランドを表します (例: OAKS、CA、SmarterApp)。model
モバイル デバイスのデバイス モデルのみを表します。デスクトップ ブラウザーに対しては null または未使用です。
要件
Windows 10、バージョン 1709 以降
examineProcessList
ユーザーが所有するクライアント コンピューターで稼働しているすべてのプロセスの一覧を取得します。 テスト アプリケーションはこれを呼び出して一覧を調べ、テスト サイクル中に拒否リストと見なされたプロセスの一覧と比較します。 この呼び出しは、評価の開始時と、学生が評価を受けている間に定期的に呼び出す必要があります。 拒否リストのプロセスが検出された場合は、テストの整合性を維持するために評価を停止する必要があります。
構文
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);
Parameters
denylistedProcessList
- テスト アプリケーションが拒否リストに追加した評価の一覧。
callback
- アクティブなプロセスが見つかった後で呼び出す関数です。 これはFunction(String foundDenylistedProcesses)
の形式である必要があり、foundDenylistedProcesses
は"['process1.exe','process2.exe','processEtc.exe']"
の形式になります。 拒否リストのプロセスが見つからなかった場合は空になります。 null の場合は、元の関数呼び出しでエラーが発生したことを示します。
備考 この一覧にはシステム プロセスは含まれません。
要件
Windows 10、バージョン 1709 以降
閉じる
ブラウザーを閉じ、デバイスのロックを解除します。 ユーザーがブラウザーを終了することを選択した場合、テスト アプリケーションはこれを呼び出す必要があります。
構文
void SecureBrowser.security.close(restart);
Parameters
restart
- このパラメーターは無視されますが、指定する必要があります。
備考 Windows 10 バージョン 1607 では、デバイスを最初にロックダウンする必要があります。 以降のバージョンでは、デバイスがロックダウンされているかどうかに関係なくこのメソッドはブラウザーを閉じます。
要件
Windows 10、バージョン 1709 以降
getPermissiveMode
テスト Web アプリケーションはこれを呼び出して、制限解除モードがオンかオフか判断する必要があります。 制限解除モードでは、セキュリティで保護されたブラウザーで支援技術を提供できるように、ブラウザーは厳格なセキュリティ フックの一部を緩和する必要があります。 たとえば、他のアプリケーション UI がブラウザー上に表示されるのを積極的に防ぐブラウザーの場合、制限解除モードではこの状況を緩和したい場合があります。
構文
void SecureBrowser.security.getPermissiveMode(Function callback)
Parameters
callback
- この呼び出しが完了したときに呼び出す関数です。 これはFunction(Boolean permissiveMode)
の形式である必要があり、permissiveMode
はブラウザーが現在制限解除モードであるかどうかを示します。 未定義または null の場合、get 操作でエラーが発生しています。
要件
Windows 10、バージョン 1709 以降
setPermissiveMode
テスト Web アプリケーションはこれを呼び出して、制限解除モードのオンとオフを切り替える必要があります。 制限解除モードでは、セキュリティで保護されたブラウザーで支援技術を提供できるように、ブラウザーは厳格なセキュリティ フックの一部を緩和する必要があります。 たとえば、他のアプリケーション UI がブラウザー上に表示されるのを積極的に防ぐブラウザーの場合、制限解除モードではこの状況を緩和したい場合があります。
構文
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)
Parameters
enable
- 目的の制限解除モードの状態を示すための Boolean 値。callback
- この呼び出しが完了したときに呼び出す関数です。 これはFunction(Boolean permissiveMode)
の形式である必要があり、permissiveMode
はブラウザーが現在制限解除モードであるかどうかを示します。 未定義または null の場合、set 操作でエラーが発生しています。
要件
Windows 10、バージョン 1709 以降
emptyClipBoard
システム クリップボードをクリアします。 テスト アプリケーションはこれを呼び出して、システム クリップボードに格納できるデータを強制的にクリアする必要があります。 lockDown 関数もこの操作を実行します。
構文
void SecureBrowser.security.emptyClipBoard();
要件
Windows 10、バージョン 1709 以降
getMACAddress
デバイスの MAC アドレスの一覧を取得します。 テスト アプリケーションはこれを呼び出して、診断を支援する必要があります。
構文
void SecureBrowser.security.getMACAddress(Function callback);
Parameters
callback
- この呼び出しが完了したときに呼び出す関数です。 これはFunction(String addressArray)
の形式である必要があり、addressArray
は"['00:11:22:33:44:55','etc']"
の形式になります。
注釈
ファイアウォール、NAT、プロキシは学校で一般的に使用されているため、ソース IP アドレスに基づいてテスト サーバー内のエンド ユーザー マシンを区別することは困難です。 MAC アドレスを使用すると、アプリは診断目的で共通のファイアウォールの背後にあるエンド クライアント マシンを区別できます。
要件
Windows 10、バージョン 1709 以降
getStartTime
テスト アプリが起動した時刻を取得します。
構文
DateTime SecureBrowser.security.getStartTime();
Return
テスト アプリが起動した時刻を示す DateTime オブジェクト。
要件
Windows 10、バージョン 1709 以降
getCapability
機能が有効か無効か確認します。
構文
Object SecureBrowser.security.getCapability(String feature)
Parameters
feature
- 照会する機能を特定する文字列。 有効な機能文字列は、"screenMonitoring"、"printing"、"textSuggestions" です (大文字と小文字は区別されません)。
戻り値
この関数は、JavaScript オブジェクトまたは {<feature>:true|false}
の形式のリテラルを返します。 参照された機能が有効な場合は true、機能が有効化されていない場合や機能文字列が無効な場合は false。
要件 Windows 10、バージョン 1703 以降
setCapability
ブラウザーで特定の機能を有効化または無効化します。
構文
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)
Parameters
feature
- 設定する機能を特定する文字列。 有効な機能文字列は、"screenMonitoring"
、"printing"
、"textSuggestions"
です (大文字と小文字は区別されません)。value
- 機能の目的の設定です。 これは"true"
または"false"
のいずれかである必要があります。onSuccess
- [オプション] Set 操作の後に呼び出す関数は、正常に完了しました。 これはFunction(String jsonValue)
の形式である必要があり、jsonValue は{<feature>:true|false|undefined}
の形式になります。onError
- [オプション] Set 操作に失敗した場合に呼び出す関数です。 これはFunction(String jsonValue)
の形式である必要があり、jsonValue は{<feature>:true|false|undefined}
の形式になります。
注釈
対象となる機能がブラウザーにとって不明な場合、この関数はコールバック関数に undefined
の値を渡します。
要件 Windows 10、バージョン 1703 以降
isRemoteSession
現在のセッションがリモートでログインしているかどうか確認します。
構文
Boolean SecureBrowser.security.isRemoteSession();
戻り値
現在のセッションがリモートの場合は true、そうでない場合は false。
要件
Windows 10 のバージョン 1709 以降
isVMSession
現在のセッションが仮想マシンで稼働しているかどうか確認します。
構文
Boolean SecureBrowser.security.isVMSession();
戻り値
現在のセッションが仮想マシンで稼働している場合は true、そうでない場合は false。
注釈
この API チェックは、適切な API を実装する特定のハイパーバイザーで稼働している VM セッションのみを検出できます
要件
Windows 10 のバージョン 1709 以降