Partage
  • Partager sur Facebook
  • Partager sur Twitter

Portail Azure Active directory et session token

    25 mai 2019 à 12:57:44

    Hello :)

    J'ai un soucis de compréhension sur les sessions avec tokens.

    Configuration :

    - Application web GLPI (php),

    - Portail Azure Active Directory 

    Objectif:

    - Mettre en place un sso avec le portail Azure et les comptes Microsoft Office365 des utilisateurs sur l'application web GLPI.

    Action déjà effectuée:

    - Configuration d'un LDAP sur GLPI, mais cela prend en compte la session Windows donc c'est pas bon.

    - Mise en place du service de messagerie intégré à GLPI sur l'adresse serveur office365, mais ça fonctionne pas.

    Solution envisagée: 

    - Mise en place d'un plugin pour GLPI qui intègre un lien de connexion dans la page de connexion vers le portail Azure AD

    Donc pour faire cela, il me faut augmenter ma compétence au niveau des sessions. J'ai parcouru pas mal de documentation mais tout reste plutôt flou et je cherche quelqu'un qui peut m'expliquer simplement comment fonctionne sur le principe (autre que la manière des documentations) les sessions avec tokens.

    De ce que je sais des sessions classiques, l'utilisateur entre ses identifiants, et l'application va chercher en BDD si il existe et si les ID correspondent, ensuite grâce à la variable session, son authentification est maintenu sur chaque page qu'il consulte.

    Mais avec les tokens, j'ai du mal à comprendre, donc, de ce que j'ai compris pour le moment :

    - L'utilisateur demande l'accès à l'application via un fournisseur externe (un bouton "connexion avec Facebook" )

    - l'application créé une requête pour demander l'autorisation au fournisseur si elle peut fournir cette authentification

    - si elle est autorisé, le fournisseur affiche son formulaire et l'utilisateur saisie ses ID

    - Le fournisseur envoi un token d'acceptation, et l'application s'en sert pour autoriser l'utilisateur. Le token est sauvegardé dans un cookie ou une variable (je sais pas).

    Bref, est ce que je me plante quelque part ?

    Est ce que j'oubli des choses ? ou alors avez vous de meilleures explication ?

    Merci d'avance et bonne journée :)

    -
    Edité par AnthonyAlvaro 25 mai 2019 à 12:58:42

    • Partager sur Facebook
    • Partager sur Twitter
      25 mai 2019 à 18:46:08

      Hello,

      Une session contient des données, ces données sont stocker chez le client.

      En PHP, tu peux récupérer ces données (si elles existent) avec l'array $_SESSION.

      Un token de session permet d'authentifier les requêtes de ton client pour être sûre que tu dialogues toujours avec le même client.

      Une personne tierce pourrait très bien dérober les données de session de ton client et envoyer une requête, ton serveur ne verrait pas la différence si ce n'est à l'ip mais ce n'est pas un élément fiable pour filtrer.

      Les tokens sont généralement associer à une date, ce qui rend le token périssable. Il faut donc régénérer le token en s'assurant qu'on dialogue toujours avec le même client.

      -
      Edité par xoxotf 25 mai 2019 à 18:48:46

      • Partager sur Facebook
      • Partager sur Twitter
        25 mai 2019 à 19:44:27

        Donc un token une fois validé et reçu par le client, il fait parti de l'array $_SESSION pour une app web (si l'app stocke dans l'array $_SESSION) ?

        Et concrètement une fois la requête du client faite, le jeton obtenu est juste une chaîne chiffrer de caractère ?

        Merci en tout cas pour ces précisions :)

        • Partager sur Facebook
        • Partager sur Twitter
          25 mai 2019 à 19:54:46

          Tu peux représenter le token de plusieurs façons.
          • Partager sur Facebook
          • Partager sur Twitter

          Portail Azure Active directory et session token

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown