Pages

2015年8月11日火曜日

DFPリファレンス日本語訳 3

OAuth 2.0 サービスアカウントをDFPで使う。





サービスアカウントは、アプリケーションがGoogle APIに、OAuth2.0を通じてアクセスするために使われる特別なGoogleアカウントです。
サービスアカウントは、OAuth2.0により無人認証を可能とします。代わりに、あなたのアプリケーションだけがアクセスできる鍵ファイルを使います。
このガイドでは、サービスアカウントでDFP APIにアクセスする方法をお話しします。

  • 事前の準備

  • DFP ネットワークの作成.
  • 言語別のクライアントライブラリ.
  • Google API クライアントライブラリ-クライアントライブラリに含まれるため別個のダウンロードは不要. 

DFP APIにアクセスするためのサービスアカウントの準備

  1. サービスアカウントの証明書を作成するか、すでにある証明書にアクセスするには、OAuth 2.0 クライアントIDを作成して、*.p12 privateキーを取得する必要があります。
    1.  Google Developers Consoleへ行く
    2. プロジェクトを選択する。 なければCreate Projectで作成
    3. 左のスライダーからCredentialsを選択.
    4.  サービスアカウントをセットアップするには,  Create New Client IDを選択し、. application typeをサービスアカウトに指定後Create Client IDで作成します。. ダイアログで Okay, got itで完了. (すでにサービスアカウントがあれば、Generate new keyにより別のIDを新規作成できます。)

  2. 重要: サービスアカウントを通じてGoogle servicesへのアクセスを可能にする.p12 キーを保護する必要があります。一番好ましいのは、1つのサービスアカウントに1つのGoogle APIを割り当てることです。これにより攻撃者のアクセスできるデータを制限してサービスアカウントの.p12 キーが流出した場合の予防策とできます.
  3.  サービスアカウントをDFP のユーザに追加します. 
    1. DoubleClick for Publishers networkへ行く
    2. Adminタブをクリック
    3. API アクセスが有効であることを確認する
    4. サービスアカウント追加ボタンをクリックAdd service account user button screenshot.
    5. フォームを埋めますAdd service account user page screenshot.
    6. Save を押し、確認します。Add service account confirmation screenshot.
    7. 追加したいサービスアカウント分を繰り返します
    8.  Usersタブに追加されたのがわかります。View service account users screenshot.
  4. これでOAuth2.0認証によりサービスアカウントを使用して DFPネットワークにアクセスできるようになりました。 以下のサンプルでは、サービスアカウントを使用してOAuth 2.0 認証を行い、アクセストークンを取得、基本的なDFP APIを呼び出してサービスカウントに関連付けています。
  5. 
    
        // サービスアカウントの証明書を作成
        GoogleCredential credential = new GoogleCredential.Builder()
            .setTransport(new NetHttpTransport())
            .setJsonFactory(new GsonFactory())
            .setServiceAccountId(SERVICE_ACCOUNT_ID)
            .setServiceAccountScopes(ImmutableList.of(SCOPE))
            .setServiceAccountPrivateKeyFromP12File(new File(P12_FILE_PATH))
            .build();
        credential.refreshToken();
    
        // DfpSession セッションを開始.
        DfpSession session = new DfpSession.Builder()
            .fromFile()
            .withOAuth2Credential(credential)
            .build();
    
        DfpServices dfpServices = new DfpServices();
    
        runExample(dfpServices, session);
    
      

よく聞かれる質問

サービスアカウントでDFPのダッシュボードにログインできますか?
サービスアカウントはGoogleアカウントではありませんので、DFPのダッシュボードにはログインできません。

サービスアカウントのトークンはどのくらいの頻度で更新すべきですか?
アクセストークンは、OAuth2.0認証後の1時間で期限が切れます。その場合、クライアントライブラリにより新たにトークンを取得する必要があります。
サービスアカウントにはどのような役割を与えるべきでしょうか?
サービスアカウントの作成時にはできるだけ少ない役割に制限すべきです。
例えば、管理者権限によりサービスアカウントを作成した場合、第三者が利用することでアカウントの乗っ取りを行うことができるようになります。

0 コメント:

コメントを投稿