クロス プラットフォームでのシームレスな認証情報共有を可能にすることで、ユーザーの利便性を最大限に高める アプリとウェブサイト全体にわたり複数のウェブサイトと Android アプリで同じ 認証情報を保存し、必要に応じて認証情報を リンクされたウェブサイトや Android アプリで自動的に候補として提示することもできます。
ベスト プラクティス
最適なユーザー エクスペリエンスとセキュリティのために、シームレスな認証情報の共有を実装する 次のタッチポイントで活用できます
- ログイン フォーム: 認証情報の自動入力を有効にします。
- 登録フォーム: 新しい認証情報を安全に保存して、複数のプラットフォームで使用できます。
- パスワード変更フォーム: すべてのプラットフォームでパスワードの更新を同期します。
- パスワードの再設定フォーム: すべてのプラットフォームを更新するために、1 回のパスワードの再設定を許可します。
- WebView ドメイン: 認証情報の共有を組織内の WebView ドメインに拡張 アカウント管理(ホストログイン、登録、パスワード 変更、パスワードリセットのフォームなど)が含まれます。
- Android アプリ
このアプローチにより、統合された認証情報管理システムが構築され、 セキュリティを確保できます。
アカウント管理用のウェブサイトをデザインする際は、 アカウント管理サイトのベスト プラクティス:
Android アプリを設計する際は、アプリを Android 認証情報マネージャーと統合することをおすすめします。
前提条件
シームレスな認証情報の共有を設定する前に、次のものが揃っていることを確認してください プラットフォームごとに異なります。
Android アプリごとに次の操作を行います。
- アプリの
build.gradle
ファイルで宣言されている Android アプリケーション ID。 - 署名証明書の SHA256 フィンガープリント。
- (推奨)認証情報マネージャー API を使用して実装されたユーザー ログイン。
各ウェブサイトについて:
- それぞれに対して
/.well-known/assetlinks.json
ファイルを公開できる Digital Asset Links(DAL)構文に従って、ドメインの所有権を証明します。 - すべてのアカウント管理ドメイン(ログイン、登録、パスワードの変更、パスワード) HTTPS 経由でアクセスできる必要があります。
Android アプリとウェブサイト間でのシームレスな認証情報の共有
アプリやウェブサイト間でのシームレスな認証情報の共有を設定するには、 デジタル アセット リンクのステートメント リストを公開し、 エンティティ(ウェブサイトまたは Android アプリ)が認証情報を共有することを許可されている。
認証情報の共有関係を宣言するには:
ウェブサイトにリンクするステートメントを含む
assetlinks.json
ファイルを作成します。 Android アプリに対して、DAL ステートメント リスト構文に沿って追加します。[ { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"web", "site":URL } }, { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"android_app", "package_name":"APP_ID", "sha256_cert_fingerprints":[ "SHA_HEX_VALUE" ] } } ]
ここで、
URL
はサイトの URL です。APP_ID
は Android アプリケーション ID です。SHA_HEX_VALUE
は、SHA256 フィンガープリントです。 Android アプリの署名証明書。relation
フィールドには、宣言する関係を記述します。宣言する アプリやサイトがログイン認証情報を共有することを許可する場合は、delegate_permission/common.get_login_creds
。詳細: DAL のリレーション文字列。target
フィールドは、宣言のアセットを指定するオブジェクトです。 選択します以下のフィールドではウェブサイトを識別します。
namespace
web
site
ウェブサイトの URL(
https://domain[:optional_port
] の形式)。(例: https://www.example.com)です。domain
は完全修飾する必要があります。HTTPS にポート 443 を使用する場合は、optional_port
を省略する必要があります。site
のターゲットにはルートドメインのみを指定できます。アプリの関連付けを特定のサブディレクトリに限定することはできません。URL にパス(末尾のスラッシュなど)を含めないでください。サブドメインは一致とは見なされません。つまり、
domain
を www.example.com と指定した場合、ドメイン www.counter.example.com はアプリに関連付けられません。以下のフィールドでは Android アプリを識別します。
namespace
android_app
package_name
アプリのマニフェストで宣言されたパッケージ名。例: com.example.android
sha256_cert_fingerprints
アプリの署名証明書の SHA256 フィンガープリント。
デジタル アセット リンクの JSON ファイルを ログイン ドメイン:
https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json
(DOMAIN
は完全修飾名、 ポート 443 を使用する場合は、OPTIONAL_PORT
を省略する必要があります。 提供します。Android アプリで関連付けを宣言するには、 ステートメント リストにリンクされている Android アプリの
res/values/strings.xml
ファイル ステップ 1 で作成したファイルを使用します。assetlinks.json
ファイルを指定するオブジェクトを追加して、 負荷を軽減できます。例:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json\" }] </string>
DOMAIN
を置き換え、OPTIONAL_PORT
(ポートを使用する場合は省略する必要があります) 443)を指定します(例:https://www.example.com
)。アポストロフィはエスケープしてください 引用符で囲む必要があります以下に示すように、
strings.xml
ファイルに JSON スニペットを追加することもできます。 DAL のドキュメントをご覧ください。ただし、include
ステートメントを使用すると、 変更ステートメントを、アプリの新しいバージョンを公開せずに使用できます。次の行を追加して、マニフェストのステートメントを参照します。
<application>
にあるアプリのAndroidManifest.xml
ファイル:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
新しいバージョンの Android アプリを Google Play デベロッパーに公開する コンソール
これらの手順を完了すると、シームレスな認証情報が正常に設定されます ウェブサイトと Android アプリ間で共有する方法。
これは、認証情報の共有用に DAL を設定する唯一の有効な方法ではありません。 この方法を使用すると、以降の新しいエンティティを シームレスな認証情報共有ネットワークを実現し、コードの再利用性を高め、 更新中のエラーの可能性が高まります。