WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:office365

Ceci est une ancienne révision du document !


Office 365

Office 365 est la marque désignant les formules permettant d'obtenir la dernière version de Microsoft Office et un ensemble de services Cloud de Microsoft.

Les inscription sont basées sur un script en ruby inspiré de celui qui permet d'obtenir des licences dreamspark

Solution actuelle

Une nouvelle solution a été implémenté car l'interface graphique de microsoft évolué trop souvent pour que le script sélénium offre une solution stable.

La solution tourne sur une machine virtuelle Windows 10 activée avec une licence de 4 ans MSDNA. Le code utilisé est disponible sur le gitlab dans le groupe microsoft.

Un fichier README est disponible sur le bureau de la machine pour guider l'administrateur vers les bons dossiers

Un serveur apache a été installé dans C:\\Apache24. Pour le lancé, éxecuter:

 C:\Apache24\bin\httpd.exe -k start 

Le répertoire contenant le projet git est dans C:\\Apache24\htdocs\office-minet.

PHP a été installé dans C:\\php.

Il a fallu installer les composants powershell nécessaire pour communiquer avec Ofice 365. https://docs.microsoft.com/fr-fr/office365/enterprise/powershell/connect-to-office-365-powershell

Il faut d'ailleurs activer l'éxecution du powershell:

 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 

Fonctionnement: On a un formulaire php qui fait la requête LDAP et vérifie que l'utilisateur existe et qu'il est bien qui il prétend être (user,mdp). Puis, le script PHP appel un script powerhsell qui fait les requêtes “in a microsoft way”. Puis un message final apparaît sur la page utilisateur lui indiquant soit qu'il a déjà un compte soit qu'il peut se connecter sur portal.office.com.

Ancienne solution

Le script Dreamspark utilise selenium, et a donc besoin d'un navigateur pour fonctionner. Il tourne sur la même openVZ que Dreamspark (vm n° 138 sur spirit), qui a besoin d'une IP publique car le https ne passe pas par nos proxys. EDIT: Depuis un certain temps le service tourne dans une KVM séparée à cause de quelques problèmes rencontrés avec xvfb.

apt-get install ruby iceweasel ruby1.9.1-dev xvfb build-essential
gem install net-ldap selenium-webdriver logger

Le même service xvfb est utilisé pour Dreamspark et Office365 :

#!/bin/bash
 
XVFB=/usr/bin/Xvfb
# XVFBARGS=":99 -fbdir /var/run -ac"
XVFBARGS=":99 -nolisten tcp -fbdir /var/run"
PIDFILE=/var/run/xvfb.pid
case "$1" in
  start)
    echo -n "Starting virtual X frame buffer: Xvfb"
    start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
    echo "."
    ;;
  stop)
    echo -n "Stopping virtual X frame buffer: Xvfb"
    start-stop-daemon --stop --quiet --pidfile $PIDFILE
    echo "."
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
        echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
        exit 1
esac
 
exit 0

Lancement du script en cron :

38 * * * * root cd /opt/office-script && export DISPLAY=:99 && ruby office.rb

Le script est dans /opt/office-script. Les logs sont écrits dans /var/log/office-script.log.

Fonctionnement du script

  • ldap.rb: permet de vérfier que les mails envoyés proviennent bien des adresses de l'école.
  • web.rb: utilise le webdriver de selenium pour faire l'inscription en ligne.
  • office.rb: le script principal qui va appeler ldap.rb pour vérifier les adresses mail et web.rb pour la procédure d'inscription en ligne.

Pour obtenir une licence

Envoyer un mail (peu importe le contenu du mail) à office@minet.net avec son adresse telecom.

wiki/services/office365.1514551926.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)