スタートガイド

このドキュメントでは、Google Site Verification API を使用するために必要な背景知識について詳しく説明します。

はじめに

Google Site Verification API は、サイトまたはドメインの所有権を証明するプロセスを自動化するアプリケーションやサービスを作成するデベロッパーを対象としています。一部の Google サービスはウェブサイトまたはドメインの所有者のみが使用できるため、この確認は重要です。Google Site Verification API を使用すると、認証済みのユーザーがドメインまたはサイトの所有者であることを検証できます。これは、他の Google サービスをプログラムでプロビジョニングする最初のステップでもかまいません。

このドキュメントは、ウェブ プログラミングの概念、ウェブデータ形式に精通していること、ウェブサイトまたはドメインのファイルまたは DNS レコードをプログラムで変更できることを前提としています。

概要

Google Site Verification API を使用して、ユーザーの Google サイト確認データを変更できます。ユーザーは、確認データから、特定のウェブサイト ドメインの所有者であることが示されている場合にのみ、特定の Google サービスにアクセスできます。API を使用すると、認証済みユーザーの確認トークンを生成できます。このトークンは、ユーザーに代わってコードやウェブサイトやドメイン レコードに配置できます。トークンを挿入したら、API を呼び出して Google にトークンの確認をリクエストします。トークンが見つかった場合、Google は認証済みユーザーをウェブサイトまたはドメインの所有者として登録します。また、API を使用して、ユーザーに代わって所有権リストを変更したり、サイト所有権を完全に削除したりすることもできます。

すべての API 呼び出しは、認証済みのユーザーによって承認される必要があり、すべての API 呼び出しは認証済みのユーザー アカウントのコンテキストで実行されます。

この API を使用する具体的な例として、ウェブ ホスティング サービスを提供しているとします。ユーザーが、Google の Search Console を使用してサイトに関する情報を取得したいと考えています。そのためには、所有者が Google であることを本当に知る必要があります。サイトの所有権を確認するインターフェースをユーザーに提供します。アプリケーションが検証データへのアクセス権を付与されると、アプリケーションはトークンをリクエストしてコードをリクエストし、それをサイトの構造内のファイルに配置して、Google にチェックを求めます。Google はトークンを検出すると、確認データを更新してそのサイトの所有権をユーザーに付与します。Search Console を使用して必要な情報を取得できるようになりました。

始める前に

Google アカウントを取得する

Google アカウントが設定済みであることを確認します。偶発的なデータ損失からの保護のために、開発とテストの目的で別の Google アカウントを使用することをおすすめします。

サイト確認について

Google Site Verification API のコンセプトになじみがない場合は、まずこのドキュメントをお読みください。また、ベリフィケーション ユーザー インターフェースをお試しになり、関連するヘルプ ドキュメントをお読みになったうえでコードの作成を開始してください。

リクエストの承認方法の詳細

アプリケーションが Google Site Verification API に送信するリクエストにはすべて、認証トークンが含まれている必要があります。このトークンは Google でアプリケーションを識別するためにも使用されます。

認証プロトコルについて

リクエストを承認するために、アプリケーションは OAuth 2.0 を使用する必要があります。これ以外の認証プロトコルには対応していません。アプリケーションで Google でログインを使用する場合、いくつかの承認が行われます。

OAuth 2.0 を使ったリクエストの承認

Google Site Verification API へのすべてのリクエストは、認証済みのユーザーによって承認される必要があります。

OAuth 2.0 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。

  1. アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
  2. Google API Console で Google Site Verification API をアクティベーションします。(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
  3. アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
  4. データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
  5. ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
  6. アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
  7. Google によりリクエストとトークンが有効であると判断されると、リクエストしたデータが返されます。

プロセスによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。

Google Site Verification API の OAuth 2.0 のスコープ情報は次のとおりです。

範囲 意味
https://www.googleapis.com/auth/siteverification 既存の確認済みサイトに対する完全な読み取りアクセス権、新しいサイトの確認機能
https://www.googleapis.com/auth/siteverification.verify_only 新しいサイトの確認が可能。既存の確認済みサイトに対する読み取りアクセス権がない。

OAuth 2.0 を使用してアクセスをリクエストする場合、アプリケーションを登録したときに Google から提供された情報(クライアント ID やクライアント シークレットなど)に加えて、スコープ情報が必要になります。

ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。これらのライブラリはさまざまなプログラミング言語で用意されています。詳細については、ライブラリとサンプルのページをご覧ください。

Google Site Verification API の背景

コンセプト

Google Site Verification API を使用すると、次の種類のウェブリソースに対するユーザー所有権を確立できます。

  • ドメイン: ドメインまたはサブドメイン。ドメインの所有者は、そのドメイン内のすべてのサイトとサブドメインの所有者と見なされます。たとえば、bar.com の直接のオーナーは foo.bar.com の間接的なオーナーでもあります。
  • サイト: ウェブサイトのベースドメインとパスに対応する URL。サイトの所有者はそのサイトのすべての所有者と見なされます。たとえば、「http://www.example.com/site」の所有者も「http://www.example.com/site/subsite」の所有者とみなされます。

ドメインの所有権はサイトの所有権よりも広範囲にわたるため、可能な限り、ドメインの所有権を証明することをおすすめします。

所有権を確立するプロセスは、アプリケーションがユーザーに代わって「確認トークン」をリクエストすることから始まります。確認トークンは特別な文字列で、コードがウェブサイトまたはドメインに配置されている必要があります。トークンを設定すると、アプリケーションは Google Site Verification API に対してリクエストを実行できます。API はトークンを確認し、トークンが見つかったら所有権を記録します。

制限事項

セキュリティ上の理由と技術的な理由から、Google Site Verification API を使用する場合は、いくつかの制限があります。

  • 認証済みユーザーのみのデータアクセス: すべての操作でユーザーの認証と承認が必要です。
  • 認証されたユーザーの確認のみ: この API で確認できるのは、現在認証済みのアカウントのサイトまたはドメインのみです。認証されたユーザーは、サイトの所有権が確認された後に他のユーザーに所有権を委任できます。所有権リストに変更が加えられると、すべての所有者にメールで通知されます。
  • 正規化された URL とドメイン名のみ。Google Site Verification API では、IDN(国際ドメイン名)エンコードはサポートされていません。必要に応じて、すべての URL、ドメイン名、メールアドレスのドメインを Punycoding を使用して標準のドメイン名文字セット(RFC 1034 § 3.5)に正規化してください。

確認方法とトークン

API により、別個にオーナー確認が行われます。

  • 確認トークンの配置: 確認用トークンを取得して、認証済みユーザーのサイトに配置するための API 呼び出しがあります。ユーザーが複数のサイトを所有している場合は、サイトごとに異なるトークンを取得する必要があります。
  • 確認トークンの有無のチェック: 認証されたユーザーがサイトを所有しているかを確認するために Google にトークンの確認を依頼する API 呼び出しが別途用意されています。

アプリケーションで使用できるウェブサイトまたはドメインを確認するには、いくつかの方法があります。どの方法を選択するかは、要件に応じて異なります。トークンを配置する場所とトークン自体のタイプは、選択した確認方法によって異なります。

ドメインの確認方法

ドメインに使用できる確認方法は 2 つあります。

DNS ドメイン名

アプリケーションは、レコード データのトークンを使用して、ドメイン登録事業者を通じて所有者のドメイン用に新しい CNAME レコードを作成します。トークンはスペースで区切られた 2 つの部分で構成され、最初の部分は新しい CNAME レコードの名前、2 番目の部分は新しい CNAME レコードの値です。

DNS_TXT

アプリケーションは、レコードデータのトークンを使用して、所有者のドメインに対する新しい TXT レコードを(場合によってはドメイン登録事業者を通じて)作成します。

詳しくは、DNS の確認方法についてのヘルプセンター記事をご覧ください。

サイトの確認方法

サイトには次の 3 つの確認方法があります。

ファイル
アプリケーションは、トークンをファイルの形式でオーナーのウェブサイトに配置します。トークン文字列に一致する名前で、次の内容のファイルを作成する必要があります。
google-site-verification: token

たとえば、ユーザーがサイト http://www.example.com/ を所有し、返されたトークンが google12cfc68677988bb4.html である場合、単に http://www.example.com/google12cfc68677988bb4.html(サイトの最上位レベル)に次の内容のファイルを作成する必要があります。

google-site-verification: google12cfc8677988bb4.html

詳しくは、ファイルの確認方法についてのヘルプセンター記事をご覧ください。

メタ

アプリケーションがトークンを HTML <meta> タグの形式で、オーナーのサイトの最上位にあるデフォルト ファイル(index.html、default.html など)の <head> 要素に挿入します。メタ検証トークンを含む HTML ファイルは次のようになります。

<html>
  <head>
    <title>Awesome Dive Sites</title>
    <meta name="google-site-verification" content="-dhsoFQadgDKJR7BsB6bc1j5yfqjUpg_b-1pFjr7o3x" />
  </head>
  <body>
    ...

詳しくは、メタ検証の方法に関するヘルプセンター記事をご覧ください。

分析

所有者のウェブサイトにすでに存在する既存の Google アナリティクス トラッキング コードが使用されている。トラッキング コードはそれぞれのアナリティクス アカウントに属し、スニペットは HEAD タグ内に配置する必要があります。詳しくは、Google アナリティクスの確認方法に関するヘルプセンター記事をご覧ください。

タグ マネージャー

所有者のウェブサイトにすでに存在する既存の Google タグ マネージャー コンテナコードをアプリケーションが使用している。コンテナコードは、タグ マネージャーのアカウントに属している必要があります。詳しくは、タグ マネージャーによる確認方法に関するヘルプセンター記事をご覧ください。

まずは、サイト確認のユーザー インターフェースを使っていくつかのサイトを手動で確認しようとすると、基本コンセプトやワークフローを理解しやすくなります。

データモデル

ウェブリソース

Google Site Verification API では、REST セマンティクス(HTTP GETPOST など)をウェブリソースと呼ばれるエンティティに適用します。ウェブリソースは、認証済みユーザーに属するウェブサイトまたはドメインです。

以下に、ウェブリソースの例を示します。

{
  "owners": [
    "myself@example.com",
    "another@example.com"
  ],
  "id": "http%3A%2F%2Fwww.example.com%2F",
  "site": {
    "identifier": "http://www.example.com/",
    "type": "SITE"
  }
}

id フィールドは、このウェブリソースの一意の識別子です。このリソースを使用して、取得と変更を行うためにこの特定のウェブリソースを参照します。list オペレーションの出力の id フィールドを、後で識別子として使用するために保存します。

site オブジェクトには、ウェブリソースの URL またはドメイン名と、リソースの種類が含まれています。サイトのタイプは SITE に、ドメインは INET_DOMAIN のタイプに指定されます。

owners 配列は、ウェブリソースの所有者の完全なリストであり、メールアドレスで表されます。認証済みユーザーがメールアドレスを所有者リストから追加または削除すると、他のユーザーの共同所有者権限を付与したり、他のユーザーの所有権を取り消したりすることができます。サイトまたはドメインに独自のトークンを配置した追加の所有者も、共同所有者とともに所有者リストに表示されます。

共同所有者権限を付与されているユーザーは、サイト上でトークンを持つ確認済み所有者が 1 人以上いる限り、共同所有者も付与できます。

ウェブリソースの収集

ウェブリソース コレクションとは、認証済みユーザーに属するすべてのウェブリソースを網羅したリストです。サイトまたはドメインの所有権を確認するには、認証済みのユーザーのウェブリソース コレクションに新しいウェブリソースを追加します。確認済みのサイトまたはドメインのみがコレクションに追加されます。

制限事項のセクションで説明したように、認証済みユーザー以外のユーザーに属するウェブリソースには、Site Verification API からはアクセスできません。