API JavaScript Examen
Examen est une application UWP basée sur un navigateur qui affiche des évaluations en ligne verrouillées pour les tests à forts enjeux, ce qui permet aux enseignants de se concentrer sur le contenu d’évaluation plutôt que sur la façon de fournir un environnement de test sécurisé. Pour ce faire, il utilise une API JavaScript que toute application web peut utiliser. L’API Examen prend en charge la norme de l’API de navigateur SBAC pour les tests à forts enjeux courants.
Pour plus d’informations sur l’application elle-même, consultez Référence technique de l’application Examen. Pour obtenir de l’aide sur la résolution des problèmes, consultez Résoudre les problèmes liés à Microsoft Examen avec l’observateur d’événements.
Documentation de référence
Les API Examen existent dans les espaces de noms suivants. Notez que toutes les API dépendent d’un objet SecureBrowser
global.
Espace de noms | Description |
---|---|
espace de noms de sécurité | Contient des API qui vous permettent de verrouiller l’appareil à des fins de test et d’appliquer un environnement de test. |
Espace de noms de sécurité
L’espace de noms de sécurité vous permet de verrouiller l’appareil, de vérifier la liste des processus utilisateur et système, d’obtenir des adresses MAC et IP, et d’effacer les ressources web mises en cache.
Méthode | Description |
---|---|
lockDown | Verrouille l’appareil à des fins de test. |
isEnvironmentSecure | Détermine si le contexte de verrouillage est toujours appliqué à l’appareil. |
getDeviceInfo | Obtient des détails sur la plateforme sur laquelle l’application de test est en cours d’exécution. |
examineProcessList | Obtient la liste des processus utilisateur et système en cours d’exécution. |
close | Ferme le navigateur et déverrouille l’appareil. |
getPermissiveMode | Vérifie si le mode permissif est activé ou désactivé. |
setPermissiveMode | Active ou désactive le mode permissif. |
emptyClipBoard | Efface le Presse-papiers système. |
getMACAddress | Obtient la liste des adresses MAC pour l’appareil. |
getStartTime | Obtient l’heure à laquelle l’application de test a été démarrée. |
getCapability | Demande si une fonctionnalité est activée ou désactivée. |
setCapability | Active ou désactive la fonctionnalité spécifiée. |
isRemoteSession | Vérifie si la session active est connectée à distance. |
isVMSession | Vérifie si la session active s’exécute dans une machine virtuelle. |
lockDown
Verrouille l’appareil. Également utilisé pour déverrouiller l’appareil. L’application web de test invoque cet appel avant de permettre aux étudiants de commencer le test. Le responsable de l’implémentation est tenu de prendre les mesures nécessaires pour sécuriser l’environnement de test. Les mesures prises pour sécuriser l’environnement sont spécifiques à l’appareil et, par exemple, incluent des aspects tels que la désactivation des captures d’écran, la désactivation de la conversation vocale en mode sécurisé, le nettoyage du Presse-papiers système, l’entrée en mode plein écran, la désactivation de Spaces sur les appareils OSX 10.7+, etc. L’application de test active le verrouillage avant le début d’une évaluation et désactive le verrouillage lorsque l’étudiant a terminé l’évaluation et est hors du test sécurisé.
Syntaxe
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);
Paramètres
enable
- true pour exécuter l’application Examen au-dessus de l’écran de verrouillage et appliquer les stratégies décrites dans ce document. false arrête l’exécution de l’application Examen au-dessus de l’écran de verrouillage et la ferme, sauf si l’application n’est pas verrouillée, auquel cas il est sans effet.onSuccess
: [facultatif] la fonction à appeler une fois le verrouillage activé ou désactivé. Elle doit être au formatFunction(Boolean currentlockdownstate)
.onError
: [facultatif] la fonction à appeler si l’opération de verrouillage a échoué. Elle doit être au formatFunction(Boolean currentlockdownstate)
.
Exigences
Windows 10, version 1709 ou ultérieure
isEnvironmentSecure
Détermine si le contexte de verrouillage est toujours appliqué à l’appareil. L’application web de test appelle cette fonction avant d’autoriser les étudiants à commencer le test et périodiquement lorsqu’ils sont en cours de test.
Syntaxe
void SecureBrowser.security.isEnvironmentSecure(Function callback);
Paramètres
callback
: la fonction à appeler une fois cette fonction terminée. Elle doit être au formatFunction(String state)
oùstate
est une chaîne JSON contenant deux champs. Le premier est le champsecure
, qui affichetrue
uniquement si tous les verrous nécessaires ont été activés (ou les fonctionnalités désactivées) pour activer un environnement de test sécurisé, et qu’aucun de ces éléments n’a été compromis depuis que l’application est entrée dans le mode de verrouillage. L’autre champ,messageKey
, inclut d’autres détails ou informations spécifiques au fournisseur. L’intention ici est de permettre aux fournisseurs de placer des informations supplémentaires qui augmentent l’indicateursecure
booléen :
{
'secure' : "true/false",
'messageKey' : "some message"
}
Exigences
Windows 10, version 1709 ou ultérieure
getDeviceInfo
Obtient des détails sur la plateforme sur laquelle l’application de test est en cours d’exécution. Cela permet de compléter les informations qui ont été discernées à partir de l’agent utilisateur.
Syntaxe
void SecureBrowser.security.getDeviceInfo(Function callback);
Paramètres
callback
: la fonction à appeler une fois cette fonction terminée. Elle doit être au formatFunction(String infoObj)
oùinfoObj
est une chaîne JSON contenant plusieurs champs. Les champs suivants doivent être pris en charge :os
représente le type de système d’exploitation (par exemple : Windows, macOS, Linux, iOS, Android, etc.)name
représente le nom de la version du système d’exploitation, le cas échéant (par exemple : Sierra, Ubuntu).version
représente la version du système d’exploitation (par exemple : 10.1, 10 Pro, etc.)brand
représente la personnalisation du navigateur sécurisé (par exemple : OAKS, CA, SmarterApp, etc.)model
représente le modèle d’appareil pour les appareils mobiles uniquement ; Null/non utilisé pour les navigateurs de bureau.
Exigences
Windows 10, version 1709 ou ultérieure
examineProcessList
Obtient la liste de tous les processus en cours d’exécution sur l’ordinateur client appartenant à l’utilisateur. L’application de test appelle cette fonction pour examiner la liste et la comparer à une liste de processus considérés comme exclus pendant le cycle de test. Cette fonction doit être appelée au début d’une évaluation et régulièrement pendant que l’étudiant passe le test. Si un processus exclus est détecté, l’évaluation doit être arrêtée pour préserver l’intégrité des tests.
Syntaxe
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);
Paramètres
denylistedProcessList
: la liste des processus que l’application de test a exclus.
callback
: la fonction à appeler une fois que les processus actifs ont été trouvés. Elle doit être au formatFunction(String foundDenylistedProcesses)
oùfoundDenylistedProcesses
est au format"['process1.exe','process2.exe','processEtc.exe']"
. Elle sera vide si aucun processus exclus n’a été trouvé. Si elle est null, cela indique qu’une erreur s’est produite dans l’appel de fonction d’origine.
Remarques La liste n’inclut pas les processus système.
Exigences
Windows 10, version 1709 ou ultérieure
close
Ferme le navigateur et déverrouille l’appareil. L’application de test doit appeler cette fonction lorsque l’utilisateur choisit de quitter le navigateur.
Syntaxe
void SecureBrowser.security.close(restart);
Paramètres
restart
: ce paramètre est ignoré, mais doit être fourni.
Remarques Dans Windows 10, version 1607, l’appareil doit être verrouillé initialement. Dans les versions ultérieures, cette méthode ferme le navigateur, que l’appareil soit verrouillé ou non.
Exigences
Windows 10, version 1709 ou ultérieure
getPermissiveMode
L’application web de test doit appeler cette fonction pour déterminer si le mode permissif est activé ou désactivé. En mode permissif, un navigateur est censé assouplir certains de ses crochets de sécurité stricts pour permettre à la technologie d’assistance d’utiliser le navigateur sécurisé. Par exemple, les navigateurs qui empêchent agressivement d’autres interfaces utilisateur d’application de se présenter au-dessus d’eux peuvent assouplir cette règle lorsqu'ils sont en mode permissif.
Syntaxe
void SecureBrowser.security.getPermissiveMode(Function callback)
Paramètres
callback
: la fonction à appeler une fois cet appel terminé. Elle doit être au formatFunction(Boolean permissiveMode)
oùpermissiveMode
indique si le navigateur est actuellement en mode permissif. Si elle n’est pas définie ou null, une erreur s’est produite dans l’opération d’obtention.
Exigences
Windows 10, version 1709 ou ultérieure
setPermissiveMode
L’application web de test doit appeler cette fonction pour activer ou désactiver le mode permissif. En mode permissif, un navigateur est censé assouplir certains de ses crochets de sécurité stricts pour permettre à la technologie d’assistance d’utiliser le navigateur sécurisé. Par exemple, les navigateurs qui empêchent agressivement d’autres interfaces utilisateur d’application de se présenter au-dessus d’eux peuvent assouplir cette règle lorsqu'ils sont en mode permissif.
Syntaxe
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)
Paramètres
enable
: la valeur booléenne indiquant l’état du mode permissif prévu.callback
: la fonction à appeler une fois cet appel terminé. Elle doit être au formatFunction(Boolean permissiveMode)
oùpermissiveMode
indique si le navigateur est actuellement en mode permissif. Si elle n’est pas définie ou null, une erreur s’est produite dans l’opération de définition.
Exigences
Windows 10, version 1709 ou ultérieure
emptyClipBoard
Efface le Presse-papiers système. L’application de test doit appeler cette fonction pour forcer l’effacement des données qui peuvent être stockées dans le Presse-papiers système. La fonction lockDown effectue également cette opération.
Syntaxe
void SecureBrowser.security.emptyClipBoard();
Exigences
Windows 10, version 1709 ou ultérieure
getMACAddress
Obtient la liste des adresses MAC pour l’appareil. L’application de test doit appeler cette fonction pour faciliter les diagnostics.
Syntaxe
void SecureBrowser.security.getMACAddress(Function callback);
Paramètres
callback
: la fonction à appeler une fois cet appel terminé. Elle doit être au formatFunction(String addressArray)
oùaddressArray
est au format"['00:11:22:33:44:55','etc']"
.
Remarques
Il est difficile de s’appuyer sur des adresses IP sources pour faire la distinction entre les ordinateurs des utilisateurs finaux au sein des serveurs de test, car les pare-feu/NAT/proxys sont couramment utilisés dans les écoles. Les adresses MAC permettent à l’application de distinguer les ordinateurs clients finaux derrière un pare-feu commun à des fins de diagnostic.
Exigences
Windows 10, version 1709 ou ultérieure
getStartTime
Obtient l’heure à laquelle l’application de test a été démarrée.
Syntaxe
DateTime SecureBrowser.security.getStartTime();
Retour
Un objet DateTime indiquant l’heure de démarrage de l’application de test.
Exigences
Windows 10, version 1709 ou ultérieure
getCapability
Demande si une fonctionnalité est activée ou désactivée.
Syntaxe
Object SecureBrowser.security.getCapability(String feature)
Paramètres
feature
: la chaîne permettant de déterminer la fonctionnalité à interroger. Les chaînes de fonctionnalité valides sont « screenMonitoring », « printing » et « textSuggestions » (sans respect de la casse).
Valeur de retour
Cette fonction retourne un objet JavaScript ou un littéral au format {<feature>:true|false}
. true si la fonctionnalité interrogée est activée, false si la fonctionnalité n’est pas activée ou si la chaîne de fonctionnalité n’est pas valide.
Configuration requise Windows 10, version 1703 ou ultérieure
setCapability
Active ou désactive une fonctionnalité spécifique sur le navigateur.
Syntaxe
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)
Paramètres
feature
: la chaîne permettant de déterminer la fonctionnalité à définir. Les chaînes de fonctionnalité valides sont"screenMonitoring"
,"printing"
et"textSuggestions"
(sans respect de la casse).value
: le paramètre prévu pour la fonctionnalité. Il doit être sur"true"
ou"false"
.onSuccess
: [facultatif] la fonction à appeler une fois l’opération définie terminée. Elle doit être au formatFunction(String jsonValue)
où jsonValue est au format{<feature>:true|false|undefined}
.onError
: [facultatif] la fonction à appeler si l’opération de définition a échoué. Elle doit être au formatFunction(String jsonValue)
où jsonValue est au format{<feature>:true|false|undefined}
.
Remarques
Si la fonctionnalité ciblée est inconnue du navigateur, cette fonction transmet une valeur de undefined
à la fonction de rappel.
Configuration requise Windows 10, version 1703 ou ultérieure
isRemoteSession
Vérifie si la session active est connectée à distance.
Syntaxe
Boolean SecureBrowser.security.isRemoteSession();
Valeur de retour
true si la session active est distante, sinon false.
Exigences
Windows 10, version 1709 ou ultérieure
isVMSession
Vérifie si la session active s’exécute dans une machine virtuelle.
Syntaxe
Boolean SecureBrowser.security.isVMSession();
Valeur de retour
true si la session active est en cours d’exécution dans une machine virtuelle, sinon false.
Remarques
Cette vérification de l’API ne peut détecter que les sessions de machine virtuelle en cours d’exécution dans certains hyperviseurs qui implémentent les API appropriées
Exigences
Windows 10, version 1709 ou ultérieure