예: 여러 웹사이트 및 여러 Android 앱에서 사용자 인증 정보 공유

여러 웹사이트와 여러 Android 앱에서 사용자 인증 정보 공유를 설정하려면 다음을 실행해야 합니다.

  • 기본 도메인 지정: 링크의 기본 참조 지점으로 사용할 URL 하나를 선택합니다.
  • assetlinks.json 파일 만들기:
    • 기본 도메인: 사용자 인증 정보를 공유하는 모든 도메인이 나열된 assetlinks.json 파일을 기본 도메인에 만듭니다.
    • 기타 도메인: 각 다른 도메인에 기본 도메인으로 다시 연결되는 assetlinks.json 파일을 만듭니다.
  • 각 앱의 매니페스트에서 디지털 애셋 연결 구성: 각 앱이 기본 도메인의 assetlinks.json 파일로 다시 연결되도록 설정합니다.

다음 예에서는 example.com을 기본 도메인으로 지정했으며 나열된 다른 모든 도메인은 example.com과 서로 인증 정보를 공유합니다.

패키지 이름이 다음과 같은 두 앱도 모든 웹사이트 및 웹사이트 간에 사용자 인증 정보를 공유합니다.

  • com.example.android.myapplication
  • com.example.appname

사용자 인증 정보 공유를 설정하기 전에 기본 요건을 완료해야 합니다.

이러한 웹사이트와 Android 앱에서 사용자 인증 정보 공유를 선언하려면 다음 단계를 따르세요.

  1. 다음 콘텐츠로 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"
          ]
        }
      }
    ]
    
  2. 기본 도메인의 상응하는 잘 알려진 위치(이 경우 https://example.com/.well-known/assetlinks.json)에서 디지털 애셋 링크 JSON 파일을 호스팅합니다.

  3. 다음 콘텐츠로 assetlinks.json 파일을 하나 더 만듭니다.

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "example.com"
        }
      }
    ]
    
  4. 이 디지털 애셋 링크 JSON 파일의 사본을 다른 도메인의 다음 위치에 호스팅합니다(이 경우 다음 위치).

    • example.org/.well-known/assetlinks.json
    • example.net/.well-known/assetlinks.json
    • mypersonaldomain.com/.well-known/assetlinks.json
  5. <application> 아래 두 Android 앱 매니페스트 파일에 다음 줄을 추가합니다.

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  6. Android 앱에서 연결을 선언하여 매니페스트에서 디지털 애셋 연결을 구성합니다. 로드할 assetlinks.json 파일을 지정하는 객체를 추가합니다. 이 경우에는 다음과 같습니다.

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

이 단계를 완료하면 여러 웹사이트와 Android 앱에서 원활한 사용자 인증 정보 공유가 설정됩니다.