IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

API avec Microsoft Azure et Rest Debugger


Sujet :

API, COM et SDKs Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    septembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut API avec Microsoft Azure et Rest Debugger
    Bonjour,

    par avance veuillez m'excuser si je ne suis pas assez précis mais je débute sur Delphi. N'hésitez pas à me demander des précisions.

    Dans le cadre d'activité de mon entreprise, je dois mettre en place une authentification par token sur notre application via notre environnement Microsoft Azure.
    J'ai crée une API test sur Azure pour voir comment faire avant de l'appliquer à notre projet. J'ai bien suivi la docs Microsoft pour le faire.
    Ensuite j'ai continué mes tests sur Rest Debogger.

    Nom : RestD-1.jpg
Affichages : 55
Taille : 75,5 Ko

    Nom : RestD-2.jpg
Affichages : 51
Taille : 49,5 Ko

    Mais quand je veux lancer le Step#1 de l'authentification j'ai un message qui apparait sur mon navigateur :

    Nom : RestD-3.jpg
Affichages : 50
Taille : 10,1 Ko

    J'ai tenté de modifier le redirection EndPoint mais j'ai toujours une erreur sur le navigateur.

    Mon erreur viendrait-elle au niveau du Rest Debugger ? Dois-je remplir les onglets Request, Parameters et Connection également ? La seule vidéo que j'ai trouvé qui rempli ces trois champs est en brésilien, que je ne connais pas du tout.

    Merci d'avance pour vos retours.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    12 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 12 211
    Points : 21 538
    Points
    21 538
    Par défaut
    C'est normal, c'est qui localhost ?
    Pense que c'est Azure qui invoque l'URI de Redirection, il faut donc une vraie adresse accessible de l'extérieur puisque c'est un Server Web de Microsoft qui veut envoyer le Auth Code à ton serveur Client consommateur de l'API
    Microsoft identity platform and OAuth 2.0 authorization code flow indique bien "http://localhost" comme redirect_uri pour l'utilisation d'un WebBrowser externe depuis une application tel que RESTDebugger

    Pour les tests, j'avais un WebBrowser embarqué me permettant d'utiliser "https://login.microsoftonline.com/common/oauth2/nativeclient" qui permet d'envoyer le code Auth dans l'URL et c'est le composant WebBrowser qui capture la valeur durant le Navigate, ça c'est fourni par REST.Authenticator.OAuth et REST.Authenticator.OAuth.WebForm.Win en VCL ou REST.Authenticator.OAuth.WebForm.FMX

    Dans le cas de "http://localhost" comme redirect_uri, regarde la barre de titre de la fenêtre, il peut contenir le code à recopier, oui c'est très low-tech, c'est l'équivalent du "urn:ietf:wg:oauth:2.0:oob" chez Google.


    Si ton application client consommateur de l'API est en ligne, tu dois donc fournir l'URL correspondant pour envoyer le Auth Code, ton Application consommateur elle doit convertir de son côté ce Auth Code en Access Token et Refresh Token.
    Le Auth Code doit valide quelques minutes (10 je crois) et le Access Token plutôt 1h que tu pourras ensuite rafraichir avec le Refresh Token qui lui est valide 90 jours.
    C'est dans le cas où tu développes aussi le consommateur de l'API après tes premiers tests de RESTDebugger

    Pour RESTDebugger, en théorie, il doit lui aussi transformer le AuthCode en Token
    - Le bouton "Authorize" affiche un WebBrowser et donne le AuthCode
    - Le bouton "Request Access Token" convernti le AuthCode en Access Token et Refresh Token

    Je n'ai pas créé d'API mais j'ai bossé sur l'utilisation de Microsoft Graph avec Auth Azure AD en remplacement de IMAP4 Basic Auth
    Dans ce cadre j'ai fait une TSLTOAuth2Authenticator qui encapsule le REST.Authenticator.OAuth.TOAuth2Authenticator car j'utilise sur Azure le mode ROPC et non le mode AuthCode via ChangeAuthCodeToAccesToken qui sera plutot pour GMail.


    EDIT : Si le code du RESTDebugger pour l'étape "Authorize" utilise le navigateur par défaut de l'OS, c'est donc la version pour humain qu'il faut utiliser soit l'URI : "
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    septembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé en remplaçant le localhost par "https://login.microsoftonline.com/common/oauth2/nativeclient". Maintenant j'ai un souci avec le tenant mais bon on avance. ^^

    Je continue à plancher dessus et je mettrai comment faire une fois que ça fonctionnera nickel. Merci pour ta réponse en tous cas.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    12 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 12 211
    Points : 21 538
    Points
    21 538
    Par défaut
    Regarde tout de même avec "http://localhost" comme redirect_uri, tu as le code dans l'URL qui a échoué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GET http://localhost?
    code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
    &state=12345
    Avec "https://login.microsoftonline.com/common/oauth2/nativeclient" moi j'utilise car j'ai mon WebBrowser intégré, je récupère le code directement et j'annule la navigation
    Avec "http://localhost" comme redirect_uri, consulte l'historique du WebBrowser affichant l'erreur
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Cloud Microsoft AZURE : probléme avec l'API REST PUT BLOB
    Par fra7114 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 06/12/2019, 09h55
  2. Réponses: 0
    Dernier message: 25/11/2013, 15h22
  3. Réponses: 0
    Dernier message: 25/11/2013, 14h36
  4. Réponses: 14
    Dernier message: 09/04/2011, 16h27
  5. Debugger DirectX avec Microsoft Visual C++ 2005
    Par Astraya dans le forum DirectX
    Réponses: 2
    Dernier message: 15/10/2008, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo