Smart Lock for Passwords を使用するアプリがユーザーのデータベースを アプリやウェブサイトでフェデレーション ログイン プロバイダ( と関連付けて、そのアプリとウェブサイトを関連付けて、 一度認証情報を保存すると、ユーザーは Google アカウントと アクセスします
アプリをウェブサイトに関連付けるには、 ウェブサイト上の Digital Asset Links JSON ファイル アプリのマニフェストにデジタル アセット リンク ファイルへのリンクを追加します。
ウェブサイトでデジタル アセット リンクの申告をホストすると、 自動入力を共有する Android 8.0 以降で実行する場合、アプリのデータと一緒に使用する必要があります。
前提条件
ウェブサイトのログイン ドメインは HTTPS でアクセスできる必要があります。
アプリをウェブサイトに関連付ける
デジタル アセット リンク 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フィールドは、宣言が適用されるアセットを指定するオブジェクトです。以下のフィールドではウェブサイトを識別します。namespacewebsiteウェブサイトの URL(形式)
https://domain[:optional_port]、 例:https://www.example.comdomain は完全修飾する必要があります。 ポート 443 を使用する場合は、optional_port を省略する必要があります。 提供します。
siteのターゲットにはルートドメインのみを指定できます。アプリの関連付けを特定のサブディレクトリに限定することはできません。コメントに URL 内のパス(末尾のスラッシュなど)を付加します。サブドメインは一致とは見なされません。つまり、domain を
www.example.comと指定した場合、ドメインwww.counter.example.comはアプリに関連付けられません。以下のフィールドでは Android アプリを識別します。
namespaceandroid_apppackage_nameアプリのマニフェストで宣言されたパッケージ名。例: com.example.androidsha256_cert_fingerprintsアプリの署名証明書の SHA256 フィンガープリント。Google Chat では フィンガープリントを生成するには、次のコマンドを使用します。 $ keytool -list -v -keystore my-release-key.keystore
デジタル アセット リンクのリファレンスをご覧ください。 をご覧ください。
デジタル アセット リンクの 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ヘッダーを送信していることを確認します。ホストが Google にデジタル アセット リンク ファイルの取得を許可していることを確認します。
robots.txtファイルがある場合は、Googlebot エージェントに/.well-known/assetlinks.jsonの取得を許可する必要があります。ほとんどのサイトでは、自動エージェントに/.well-known/パス内のファイルの取得を許可するだけで、他のサービスがこれらのファイルのメタデータにアクセスできるようになります。User-agent: * Allow: /.well-known/
Android アプリで関連付けを宣言します。
マニフェスト ファイルの
<application>に次の行を追加します。<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />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
アプリを Google Play ストアに公開します。一般に公開されている必要があります 関連付けを選択できます
(省略可) <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"
]
}
}]
次に、両方のアプリで関連付けを宣言します。
マニフェスト ファイルの
<application>に次の行を追加します。<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />次の文字列リソースを
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"
}]
最後に、両方のアプリで関連付けを宣言します。
マニフェスト ファイルの
<application>に次の行を追加します。<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />次の文字列リソースを
strings.xmlファイルに追加します。<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>