Points clés à retenir (TL;DR)
Synthèse exécutive- Le mode kiosque Android s'appuie sur Android Enterprise – Dedicated devices (corporate-owned, sans compte utilisateur) et un token d'enrollment géré par Intune.
- Deux variantes : mono-application (une seule app plein écran) ou multi-applications (launcher géré Microsoft Managed Home Screen).
- Le déploiement repose sur trois objets Intune : un profil d'enrollment, un groupe dynamique et un profil de configuration de restrictions.
- La validation se fait côté appareil (impossible de quitter l'app) et côté portail (statut
Compliant/ profilSucceeded). - Rollback propre via wipe/retire ; un simple retrait de profil ne réinitialise pas toujours l'état kiosque.

Le probleme qu’on resout
Un besoin récurrent : fournir des tablettes partagées (accueil, inventaire en entrepôt, affichage, bornes de signature) qui n’exécutent qu’une seule application métier, sans accès aux paramètres, au navigateur, ni au Play Store. L’utilisateur ne doit pas pouvoir sortir de l’application, installer autre chose, ni rattacher un compte personnel.
Les méthodes « évidentes » échouent :
- Épinglage d’écran natif Android (Screen pinning) : contournable par l’utilisateur, non centralisable, non conforme pour une flotte.
- MDM avec compte utilisateur (BYOD/Work Profile) : conçu pour des appareils personnels, il ne verrouille pas l’OS en kiosque.
- Applications kiosque tierces installées manuellement : dérive de configuration, pas de reporting, pas de rollback centralisé.
La réponse supportée est le profil d’enrollment Android Enterprise Dedicated devices, qui place l’appareil en mode « corporate-owned, device-only », sans compte Google utilisateur, avec un contrôle complet de l’OS par Intune.
Comment ca marche
Android Enterprise distingue plusieurs scénarios de propriété. Le mode kiosque correspond au scénario Dedicated devices (COSU — Corporate-Owned, Single-Use). Concrètement :
- L’appareil est enrôlé via un token d’enrollment (QR code ou code alphanumérique) généré par un profil d’enrollment Intune. Ce token est lié au compte Managed Google Play de votre tenant.
- À l’enrollment, l’appareil rejoint automatiquement un groupe Azure AD / Entra ID dynamique (basé sur
enrollmentProfileName). - Ce groupe reçoit un profil de configuration « Restrictions sur l’appareil » de type Dedicated device / Kiosk, qui définit le mode (single app ou multi-app) et les applications autorisées.
- Les applications sont déployées en Required via Managed Google Play, pour être présentes avant l’activation du kiosque.
Le lien MITRE ATT&CK pertinent côté défensif : le verrouillage réduit la surface d’exécution non autorisée (atténuation de l’exécution utilisateur, apparentée à M1038 — Execution Prevention) et limite l’installation d’apps hors-canal.
Prerequis
- Licence Microsoft Intune (standalone ou via Microsoft 365 E3/E5) assignée.
- Rôle Intune Administrator ou Intune Role: Policy and Profile Manager (moindre privilège pour la création de profils).
- Connexion Managed Google Play établie dans Intune (Devices > Enrollment > Android > Managed Google Play). Un compte Google d’entreprise dédié est requis une seule fois.
- Tablette Android 8.0+ (9.0+ recommandé), réinitialisée en usine (factory reset) — l’enrollment Dedicated exige un appareil neuf/réinitialisé.
- Accès Wi-Fi durant l’enrollment.
- Optionnel pour le script : PowerShell 7+ et le module
Microsoft.Graph.IntuneouMicrosoft.Graphpour l’automatisation via l’API Graph.
Procedure
- Vérifier la connexion Managed Google Play : Devices > Android > Android enrollment > Managed Google Play. Statut « Connected ».
- Créer le profil d’enrollment Dedicated : Android enrollment > Corporate-owned dedicated devices > Create profile. Nommer, par ex.
KIOSK-TABLETTES-ACCUEIL. Choisir le token mode (Device token pour un kiosque sans compte, ou Corporate-owned, fully managed user devices si besoin d’un compte). - Générer le token / QR code : noter la valeur et la date d’expiration.
- Créer un groupe dynamique (Entra ID) ciblant l’
enrollmentProfileName(voir script). - Ajouter les applications dans Managed Google Play et les assigner en Required au groupe.
- Créer le profil de configuration kiosque : Devices > Configuration > Create > Android Enterprise > Device restrictions (Fully Managed, Dedicated…). Section Device experience > Enrollment profile type: Dedicated device > Kiosk mode. Choisir Single app ou Multi-app.
- Assigner le profil de configuration au groupe dynamique.
- Enrôler la tablette : au premier démarrage après factory reset, taper 6 fois sur l’écran de bienvenue pour afficher le scanner QR, puis scanner le QR du profil (ou saisir le token lors de la méthode NFC/zéro-touch selon le constructeur).
- Attendre la synchronisation : l’appareil installe les apps et applique le profil kiosque.
Le script
Automatisation via Microsoft Graph : création du groupe dynamique ciblant un profil d’enrollment, puis assignation. Valeurs génériques à adapter.
# Prerequis : PowerShell 7+, module Microsoft.Graph
# Install-Module Microsoft.Graph -Scope CurrentUser
# --- Parametres (valeurs generiques) ---
$EnrollmentProfileName = "KIOSK-TABLETTES-ACCUEIL" # doit correspondre au profil cree dans Intune
$GroupName = "GRP-DYN-KIOSK-ANDROID"
$TenantId = "00000000-0000-0000-0000-000000000000"
# --- Connexion avec scopes de moindre privilege ---
Connect-MgGraph -TenantId $TenantId -Scopes `
"Group.ReadWrite.All", `
"DeviceManagementConfiguration.ReadWrite.All"
# --- 1. Creation du groupe dynamique cible ---
# La regle capture tous les appareils enroles via le profil d'enrollment nomme.
$membershipRule = "(device.enrollmentProfileName -eq `"$EnrollmentProfileName`")"
$groupParams = @{
DisplayName = $GroupName
Description = "Appareils Android en mode kiosque (Dedicated)"
MailEnabled = $false
MailNickname = "grpdynkioskandroid"
SecurityEnabled = $true
GroupTypes = @("DynamicMembership")
MembershipRule = $membershipRule
MembershipRuleProcessingState = "On"
}
$group = New-MgGroup -BodyParameter $groupParams
Write-Host "Groupe cree : $($group.DisplayName) [$($group.Id)]"
# --- 2. Verification de la regle dynamique ---
$check = Get-MgGroup -GroupId $group.Id -Property "displayName,membershipRule,membershipRuleProcessingState"
Write-Host "Regle : $($check.MembershipRule)"
Write-Host "Etat : $($check.MembershipRuleProcessingState)"
# --- 3. (Optionnel) Lister les profils de configuration kiosque existants ---
# Permet de recuperer l'ID du profil a assigner au groupe.
$configs = Get-MgDeviceManagementDeviceConfiguration -All |
Where-Object { $_.DisplayName -like "*Kiosk*" }
$configs | Select-Object Id, DisplayName | Format-Table -AutoSize
Disconnect-MgGraph
Variante — assignation d’un profil de configuration existant au groupe via l’API Graph brute (endpoint beta pour deviceConfigurations/assign) :
$configId = "11111111-1111-1111-1111-111111111111" # ID du profil kiosque
$groupId = "22222222-2222-2222-2222-222222222222" # ID du groupe dynamique
$assignBody = @{
assignments = @(
@{
target = @{
"@odata.type" = "#microsoft.graph.groupAssignmentTarget"
groupId = $groupId
}
}
)
} | ConvertTo-Json -Depth 5
Invoke-MgGraphRequest -Method POST `
-Uri "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations/$configId/assign" `
-Body $assignBody -ContentType "application/json"
Write-Host "Profil $configId assigne au groupe $groupId"
Planification — vérifier périodiquement la conformité des appareils kiosque :
# Rapport rapide des appareils Android Dedicated et de leur conformite
Connect-MgGraph -Scopes "DeviceManagementManagedDevices.Read.All"
Get-MgDeviceManagementManagedDevice -All `
-Filter "operatingSystem eq 'Android'" |
Where-Object { $_.ManagedDeviceOwnerType -eq "company" } |
Select-Object DeviceName, ComplianceState, LastSyncDateTime, OsVersion |
Sort-Object LastSyncDateTime |
Format-Table -AutoSize
Disconnect-MgGraph
Validation
Trois niveaux de contrôle :
- Côté appareil : au démarrage, seule l’application (ou le launcher Managed Home Screen) s’affiche. Impossible d’accéder aux paramètres, à la barre de navigation, ni de fermer l’app. En multi-app, seules les apps autorisées sont visibles.
- Côté portail Intune : Devices > All devices > [appareil]. Vérifier :
Ownership = Corporate,Enrollment profile name = KIOSK-TABLETTES-ACCUEIL;- Onglet Device configuration : le profil kiosque en statut Succeeded ;
- Appartenance au groupe dynamique (peut prendre quelques minutes).
- Côté applications : Apps > [app] > Device install status doit indiquer Installed avant que le kiosque soit pleinement opérationnel.
Test fonctionnel : tenter de glisser depuis les bords, revenir à l’accueil, ouvrir les paramètres. Toute tentative doit échouer. Vérifier qu’aucun compte Google personnel ne peut être ajouté.
Plan de retour (rollback)
Le mode Dedicated verrouille l’appareil au niveau OS ; un simple retrait de profil ne libère pas toujours l’appareil. Procédure fiable :
- Désassigner le profil kiosque du groupe (teste un retour non destructif ; l’appareil reste géré mais sort du verrouillage après sync).
- Si cela ne suffit pas, Retire / Wipe l’appareil depuis Intune : Devices > [appareil] > Wipe. Pour un appareil Dedicated, le Wipe réinitialise en usine et le retire de la gestion.
- Après factory reset, l’appareil peut être ré-enrôlé dans un autre profil, ou remis en usage standard.
- Rollback du groupe/scripts : supprimer le groupe dynamique créé (
Remove-MgGroup -GroupId $group.Id) si l’opération doit être annulée intégralement.
Conservez le QR/token d’enrollment : un ré-enrollment nécessite de refaire un factory reset de la tablette.
Depannage
| Symptôme | Cause probable | Solution |
|---|---|---|
| Le QR code n’est pas reconnu au démarrage | Appareil non réinitialisé ou version Android trop ancienne | Factory reset complet ; vérifier Android 8.0+ ; relancer le setup et taper 6 fois l’écran de bienvenue |
| L’app ne s’installe pas | App non assignée en Required ou pas synchronisée depuis Managed Google Play | Vérifier l’assignation Required au groupe ; forcer une sync ; valider la connexion Managed Google Play |
| Appareil non membre du groupe dynamique | Règle incorrecte ou propagation en cours | Vérifier enrollmentProfileName exact (sensible à la casse) ; attendre jusqu’à ~15 min de traitement |
| Profil kiosque en « Error » / « Conflict » | Deux profils de restrictions contradictoires ciblent l’appareil | Identifier le conflit dans Device configuration > status ; retirer la stratégie redondante |
| Écran noir ou boucle de démarrage après kiosque multi-app | Managed Home Screen non déployé | Déployer l’app Managed Home Screen en Required avant d’activer le mode multi-app |
| Impossible de wiper l’appareil | Perte de connectivité réseau de l’appareil | Reconnecter au Wi-Fi ; si injoignable, factory reset manuel + Delete côté Intune |
Securite, changement et bonnes pratiques
- Secrets et tokens : le QR/token d’enrollment permet d’enrôler des appareils dans votre tenant ; traitez-le comme un secret, fixez une expiration et régénérez-le après un déploiement de masse.
- Moindre privilège : utilisez un rôle Intune délégué (Policy and Profile Manager) plutôt que Global Admin ; pour le script, limitez les scopes Graph à ceux utilisés (
Group.ReadWrite.All,DeviceManagementConfiguration.ReadWrite.All). - Lecture seule pour l’audit : les rapports de conformité se font avec
DeviceManagementManagedDevices.Read.Alluniquement. - Durcissement : désactivez l’ajout de comptes, le débogage USB, le factory reset côté utilisateur, et le navigateur sauf besoin. En multi-app, n’autorisez que le strict nécessaire (M1038 — Execution Prevention).
- Cadrage ITIL : le déploiement d’une flotte kiosque est un changement normal soumis au CAB (impact sur des postes de travail métier). Un pilote sur 1-2 appareils relève d’un changement standard pré-approuvé. Planifiez une fenêtre de maintenance hors heures de service pour le basculement, documentez le rollback dans la RFC, et rattachez tout dysfonctionnement récurrent à la gestion des problèmes.
A retenir
Le mode kiosque Android avec Intune repose sur une chaîne claire : profil d’enrollment Dedicated → groupe dynamique sur enrollmentProfileName → profil de configuration kiosque (single/multi-app) → apps en Required. La validation se fait à la fois sur l’appareil (verrouillage effectif) et dans le portail (statut Succeeded/Compliant), et le rollback passe par un wipe pour un retour d’état propre.
Testez d’abord sur un appareil pilote, documentez vos valeurs (nom de profil, groupe, apps) et versionnez vos scripts Graph. Une fois la procédure validée, industrialisez l’enrollment par lots via QR et conservez une RFC de référence pour vos prochains déploiements.