none
OAuth2.0 - Problème pour actualiser la connexion (refresh token)

    Question

  • Bonjour,

    Nous avons développé une application web qui copie / synchronise des fichiers avec des comptes OneDrive.

    Nous utilisons pour cela l'API.

    Le process (simplifié) est le suivant :

    - à la 1ère utilisation, l'utilisateur autorise l'application. Nous récupérons le token de l'utilisateur ainsi que le refresh token via l'API. Nous stockons les informations. L'authentification est valable 1 heure.

    - les fichiers sont copiés sur OneDrive

    - avant l'expiration de l'authentification, nous effectuons un renouvellement des jetons.

    Tout fonctionne correctement avec un compte "Office 365 Personnel avec Fonctionnalités Premium de OneDrive".

    Avec un compte "Stockage + Office 365 Office 365 Business Premium", la fonction pour rafraichir le token d'authentification génère une erreur. Nous n'avons trouvé aucune information pertinente sur le web....

    Avec le 1er type de compte, nous recevons un retour correct et l'authentification est renouvelée pour 1h :

     

    object(stdClass)#1 (6) {

      ["token_type"]=>

      string(6) "bearer"

      ["expires_in"]=>

      int(3600)

      ["scope"]=>

      string(15) "Files.ReadWrite"

      ["access_token"]=>

      string(1112) "EwBAA8l6BAAU7p9QDpi/D...E3O/8KSdlY/w27cbotUkpRbKpr5nearIzzJFarFfP/On1QPCIa2PVg0FxT+38vZ/oySu2hxt29dqZjV9wTCuqPAqIiVNZGz6ts8Ag=="

      ["refresh_token"]=>

      string(365) "MCXCSszv2F47w!...ySyjoQH8RijP6EBQ5vot2iw2rq2rpw6"

      ["user_id"]=>

      string(43) "AAAAAAAAAAAAAAAAAAAAAI...Y5SO0"

    }

    Avec le 2nd type de compte, nous recevons une erreur :

    object(stdClass)#1 (2) {

      ["error"]=>

      string(13) "invalid_grant"

      ["error_description"]=>

      string(87) "The provided value for the input parameter 'refresh_token' or 'assertion' is not valid."

    }

    Le "grant type" utilisé est : "refresh_token" comme l'indique la documentation : https://docs.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/graph-oauth#step-3-get-a-new-access-token-or-refresh-token

    Pourquoi le comportement est-il différents suivant les types de compte ? 

    Avez-vous une idée sur l'origine du problème ?

    Merci d'avance.

    jeudi 30 novembre 2017 08:43