このドキュメントでは、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 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。
- アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。登録すると、後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google API Console で Google Site Verification API を有効にします(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
- アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
- アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
- 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(International Domain Name)エンコードをサポートしていません。すべての URL、ドメイン名、メールアドレスのドメインを、必要に応じて Punycoding を使用して標準のドメイン名文字セット(RFC 1034 §3.5)に正規化してください。
確認方法とトークン
この API は、オーナー確認の各フェーズで呼び出しを行います。
- 確認トークンの配置: 認証済みユーザーのサイトに配置する確認トークンを取得するための API 呼び出しがあります。ユーザーが複数のサイトを所有している場合は、サイトごとに異なるトークンを取得する必要があります。
- 確認トークンの有無の確認: 認証されたユーザーがサイトを所有していることを確認するために、Google にトークンのチェックをリクエストする別の API 呼び出しがあります。
アプリケーションで使用できるウェブサイトまたはドメインの所有権を証明するには、いくつかの方法があります。要件に最適なものを選択してください。トークンの配置場所とトークン自体の種類は、選択する確認方法によって異なります。
ドメインの所有権の確認方法
ドメインの所有権を証明するには、次の 2 つの方法があります。
- DNS_CNAME
-
アプリケーションが、レコードデータのトークンを使用して、オーナーのドメインに新しい 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
詳しくは、ヘルプセンターのファイルの確認方法をご覧ください。
- Meta
-
このトークンは、オーナーのサイトの最上位にあるデフォルト ファイル(index.html、default.html など)の
<head>
要素内に HTML<meta>
タグの形式で挿入します。メタ検証トークンを含む HTML ファイルは次のようになります。<html> <head> <title>Awesome Dive Sites</title> <meta name="google-site-verification" content="-dhsoFQadgDKJR7BsB6bc1j5yfqjUpg_b-1pFjr7o3x" /> </head> <body> ...
詳しくは、ヘルプセンターのメタによる確認方法をご覧ください。
- アナリティクス
-
アプリでは、所有者のウェブサイトにすでに存在する既存の Google アナリティクス トラッキング コードを使用しています。トラッキング コードが機能するには、トラッキング コードがその人のアナリティクス アカウントに属している必要があり、スニペットが HEAD タグ内に設置されている必要があります。詳しくは、ヘルプセンターの アナリティクスの確認方法をご覧ください。
- タグ マネージャー
-
所有者のウェブサイトにある既存の Google タグ マネージャー コンテナコードをアプリケーションで使用します。コンテナコードは、使用するタグ マネージャー アカウントに属している必要があります。詳しくは、ヘルプセンターの タグ マネージャーの確認方法をご覧ください。
最初にサイト確認ユーザー インターフェースを使用していくつかのサイトを手動で確認する場合、基本的なコンセプトやワークフローを理解するのに役立ちます。
データモデル
ウェブリソース
Google Site Verification API は、ウェブリソースと呼ばれるエンティティに REST セマンティクス(HTTP GET
、POST
など)を適用します。ウェブリソースとは、認証されたユーザーに属するウェブサイトまたはドメインです。
ウェブリソースの例を次に示します。
{ "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 を使用してアクセスすることはできません。