앱 및 웹사이트에서 자동 로그인 사용 설정

<ph type="x-smartling-placeholder">

비밀번호 대용 Smart Lock을 사용하는 앱이 또는 앱과 웹사이트에서 앱을 Google 로그인과 연결하여 사용할 수 있습니다. 사용자는 자신의 사용자 인증 정보를 한 번 저장하면 자동으로 두 계정 모두에 모두 합쳐집니다

앱을 웹사이트와 연결하려면 웹사이트의 디지털 애셋 링크 JSON 파일 디지털 애셋 링크 파일의 링크를 앱의 매니페스트에 추가

웹사이트에서 디지털 애셋 링크 선언을 호스팅하면 자동 완성을 공유하기 위한 웹사이트 앱에 데이터를 추가해야 할 수도 있습니다.

기본 요건

웹사이트의 로그인 도메인은 HTTPS를 통해 사용할 수 있어야 합니다.

앱과 웹사이트 연결하기

  1. 디지털 애셋 링크 JSON 파일을 만듭니다.

    예를 들어 웹사이트 https://signin.example.com 및 패키지 이름이 com.example인 Android 앱은 로그인을 공유할 수 있음 사용자 인증 정보가 있는 경우 다음을 사용하여 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 web
    site

    웹사이트의 URL입니다(형식: https://domain[:optional_port] 대상: 예를 들면 https://www.example.com입니다.

    domain는 정규화되어야 합니다. 포트 443을 사용하려면 optional_port를 생략해야 함 HTTPS를 사용합니다.

    site 타겟은 루트 도메인만 될 수 있으며 앱 연결을 특정 하위 디렉터리로 제한할 수 없습니다. 광고에 경로를 지정할 수 있습니다(예: 후행 슬래시).

    하위 도메인은 일치하는 것으로 간주하지 않습니다. 즉, domainwww.example.com으로 지정하면 도메인 www.counter.example.com은 앱과 연결되지 않습니다.

    다음은 Android 앱을 식별하기 위한 필드입니다.

    namespace android_app
    package_name 앱의 매니페스트에 선언된 패키지 이름입니다. 예: com.example.android
    sha256_cert_fingerprints 앱 서명 인증서의 SHA256 지문입니다. 다음과 같은 작업을 할 수 있습니다. 다음 명령어를 사용하여 지문을 생성합니다.
    $ keytool -list -v -keystore my-release-key.keystore

    디지털 애셋 링크 참조를 확인하세요. 참조하세요.

  2. 디지털 애셋 링크 JSON 파일을 로그인 도메인의 다음 위치에 호스팅합니다.

    https://domain[:optional_port]/.well-known/assetlinks.json

    예를 들어 로그인 도메인이 signin.example.com이면 https://signin.example.com/.well-known/assetlinks.json에서 JSON 파일을 호스팅합니다.

    디지털 애셋 링크 파일의 MIME 유형은 JSON이어야 합니다. 서버가 응답에 Content-Type: application/json 헤더를 전송하는지 확인합니다.

  3. Google이 디지털 애셋 링크 파일을 가져오도록 호스트에서 허용하는지 확인해야 합니다. robots.txt 파일이 있으면 이 파일을 통해 Googlebot 에이전트가 /.well-known/assetlinks.json을 가져올 수 있어야 합니다. 대부분의 사이트는 다른 서비스가 /.well-known/ 경로에 있는 파일의 메타데이터에 액세스할 수 있도록 자동화된 에이전트가 이러한 파일을 가져오는 것을 허용할 수 있습니다.

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

  4. Android 앱에서 연결을 선언합니다.

    1. <application> 아래 매니페스트 파일에 다음 줄을 추가합니다.

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. 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
      
  5. Google Play 스토어에 앱을 게시합니다. 공개적으로 출시되어야 함 연결 채널을 선택합니다.

  6. (선택사항) <ph type="x-smartling-placeholder"></ph> 비밀번호 대용 Smart Lock 제휴 양식을 사용하여 내가 참석했음을 알립니다. 도움이 됩니다. Google은 제휴 여부를 정기적으로 실제로 효과가 있고 문의 사항이 있을 경우 문제를 해결하는 데 도움이 됩니다

확인이 완료되면 앱 사용자가 사용자 인증 정보를 저장할 수 있습니다. 두 계정 모두에 자동으로 로그인됩니다.

예: 여러 앱을 웹사이트와 연결

디지털 애셋 링크 파일. 예를 들어 com.examplehttps://signin.example.com/의 사이트에 있는 앱 com.example.pro개, 지정 두 앱 모두 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"
    ]
  }
}]

그런 다음 두 앱에서 연결을 선언합니다.

  1. <application> 아래 매니페스트 파일에 다음 줄을 추가합니다.

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. 다음 문자열 리소스를 strings.xml 파일에 추가합니다.

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

예: 앱을 여러 웹사이트와 연결

디지털 애셋 링크 파일로 변환한 후 각 웹사이트에서 파일을 호스팅합니다. 예를 들어 com.examplecom.example.pro 앱을 https://signin.example.com/https://m.example.com/, 지정 http://www.example.com/ 등의 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"
    ]
  }
}]

그런 다음 https://m.example.com/.well-known/assetlinks.json, 기본 디지털 포함 애셋 링크 파일:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

마지막으로 두 앱에서 연결을 선언합니다.

  1. <application> 아래 매니페스트 파일에 다음 줄을 추가합니다.

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. 다음 문자열 리소스를 strings.xml 파일에 추가합니다.

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