Google Cloud Platformy Auth Przewodnik jest ostateczne źródło tutaj: https://cloud.google.com/docs/authentication
różne mechanizmy uwierzytelniania Google służyć różnym celom, więc pozwól mi wyjaśnić te Pytałeś o, i właściwym wyborem dla Ciebie powinno stać się jasne.
Klucze API umożliwiają zidentyfikowanie projektu, z którego pochodzi wywołanie API w imieniu użytkownika. Są one dobre do ograniczania żądań złożonych w imieniu twojego projektu z limitami. Klucz API zazwyczaj nie jest uważany za bezpieczny, ponieważ jest zwykle osadzony w aplikacjach klienckich i stronach internetowych. Z tego powodu klucze interfejsu API nie zapewniają uwierzytelniania ani autoryzacji. Jeśli anonimowy użytkownik nie będzie w stanie nawiązać połączenia, klucz API nie będzie wystarczający.
Dalej, OAuth. OAuth to sposób na przekształcenie prawdziwych, ludzkich użytkowników z kontami Google w uwierzytelnione wywołania API. Użyjesz go, gdy chcesz zrobić coś dla siebie, np. Gdy używasz aplikacji lokalnej, np. gcloud
, lub jeśli tworzysz stronę internetową, która musi prosić ludzi o pozwolenie na robienie rzeczy w Google Cloud na ich imieniu. Proces ten obejmuje identyfikatory i tajne identyfikatory klientów, a kończy się odświeżaniem tokenów i tokenów dostępu. Istnieje kilka różnych smaków.
Wreszcie konta usług. Jeśli Twoja aplikacja działa gdzieś sama, a nie jakaś konkretna osoba, powinieneś ją modelować, tworząc konto usługi dla swojej aplikacji. Konta usług są specjalnymi użytkownikami, którzy nie mają hasła. Zamiast tego mają prywatne pliki kluczy, które można wdrożyć w aplikacji, aby mogły same się uwierzytelniać. Zazwyczaj jest to wymagane, o ile aplikacja nie musi działać w imieniu określonych użytkowników (np. Program do zarządzania chmurą, taki jak gcloud
lub gsutil
).
Model Google Cloud Java library jest wyposażony w funkcję o nazwie "Application Default Credentials", która eliminuje konieczność konfigurowania auth, jeśli aplikacja działa w App Engine lub GCE. Może również zadbać o auth, jeśli chcesz uruchomić kod na swoim komputerze lokalnym i mieć zainstalowany gcloud
.
Oto an example z Compute programu silnik, który tworzy wiadro GCS:
Storage storage = StorageOptions.getDefaultInstance().getService();
Bucket bucket = storage.create(BucketInfo.of("myBucketName"));
zauważyć, jak nie powiedzieć nic na temat uwierzytelniania w ogóle. Domyślne poświadczenia aplikacji dbają o wybór odpowiedniego konta usługi lub użytkownika. Zakładamy, że jesteś w takim środowisku. Jeśli masz prywatny plik .json, możesz to zrobić:
Storage storage = StorageOptions.newBuilder()
.setProjectId(PROJECT_ID)
.setCredentials(GoogleCredentials.fromStream(
new FileInputStream(PATH_TO_JSON_KEY))).build();
Bucket bucket = storage.create(BucketInfo.of("myBucketName"));
I to wszystko!
dziękuję za natychmiastową odpowiedź i wyjaśnienie wyboru! GoogleCredentials uwierzytelnia użytkownika przy użyciu klucza konta usługi, więc możesz podać kod interfejsu API pokazujący, jak używać identyfikatora klienta OAuth i klucza API, ponieważ muszę wdrożyć uwierzytelnianie przy użyciu tych wszystkich trzech. proszę podać przykład interfejsu API chmury klienta Google'a –
Istnieją różne smaki OAuth. Będę musiał wiedzieć więcej o tym, co chcesz zrobić, by Twoja aplikacja dobrze odpowiedziała. Poniżej znajduje się ogólny przewodnik po usłudze Google OAuth: https://developers.google.com/identity/protocols/OAuth2 oraz biblioteka Java i przykłady tutaj: https://developers.google.com/api-client-library/java/ google-oauth-java-client/oauth2 –
Pracuję nad prostą aplikacją, która dla seck pobiera obiekty z GCS i przetwarza je lokalnie, teraz muszę podać opcje użycia dowolnego typu poświadczeń, jakich chce użytkownik do uwierzytelniania, np. może to być klient OAuth Klucz konta ID lub Service itp. Mogę użyć klucza konta usługi JSON do uwierzytelnienia i chcę użyć tajnego pliku klienta JSON pobranego z identyfikatora klienta OAuth. proszę zasugerować "przykład interfejsu API chmury klienta Google" –