Sichere Google-Cloud-Funktionen http-trigger mit auth
Ich versuche aus der Google-Cloud-Funktionen heute nach dieser Anleitung: https://cloud.google.com/functions/docs/quickstart
Erstellte ich eine Funktion mit einem HTTP-trigger, und war in der Lage, um eine POST-Anfrage zum auslösen einer Funktion zu schreiben, um die Datastore.
Ich Frage mich, ob es einen Weg gibt, kann ich sicher das HTTP-Endpunkt? Derzeit scheint es, dass Sie akzeptieren eine Anfrage von irgendwo/irgendwer.
Beim googlen herum, ich sehe die meisten Ergebnisse reden, die Sicherung der Dinge, mit FB. Allerdings bin ich nicht mit den FB-service hier.
Wären meine Optionen entweder lassen Sie es offen, und hoffe, niemand kennt die URL-Endpunkt (Sicherheit durch Verschleierung " ist), oder die Umsetzung eigener auth-check-in der Funktion selbst?
- Ich habe die gleiche Frage!
- Ich habe das gleiche Problem!
- Auch ich hatte die gleichen Zweifel. AWS-API-gateway hat ein Konzept der api-key. Gibt es etwas ähnliches in GCP
- Möglich, Duplikat der Wie schützen FB Cloud-Funktion HTTP-Endpunkt zu erlauben, nur FB authentifizierte Benutzer?
- Nein, es ist nicht doppelt
- Hey Leute, wir haben eine Funktion in der Alpha können Sie IAM-Richtlinien, die den Aufruf auf einer pro-Funktion basis. Melden Sie sich an etwas.ly/gcf-iam-alpha und ich werde Sie in 🙂
- Danke @MikeMcDonald. Ich mich angemeldet habe.
- irgendeine Idee, wenn dies möglicherweise kommen in die Beta? - die "GCF IAM Vertrauenswürdige Tester" Vertrag für Alpha hat einige nicht so gute Bedingungen. Kann nicht warten, bis es!
- Bald, ich verspreche es 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach der Suche in diesem weiter, und nehmen einen Tipp von @ricka Antwort, ich habe beschlossen, die eine überprüfung für meine cloud-Funktionen mit einem JWT token übergeben, der in form einer Authorization-header access-token.
Hier ist die Umsetzung in Knoten:
Benutze ich
jsonwebtoken
zu überprüfen, die JWT token, undjwks-rsa
zum abrufen der öffentlichen Schlüssel. Ich benutze Auth0, sojwks-rsa
reicht aus, um die Liste der öffentlichen Schlüssel, um Sie abzurufen.Den
checkAuth
Funktion kann dann verwendet werden, zum Schutz der cloud-Funktion als:Können Sie diese änderung auf meinem github-repo auf https://github.com/tnguyen14/functions-datastore/commit/a6b32704f0b0a50cd719df8c1239f993ef74dab6
Den JWT /access-token abgerufen werden können in eine Reihe von Weg. Für Auth0, die API-doc finden Sie unter https://auth0.com/docs/api/authentication#authorize-client
Sobald dies erfolgt ist, können Sie auslösen, die cloud-Funktion (wenn Sie haben Ihre fähigen http-trigger) mit so etwas wie
Es scheint, wie es gibt derzeit 2 Möglichkeiten, um zu sichern, einen Google-Cloud-Funktion HTTP-Endpunkt.
1) Verwenden Sie ein schwer zu erraten, Funktion name (ex: mein-Funktion-vrf55m6f5Dvkrerytf35)
2) Prüfen Sie für die Passwort - /Zugangsdaten/signed-Anfrage innerhalb der Funktion selbst (mit einem Kopf-oder-parameter)
Wahrscheinlich am besten, beides zu tun.
Sollten Sie nicht "offen lassen und hoffen, dass niemand weiß". Sie können die Umsetzung Ihrer eigenen Sicherheit überprüfen oder vielleicht möchten Sie versuchen, die Google-Funktion Vollmachtgeber Modul (https://www.npmjs.com/package/google-function-authorizer).
Können Sie benutzerdefinierte Authentifizierung Algorithmus des Clients prüfen.
Check-out der Algorithmus aus; https://security.stackexchange.com/q/210085/22239