Googleアカウント機能の認証と呼び出し


カバーイメージhere )
Google雲からのサービスはしばらくの間、あった.Google Cloud FunctionはGoogleのクラウド・プラットフォームの中で、無制限の、イベント駆動型サービスであり、Googleのパブリック・クラウド内でのプログラム機能を作成し、実装することを意図している.
すべてのインフラリソースは、Google Cloud Platform(GCP)によって提供されて、自動的に回復されます.GCPはまた、それらと一緒に動作するようにコンソールコマンドの良いリストを提供します.

クラウド関数の認証


機能を認証するのに適用できる様々なシナリオがあります.ユーザサービスアカウント認証のための1つのシナリオ.
この時点で、あなたは既にサービスアカウントを作成していると仮定します.最初の手順を開始するには、サービスアカウントをiamに追加します.これはあなたのGCPの上でIAMにナビゲートして

一旦それをすると、メンバー名の入力があります.そこにあなたのサービスアカウント名を入れてください.次に、このサービスアカウントにロールを追加します.
サービスアカウントを使用してサービスを認証するには
  • サービスアカウントトークン作成
  • サービスアカウントユーザー
  • サービス使用量
  • 保存をクリックしてデータを保存します.
    トークンを生成するコードにジャンプする前に、サービスアカウントのキーを生成します.GCPのサービスアカウントに移動します.リストの下には、サービスアカウントが表示されます.これはダウンロードする必要があります.鍵となる情報があるJSONファイル.これは機密情報を持つIMPファイルです.参考にhere
    当社のサービスアカウントは現在セットアップです.さて、このサービスアカウントの認証トークンを取得する必要があります.この生成トークンは、サービスアカウントとしてAuthを使用しているGCPサービスを呼び出すために使用することができます.Googleクラウド機能を使っていました.我々がアクセスしようとしているサービスを確認してください、同じサービスアカウントセットを持っています.

    JWTトークンを生成するコードスニペットを見ることができます.
    from google.oauth2 import id_token
    from google.oauth2 import service_account
    import google.auth
    import google.auth.transport.requests
    from google.auth.transport.requests import AuthorizedSession
    import requests
    
    # path to your cloud function or any other service
    url = 'https://{region}-{project-id}.cloudfunctions.net/{cloud-function-name}'
    
    # path to you keys file that was downloaded when keys for SA were created
    keyFilePath = 'key.json'
    creds = service_account.IDTokenCredentials.from_service_account_file
    (keyFilePath,
    target_audience=url)
    # auth session
    authed_session = AuthorizedSession(creds)
    
    # make authenticated request and print the response, status_code
    resp = authed_session.get(url)
    
    # to verify an ID Token
    request = google.auth.transport.requests.Request()
    token = creds.token
    # print the generated token
    print(token)
    print(id_token.verify_token(token,request))
    
    これによってJWTトークンを与え、その後のリクエストを認証する必要があります.あなたがしなければならないのは、それぞれのクラウドサービスを呼び出すとき、このトークンをヘッダーに渡すことです.
    headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {token}'.format(token = token)
    }
    
    これらの手順を使用してトークンを取得し、GCPでホストしているサービスを呼び出すことができます.同じコードと手順を使用して、AWSラムダや他のHTTPリクエストからGCPクラウド関数を呼び出すことができます.