Results 1 to 7 of 7

Thread: Google Cloud API's Authorization Bearer

  1. #1
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046

    Google Cloud API's Authorization Bearer

    Eén manier om Google API's aan te roepen is met een 'Authorization: Bearer' header met een geldig access token.
    Om zo'n access token te verkrijgen, kan je blijkbaar een service account maken op de Google Cloud console,
    daar een JSON krijgen met de private key in,
    die voeg je toe met "gcloud auth activate-service-account"
    en dan kan je met "gcloud auth print-access-token"
    aan zo'n token raken die enkele uren geldig is.

    Bestaat er een handigere manier in Delphi om die laatste programmatorisch te kunnen doen?
    Voorlopig kom ik niet verder dan deze met CreateProcess te gaan doen, maar als je kijkt wat er achter zit, dan gaat die via "gcloud.cmd" naar Python...

    Wat zijn die nieuwerwetse cloud-dingen toch allemaal ver verwijderd van de goeie oude tijden dat je met de juiste DLL bijna-rechtstreeks te pakken kreeg wat je moest hebben...

  2. #2
    Je zit ook naar de command line commando's te kijken.
    Volgens mij moet je hier starten.
    https://developers.google.com/identity/protocols/oauth2
    (Want tuurlijk kun je dit allemaal automatisch doen)

    (Service accounts heb ik nooit gedaan. OAuth2 met user consent wel)

  3. #3
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Oh die. Die heb ik ook onder de neus gehad, maar leidt me uiteindelijk naar hetzelfde vrees ik...
    Ik denk dat ik uiteindelijk deze eens goed moet bekijken:
    https://github.com/paolo-rossi/delphi-jose-jwt
    maar ik gruwel van alles dat ook maar in de buurt van openSSL komt. Zeker als ze blijken vast te hangen aan een specifieke versie die er x versies na komt op deze waarvan ik lees in de virus-hunter blogs dat je ze absoluut niet meer mag gebruiken...
    Ik mag me niet bang laten maken, maar als het dan maar met openSSL moét uiteindelijk, dan maak ik nog liever de tijd om uit te zoeken hoe dat dan precies moet. Al die laagjes en tussenstappen om uiteindelijk gewoon een reeks bytes te bekomen, vind ik allemaal uiterst verdacht. En je sleept het allemaal maar mee. Net zoals 'even praten met een mongoDB server': dankzij net het juiste stukje documentatie, en heel hard doorbijten is het me toch gelukt! Aleen vrees ik dat ik me op het gehele JWT verhaal alderhalf gebit aan het stukbijten ben.
    Of alles moet naar Python worden omgecodeerd, maar op dit forum mag je niet vloeken.

  4. #4
    Hoe/waarvoor ga je de service account gebruiken?

  5. #5
    Quote Originally Posted by develyoy View Post
    https://github.com/paolo-rossi/delphi-jose-jwt
    maar ik gruwel van alles dat ook maar in de buurt van openSSL komt.
    zoals ik het lees wordt die openssl lib alleen gebruikt voor de HMAC-RSA "In Delphi 10 Seattle or newer Delphi versions the HMAC algorithm is also is the System.Hash unit so OpenSSL is not needed."

  6. #6
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Ik dit geval is het om Google Cloud Pub/Sub te gebruiken. Vreemd genoeg kan je dit bij een API Key wel kiezen bij de beperkingen, maar als je "?key=" en die API Key gebruikt, krijg je een dikke Access Denied (403)... Vreemd, en heel misschien iets dat fout zit bij Google? OF zouden ze een (veiligheids?)reden hebben om Pub/Sub niet toe te laten met enkel maar een API key...

  7. #7
    Quote Originally Posted by develyoy View Post
    OF zouden ze een (veiligheids?)reden hebben om Pub/Sub niet toe te laten met enkel maar een API key...
    Deze opmering leek mij wel duidelijk...
    Note: Pub/Sub does not support API keys as an authentication method.
    https://cloud.google.com/pubsub/docs/authentication

    Overigens is het wel raar dat er in de documentatie voor pub/sub api wel die key parameter vermeldt staat.

    Edit: je kunt schijnbaar wel met Google Endpoint werken en op die manier een message pushen naar pub/sub. Dan zou je wel met eem api-key moeten kunnen werken.

    https://stackoverflow.com/questions/...ust-an-api-key

    (Ik gebruik overigens Firebase Cloud Messaging (FCM) voor het verzenden van notificaties. Ik dacht dat die ook met alleen apikey kon werken. Paar jaar geleden ingesteld op mjn Linux server en nooit meer naar om hoeven te kijken )
    Last edited by rvk; 03-Oct-20 at 09:52.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •