Mijn vraag
Ik heb een telegraf container op docker draaien die elke minuut een curl doet van een externe pagina die met OAUTH 2.0 autoriseert (op google.com). Als ik zelf handmatig een Authorisation Token en Bearer Token aanvraag bij de token server en deze als ENV VAR opsla in de docker container, kan ik die Bearer Token in de http header gebruiken om de curl te laten werken en de data op te halen en te parsen.
Probleem is dat de lifetime van die Bearer Token 3600 seconde is en dus ik moet minimaal eens per uur een nieuwe Bearer Token moet aanvragen bij de Token server. Ik kan dit met de hand prima doen met mijn refresh token, en vervolgens handmatig de variabele in de docker container updaten (inloggen in de container en een nieuwe "export TOKEN=<token>") doen.
Relevante software en hardware die ik gebruik
- Synology NAS 920
- Docker 20.10.3
- container met Telegraf 1.21.1
- Externe Site: https://developers.google.com/nest/device-access
- Token Server: https://www.googleapis.com/oauth2/v4/token
- API Endpoint: https://smartdevicemanagement.googleapis.com/v1/
Wat ik al gevonden of geprobeerd heb
Wat niet werkt:
- In de container crond draaien en een cronjob maken die elke 50 min de bearer token opnieuw aanvraagt. ---> Aangezien je niet twee processen gelijktijdig in een container kan laten kopen
- met "docker exec -it <containerid> /bin/bash -c "export TOKEN=<token>" ---> deze var wordt niet in de container toegevoegd (doe ik het verkeerd?)
De vraag is, hier MOET een bestaande oplossing voor dit probleem zijn. Ik ben niet de eerste in de wereld die vanuit een container een OAUTH wil doen. Maar na uren gegoogle ben ik er nog altijd niet uit hoe ik het moet doen.
Ik heb een telegraf container op docker draaien die elke minuut een curl doet van een externe pagina die met OAUTH 2.0 autoriseert (op google.com). Als ik zelf handmatig een Authorisation Token en Bearer Token aanvraag bij de token server en deze als ENV VAR opsla in de docker container, kan ik die Bearer Token in de http header gebruiken om de curl te laten werken en de data op te halen en te parsen.
Probleem is dat de lifetime van die Bearer Token 3600 seconde is en dus ik moet minimaal eens per uur een nieuwe Bearer Token moet aanvragen bij de Token server. Ik kan dit met de hand prima doen met mijn refresh token, en vervolgens handmatig de variabele in de docker container updaten (inloggen in de container en een nieuwe "export TOKEN=<token>") doen.
Relevante software en hardware die ik gebruik
- Synology NAS 920
- Docker 20.10.3
- container met Telegraf 1.21.1
- Externe Site: https://developers.google.com/nest/device-access
- Token Server: https://www.googleapis.com/oauth2/v4/token
- API Endpoint: https://smartdevicemanagement.googleapis.com/v1/
Wat ik al gevonden of geprobeerd heb
Wat niet werkt:
- In de container crond draaien en een cronjob maken die elke 50 min de bearer token opnieuw aanvraagt. ---> Aangezien je niet twee processen gelijktijdig in een container kan laten kopen
- met "docker exec -it <containerid> /bin/bash -c "export TOKEN=<token>" ---> deze var wordt niet in de container toegevoegd (doe ik het verkeerd?)
De vraag is, hier MOET een bestaande oplossing voor dit probleem zijn. Ik ben niet de eerste in de wereld die vanuit een container een OAUTH wil doen. Maar na uren gegoogle ben ik er nog altijd niet uit hoe ik het moet doen.
When you do things right, people won't be sure you've done anything at all.