在 Chrome 中实现跨网站无缝共享凭据的功能

如果您使用多个共享同一账号管理后端的网域,现在还可以声明这些网域可以共享凭据,以便用户只需保存一次凭据,Chrome 密码管理工具就会在用户访问任何关联的网站时向其提供这些凭据。

Milica Mihajlija
Milica Mihajlija

Chrome 的密码管理工具目前已在以下两种情况下为保存了凭据的网站自动填充凭据:

  • 如果两个网站之间存在同一网站关系,并且其中一个网站上至少保存了一条凭据,Chrome 会显示另一个网站的自动填充凭据。例如,由于 www.example.comm.example.com 是同一网站,因此 Chrome 可以在两个网站之间共享已保存的凭据,并向另一个网站建议已保存的密码。
  • 当开发者将 Android 应用与使用相同凭据的网站相关联时,Chrome 可能会在该网站上建议 Android 凭据。应用使用 Digital Asset Links (DAL) 与网站相关联。

现在,您还可以将网站建立跨网站关联,让用户只需保存一次凭据,密码管理工具就会在用户访问任何关联网站时向其提供这些凭据。

如果您使用多个共用相同账号管理后端的网域(例如 https://www.example.comhttps://www.example.co.uk)),则从版本 91 开始,您可以让 Chrome 建议保存到与数字资产关联的网域的密码。

如需建立 DAL 关联,开发者需要在相应网域的 /.well-known/assetlinks.json 中放置遵循 DAL 语法的 JSON 文件。

前提条件

  • 使用 Chrome 91 或更高版本。
  • 确保在 chrome://settings/passwords 中开启“提示保存密码”。
  • 确保您的网站的登录网域可通过 HTTPS 访问。

设置两个网站之间的无缝凭据共享

  1. 如需声明网站(例如 https://www.example.com,)可以与 https://www.example.co.uk 共享凭据,请使用以下内容创建一个名为 assetlinks.json 的文件:

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://www.example.com"
      }
     },
    {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://www.example.co.uk"
      }
    }]
    

    relation 字段是包含一个或多个字符串的数组,用于描述网站之间的关系。对于要共享登录凭据的网站,请指定字符串 delegate_permission/common.get_login_credstarget 字段是一个对象,用于指定声明所适用的资产。以下字段用于标识网站:

    namespace 对于网站,必须为 web
    site 网站的网址,格式为 https://domain[:optional_port],例如 https://www.example.com

    如需了解详情,请参阅数字资产链接参考文档

  2. 将这个 Digital Asset Links JSON 文件托管在登录网域中的以下位置:https://domain[:optional_port]/.well-known/assetlinks.json

    在此示例中,网域为 www.example.com,因此 JSON 文件应托管在 https://www.example.com/.well-known/assetlinks.json 上。

    Digital Asset Links 文件的 MIME 类型需为 JSON。确保服务器在响应中发送 Content-Type: application/json 标头。

  3. 如需在两个网站中声明关联,请在 https://www.example.co.uk/.well-known/assetlinks.json 上托管 assetlinks.json

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://www.example.com"
      }
     },
    {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://www.example.co.uk"
      }
    }]
    
  4. 确保您的主机允许 Google 检索您的 Digital Asset Links 文件。如果您有 robots.txt 文件,它必须允许 Googlebot 代理检索 /.well-known/assetlinks.json。大多数网站可以允许任何自动化代理检索 /.well-known/ 路径下的文件,以便其他服务可以访问这些文件中的元数据:

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

设置在多个网站中共享凭据

您可以在 Digital Asset Links 文件中指定每个网站,以便在多个网站之间实现无缝的凭据共享。例如,如需关联 example.comexample.co.uk,example.co.jp,请在 assetlinks.json JSON 文件中指定所有这些网站,并将其托管在每个网站的 https://EXAMPLE_DOMAIN_NAME/.well-known/assetlinks.json 位置。

[{
     "relation":[
        "delegate_permission/common.get_login_creds"
     ],
     "target":{
        "site":"https://www.example.com",
        "namespace":"web"
     }
  },
  {
     "relation":[
        "delegate_permission/common.get_login_creds"
     ],
     "target":{
        "site":"https://www.example.co.uk",
        "namespace":"web"
     }
  },
  {
     "relation":[
        "delegate_permission/common.get_login_creds"
     ],
     "target":{
        "site":"https://www.example.co.jp",
        "namespace":"web"
     }
  }]

详细了解凭据共享: