Verificatiecode voor Invantive Cloud voor download met curl

Een batch file is aangemaakt volgens onderstaande methodiek, maar het lukt niet om hiermee de applicatie te starten in Invantive Cloud.

Om aan te melden op Invantive Cloud is normaliter ook gebruikersnaam, wachtwoord en authenticatiecode nodig, gaat deze curl-methodiek daar omheen want er wordt alleen gebruik gemaakt van gebruikersnaam en wachtwoord?

Zijn er verder vereisten om dit succesvol af te schieten vanaf lokaal? Curl is aanwezig in het besturingssysteem overigens.

set CLOUD_USER=myinvantivecloudaccount
set CLOUD_PASSWORD=verysecret
set DUMMY_OUT_FILE=c:\temp\dummy.bin
set ENABLE_ZIP=-H "Accept-Encoding: gzip"
set OTHER_OPTIONS=--retry 3 --silent

curl %ENABLE_ZIP% %OTHER_OPTIONS% -u %CLOUD_USER%:%CLOUD_PASSWORD% --output %DUMMY_OUT_FILE% --url https://bridge-online.cloud/acme-exact-online-3/odata4/ExactOnlineREST.Incremental.ItemsIncremental@eol?$filter=Division%20eq%20123456

De sterke authenticatie is anders georganiseerd op Invantive Bridge Online dan op Invantive Cloud:

Aspect Invantive Cloud (portaal) Invantive Bridge Online Invantive App Online
Kennis (wachtwoord) Verplicht Verplicht Verplicht
Locatie (IP-adres) Geen controle Verplicht Verplicht
Bezit (TOTP-token op telefoon) Verplicht Geen controle Geen controle

Beiden kennen een sterke authenticatie, maar dus anders. Invantive Cloud is bedoeld voor uitsluitend interactief gebruik en dan is bezit een goede controle. Bridge Online is echter bedoeld voor geautomatiseerd gebruik en daarom is IP-adres gekozen als tweede beveiliging naast wachtwoord. Het IP-adres moet bij de opgegeven database opgevoerd zijn als toegestaan IP-adres.

Zolang de URL om de applicatie af te schieten begint met https://app-online.cloud/apps/ neem ik aan dat het Invantive Cloud betreft, klopt dit?

Dient de TOTP token dan verwerkt te worden in de batchfile?

Praktijksituatie: klant wil geautomatiseerd (via batch file) een applicatie afschieten in Invantive Cloud. Nu nog beetje onduidelijk wat er in de batch file meegegeven moet worden:

  • Gebruikersnaam
  • Wachtwoord
  • TOTP??

Locatie whitelisten niet nodig in dit geval want betreft (aan URL te zien) Invantive Cloud?

Het concept “Invantive Cloud” kent twee betekenissen:

  • het geheel van de Invantive Cloud, bestaande uit o.a. de user interface en de verschillende online-diensten zoals App Online en Bridge Online (vergelijkbaar met het geheel van Azure),
  • de website https://cloud.invantive.com waar men interactief op werkt (het “portaal” om de analogie met Azure aan te houden).

In bovenstaande tabel is sprake van de user interface. De tabel is hierop aangepast. Het TOTP-token is niet nodig en ook niet mogelijk via App Online en Bridge Online. Authenticatie op basis van wachtwoord en IP-adres is dan de aanbevolen aanpak.

Moet het IP adres dan worden toegestaan op deze database binnen Invantive Cloud?

Ja, het IP-adres waar de curl of vergelijkbaar vandaan komt (IPv4 of IPv6) moet toegevoegd worden aan de whitelist. Anders zal een melding in JSON-formaat terugkomen zoals beschreven in Corrigeer itgenboe031 en itgenboe030 melding bij Power BI Verversen (Bridge Online toegang is niet geautoriseerd vanaf IP-adres ...)).

Binnen Invantive Cloud is nu ster (*) toegevoegd als IP whitelist, dus dit zou niet meer moeten blokken.

curl werkt nog steeds niet zoals in topic intro is getoond.

Verzoek om even mee te kijken vanuit Invantive. Als batch file werkend is zal ik uitgebreider praktisch voorbeeld schetsen voor toekomstige gebruikers hoe dit werkend te krijgen. Ik krijg namelijk vanuit meerdere klanten het verzoek dit voor ze in te regelen omdat ze er zelf niet uitkomen. Zoals blijkt ook voor mij niet makkelijk, maar zie ook dat andere forumgebruikers er moeite mee hebben.

Hopelijk kunnen we na oplossen hiervan een werkende casus schetsen.

Inmiddels denk ik dat ik het werkend heb, middels een uitgeklede versie van bovenstaande.

Stap 1:
Log in op Cloud.Invantive en navigeer naar de juiste database en zorg dat het IP adres wordt toegevoegd aan de Bridge Client IP Adreslijst. Met ster vrijwaar je volgens mij alles (*). Zie screenshot:

Stap 2
Navigeer naar applicaties, kies de gewenste applicatie en klik op uitvoeren. Kopieer vervolgens de link.

Stap 3

Open kladblok, maak een nieuw bestand volgens dit format:

curl -u USERNAME:PASSWORD URL

Vul bij username en password gewoon het Invantive Cloud gebruikersnaam en wachtwoord in zonder quotes. Plak bij URL de gekopieerde link uit stap 2.

Stap 4
Sla het bestandje op tussen dubbele quotes als .bat extensie. Bijvoorbeeld save as “load_twinfield.bat”

Stap 5
Run de batch file en data wordt geladen

Enige wat hierin nog ontbreekt is opvangen van de output. Daar moet ik nog induiken.

Dat is correct!

De uitvoer van curl kan opgevangen worden met de parameter -o of --output als commandoregelparameter (of met een redirect):

curl --help
...
 -o, --output <file>        Write to file instead of stdout