複数のウェブサイトと複数の Android アプリ間で認証情報の共有を設定するには、次の要件を満たす必要があります。
- プライマリ ドメインを指定: リンクのプライマリ参照ポイントとして 1 つの URL を選択します。
assetlinks.json
ファイルを作成する:- プライマリ ドメイン: 認証情報を共有するすべてのドメインを一覧表示する
assetlinks.json
ファイルをプライマリ ドメインに作成します。 - その他のドメイン: 他の各ドメインに
assetlinks.json
ファイルを作成し、それぞれをプライマリ ドメインにリンクします。
- プライマリ ドメイン: 認証情報を共有するすべてのドメインを一覧表示する
- 各アプリのマニフェストでデジタル アセットリンクを構成する: プライマリ ドメインの
assetlinks.json
ファイルにリンクするように各アプリを設定します。
次の例では、example.com をプライマリ ドメインとして指定し、リスト内の他のすべてのドメインは example.com と相互に認証情報を共有します。
- example.com(プライマリ ドメイン)
- example.org
- example.net
- myownpersonaldomain.com
次のパッケージ名を持つ 2 つのアプリも、すべてのウェブサイトとウェブサイト間で認証情報を共有します。
com.example.android.myapplication
com.example.appname
認証情報の共有を設定する前に、前提条件を満たす必要があります。
これらのウェブサイトと Android アプリ間で認証情報を共有することを宣言するには:
次の内容の
assetlinks.json
ファイルを作成します。[ { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://example.com" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://example.org" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://example.net" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://myownpersonaldomain.com" } }, { "relation" : [ "delegate_permission/common.get_login_creds" ], "target" : { "namespace" : "android_app", "package_name" : "com.example.android.myapplication", "sha256_cert_fingerprints" : [ "AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00" ] } }, { "relation" : [ "delegate_permission/common.get_login_creds" ], "target" : { "namespace" : "android_app", "package_name" : "com.example.appname", "sha256_cert_fingerprints" : [ "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF" ] } } ]
デジタル アセット リンクの JSON ファイルを、プライマリ ドメインの対応する既知の場所(この場合は
https://example.com/.well-known/assetlinks.json
)でホストします。次の内容の別の
assetlinks.json
ファイルを作成します。[ { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "example.com" } } ]
この Digital Asset Links JSON ファイルのコピーを、他のドメインの次の場所にホストします(この例では、
example.org/.well-known/assetlinks.json
example.net/.well-known/assetlinks.json
mypersonaldomain.com/.well-known/assetlinks.json
両方の Android アプリ マニフェスト ファイルの
<application>
に次の行を追加します。<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
Android アプリで関連付けを宣言して、マニフェストでデジタル アセットのリンクを構成します。読み込む
assetlinks.json
ファイルを指定するオブジェクトを追加します。次のような場合があります。<string name="asset_statements" translatable="false"> [{ \"include\": \"https://example.com/.well-known/assetlinks.json\" }] </string>
上記の手順を完了すると、複数のウェブサイトと Android アプリ間で認証情報をシームレスに共有できるようになります。