REST を介して Google クラウド ドライブ バケットからファイルをダウンロードしようとしています。しかし、私が作成した oAuth 2.0 クライアントの access_token を使用すると、エラーとして「Insufficient Permission」が表示されます (これは私の googel アカウントのアクセストークンで機能します)。
では、クラウド プラットフォームのどこで、oAuth2 クライアントにファイルをダウンロードしたいバケットへのアクセスを許可できますか?
THX
TL;DR - OAuth2.0 アクセス トークンを要求するときに正しいスコープを要求するステップを見逃している可能性が高いです。Google Cloud Storage API でサポートされているスコープを確認してください。通常、アクセス トークンは 60 分で有効期限が切れます。有効期限が切れたら、更新トークンを使用して新しいアクセス トークンを取得する必要があります。
詳細については、Google Cloud Storage の認証ページをお読みください。
スコープ
承認は、認証された ID が指定された一連のリソースに対してどのようなアクセス許可を持っているかを決定するプロセスです。OAuth はスコープを使用して、認証された ID が承認されているかどうかを判断します。アプリケーションは、(ユーザー中心またはサーバー中心の認証フローから取得した) 資格情報を 1 つ以上のスコープと一緒に使用して、保護されたリソースにアクセスするためのアクセス トークンを Google 承認サーバーに要求します。
たとえば、
read-only
スコープ付きのアクセス トークンを持つアプリケーション A は読み取りのみが可能ですが、スコープ付きのアクセス トークンを持つアプリケーション B はread-write
データの読み取りと変更が可能です。どちらのアプリケーションも、オブジェクトとバケットのアクセス制御リストを読み取ったり変更したりすることはできません。full-control
スコープを持つアプリケーションのみがこれを行うことができます。
GCP サービスは通常、次の 3 つの主要な認証モードを提供します。
エンド ユーザー アカウントの資格情報- ここでは、Google アカウントまたはOAuth 2.0アクセス トークンを使用して、エンド ユーザーとして直接認証します。場合は、アクセストークンを要求して、あなたはスコープを提供する必要がありますそのアクセストークンを使用してクライアントにアクセス可能なAPIを決定します。
OAuth2.0 クレデンシャル - 適切なスコープが付与されている場合、ユーザーのプライベート データにアクセスできます。さらに、Cloud IAM では、このユーザー アカウントにロールを付与することで、きめ細かい権限を制御できます。
サービス アカウント- ここで、特定の GCP プロジェクトに関連付けられた (およびそれによってそのプロジェクトに課金される)サービス アカウントを作成します。これらは主に、コードまたは Compute Engine、App Engine、Cloud Functions などの Google Cloud サービスからの自動使用に使用されます。Google Cloud IAM を使用してサービス アカウントを作成できます。
各サービス アカウントにはメール アドレスが関連付けられており (サービス アカウントの作成時に指定します)、Cloud Storage バケット/オブジェクトのこのメール アドレスに適切なロールを付与する必要があります。これらの資格情報は、適切なロールが付与されている場合、ユーザーの個人データにアクセスできます。
API キー- ここで、GCP プロジェクトに関連付けられている暗号化された文字列を取得します。ごく少数の Google Cloud API でのみサポートされており、API キーの範囲を制限することはできません (サービス アカウントや OAuth2.0 アクセス トークンとは異なります)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加