アプリとウェブサイト間での自動ログインを有効にする

<ph type="x-smartling-placeholder">

Smart Lock for Passwords を使用するアプリがユーザーのデータベースを アプリやウェブサイトでフェデレーション ログイン プロバイダ( と関連付けて、そのアプリとウェブサイトを関連付けて、 一度認証情報を保存すると、ユーザーは Google アカウントと アクセスします

アプリをウェブサイトに関連付けるには、 ウェブサイト上の Digital Asset Links JSON ファイル アプリのマニフェストにデジタル アセット リンク ファイルへのリンクを追加します。

ウェブサイトでデジタル アセット リンクの申告をホストすると、 自動入力を共有する Android 8.0 以降で実行する場合、アプリのデータと一緒に使用する必要があります。

前提条件

ウェブサイトのログイン ドメインは HTTPS でアクセスできる必要があります。

アプリをウェブサイトに関連付ける

  1. デジタル アセット リンク JSON ファイルを作成します。

    たとえば、ウェブサイト https://signin.example.com と パッケージ名 com.example の Android アプリでログインを共有できます 次のコマンドで assetlinks.json という名前のファイルを作成します。 content:

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://signin.example.com"
      }
     },
     {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example",
        "sha256_cert_fingerprints": [
          "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
        ]
      }
     }]
    

    relation フィールドは、宣言される関係を記述する 1 つ以上の文字列の配列です。アプリとサイトがログイン認証情報を共有することを宣言するには、文字列 delegate_permission/common.get_login_creds を指定します。

    target フィールドは、宣言が適用されるアセットを指定するオブジェクトです。以下のフィールドではウェブサイトを識別します。

    namespace web
    site

    ウェブサイトの URL(形式) https://domain[:optional_port]、 例: https://www.example.com

    domain は完全修飾する必要があります。 ポート 443 を使用する場合は、optional_port を省略する必要があります。 提供します。

    site のターゲットにはルートドメインのみを指定できます。アプリの関連付けを特定のサブディレクトリに限定することはできません。名前に URL 内のパス(末尾のスラッシュなど)を付加します。

    サブドメインは一致とは見なされません。つまり、domainwww.example.com と指定した場合、ドメイン www.counter.example.com はアプリに関連付けられません。

    以下のフィールドでは Android アプリを識別します。

    namespace android_app
    package_name アプリのマニフェストで宣言されたパッケージ名。例: com.example.android
    sha256_cert_fingerprints アプリの署名証明書の SHA256 フィンガープリント。Google Chat では フィンガープリントを生成するには、次のコマンドを使用します。
    $ keytool -list -v -keystore my-release-key.keystore

    デジタル アセット リンクのリファレンスをご覧ください。 をご覧ください。

  2. デジタル アセット リンクの JSON ファイルを ログイン ドメイン:

    https://domain[:optional_port]/.well-known/assetlinks.json

    たとえば、ログイン ドメインが signin.example.com の場合は、JSON ファイルを https://signin.example.com/.well-known/assetlinks.json でホストします。

    デジタル アセット リンク ファイルの MIME タイプは JSON にする必要があります。サーバーがレスポンスで Content-Type: application/json ヘッダーを送信していることを確認します。

  3. ホストが Google にデジタル アセット リンク ファイルの取得を許可していることを確認します。robots.txt ファイルがある場合は、Googlebot エージェントに /.well-known/assetlinks.json の取得を許可する必要があります。ほとんどのサイトでは、許可するファイアウォール ルールを 自動エージェントが /.well-known/ パスのファイルを取得し、 サービスは、これらのファイルのメタデータにアクセスできます。

    User-agent: *
    Allow: /.well-known/
    

  4. Android アプリで関連付けを宣言します。

    1. マニフェスト ファイルの <application> に次の行を追加します。

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. asset_statements 文字列リソースを strings.xml ファイルに追加します。asset_statements 文字列は、読み込む assetlinks.json ファイルを指定する JSON オブジェクトです。文字列で使用するアポストロフィや引用符はエスケープする必要があります。例:

        <string name="asset_statements" translatable="false">
        [{
          \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
        }]
        </string>
      
        > GET /.well-known/assetlinks.json HTTP/1.1
        > User-Agent: curl/7.35.0
        > Host: signin.example.com
      
        < HTTP/1.1 200 OK
        < Content-Type: application/json
      
  5. アプリを Google Play ストアに公開します。一般に公開されている必要があります 関連付けを選択できます

  6. (省略可) <ph type="x-smartling-placeholder"></ph> Smart Lock for Passwords アフィリエーション フォーム」に続けて参加したことを伝える 見ていきますGoogle ではアフィリエイト関係が 正しく機能し、次のような場合にはご連絡させていただくことがあります。 学習します

検証が完了したら、アプリのユーザーは 自動的にその両方にログインされます。

例: 複数のアプリをウェブサイトに関連付ける

複数のアプリをウェブサイトに関連付けるには、 デジタル アセット リンク ファイル。たとえば、com.example と サイトが https://signin.example.com/ にある com.example.pro 個のアプリを、指定してください JSON ファイルに記述して、 https://signin.example.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

次に、両方のアプリで関連付けを宣言します。

  1. マニフェスト ファイルの <application> に次の行を追加します。

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. 次の文字列リソースを strings.xml ファイルに追加します。

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>
    

例: アプリを複数のウェブサイトに関連付ける

各ウェブサイトを デジタル アセット リンク ファイルを作成し、各ウェブサイトでそのファイルをホストします。たとえば、 com.example アプリと com.example.pro アプリを次のサイトに関連付ける https://signin.example.com/https://m.example.com/ の場合は、 JSON ファイルに記述して、両方のアプリと https://signin.example.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://m.example.com"
  },
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

次に、ホストされている JSON ファイルで https://m.example.com/.well-known/assetlinks.json、メインのデジタルを含めます アセットリンク ファイル:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

最後に、両方のアプリで関連付けを宣言します。

  1. マニフェスト ファイルの <application> に次の行を追加します。

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. 次の文字列リソースを strings.xml ファイルに追加します。

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>