예: 여러 웹사이트 및 여러 Android 앱에서 사용자 인증 정보 공유
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
여러 웹사이트와 여러 Android 앱에서 사용자 인증 정보 공유를 설정하려면 다음을 실행해야 합니다.
- 기본 도메인 지정: 링크의 기본 참조 지점으로 사용할 URL 하나를 선택합니다.
assetlinks.json
파일 만들기:
- 기본 도메인: 사용자 인증 정보를 공유하는 모든 도메인이 나열된
assetlinks.json
파일을 기본 도메인에 만듭니다.
- 기타 도메인: 각 다른 도메인에 기본 도메인으로 다시 연결되는
assetlinks.json
파일을 만듭니다.
- 각 앱의 매니페스트에서 디지털 애셋 연결 구성: 각 앱이 기본 도메인의
assetlinks.json
파일로 다시 연결되도록 설정합니다.
다음 예에서는 example.com을 기본 도메인으로 지정했으며 나열된 다른 모든 도메인은 example.com과 서로 인증 정보를 공유합니다.
패키지 이름이 다음과 같은 두 앱도 모든 웹사이트 및 웹사이트 간에 사용자 인증 정보를 공유합니다.
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"
]
}
}
]
기본 도메인의 상응하는 잘 알려진 위치(이 경우 https://example.com/.well-known/assetlinks.json
)에서 디지털 애셋 링크 JSON 파일을 호스팅합니다.
다음 콘텐츠로 assetlinks.json
파일을 하나 더 만듭니다.
[
{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "example.com"
}
}
]
이 디지털 애셋 링크 JSON 파일의 사본을 다른 도메인의 다음 위치에 호스팅합니다(이 경우 다음 위치).
example.org/.well-known/assetlinks.json
example.net/.well-known/assetlinks.json
mypersonaldomain.com/.well-known/assetlinks.json
<application>
아래 두 Android 앱 매니페스트 파일에 다음 줄을 추가합니다.
<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 앱에서 원활한 사용자 인증 정보 공유가 설정됩니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-25(UTC)
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[],[],null,["# Example: Share credentials across multiple websites and multiple Android apps\n\nTo set up credential sharing across multiple websites and multiple Android apps\nyou must:\n\n- **Designate a primary domain**: Choose one URL as the primary reference point for links.\n- **Create `assetlinks.json` files** :\n - **Primary domain** : Create an `assetlinks.json` file on your primary domain that lists all domains sharing credentials.\n - **Other domains** : Create an `assetlinks.json` file on each of the other domains, each linking back to the primary domain.\n- **Configure digital asset linking in each App's manifest** : Set up each app to link back to the `assetlinks.json` file in the primary domain.\n\n| **Important:** While Google treats credential sharing relationships as transitive, individual [Digital Asset Links are\n| not](https://developers.google.com/digital-asset-links/reference/rpc/google.digitalassetlinks.v1).\n\nIn the following example, we designated\n[example.com](https://example.com/) as the primary domain, and all other\nlisted domains share credentials with\n[example.com](https://example.com/) and across themselves.\n\n- [example.com](https://example.com/) (primary domain)\n- [example.org](https://example.jp/)\n- [example.net](https://example.de/)\n- [myownpersonaldomain.com](http://myownpersonaldomain.com)\n\nThe two apps with the following package names also share credentials with all\nthe websites and between them:\n\n- `com.example.android.myapplication`\n- `com.example.appname`\n\nBefore setting up credential sharing you must [complete the prerequisites](/identity/credential-sharing/set-up#prerequisites).\n\nTo declare credential sharing across these websites and Android apps:\n\n1. Create an `assetlinks.json` file with the following content:\n\n [\n {\n \"relation\": [\"delegate_permission/common.get_login_creds\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"https://example.com\"\n }\n },\n {\n \"relation\": [\"delegate_permission/common.get_login_creds\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"https://example.org\"\n }\n },\n {\n \"relation\": [\"delegate_permission/common.get_login_creds\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"https://example.net\"\n }\n },\n {\n \"relation\": [\"delegate_permission/common.get_login_creds\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"https://myownpersonaldomain.com\"\n }\n },\n {\n \"relation\" : [\n \"delegate_permission/common.get_login_creds\"\n ],\n \"target\" : {\n \"namespace\" : \"android_app\",\n \"package_name\" : \"com.example.android.myapplication\",\n \"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\"\n ]\n }\n },\n {\n \"relation\" : [\n \"delegate_permission/common.get_login_creds\"\n ],\n \"target\" : {\n \"namespace\" : \"android_app\",\n \"package_name\" : \"com.example.appname\",\n \"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\"\n ]\n }\n }\n ]\n\n2. Host the Digital Asset Links JSON file in the corresponding well-known\n location on the primary domain, in this case:\n `https://example.com/.well-known/assetlinks.json`.\n\n3. Create another `assetlinks.json` file with the following content:\n\n [\n {\n \"relation\": [\"delegate_permission/common.get_login_creds\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"example.com\"\n }\n }\n ]\n\n4. Host copies of this Digital Asset Links JSON file at the following location\n on the other domains, in this case:\n\n - `example.org/.well-known/assetlinks.json`\n - `example.net/.well-known/assetlinks.json`\n - `mypersonaldomain.com/.well-known/assetlinks.json`\n5. Add the following line to both Android Apps manifests files under\n `\u003capplication\u003e`:\n\n \u003cmeta-data android:name=\"asset_statements\" android:resource=\"@string/asset_statements\"/\u003e\n\n6. Configure digital asset linking in the manifest by declaring the association\n in the Android app. Add an object that specifies the `assetlinks.json` files\n to load. In this case:\n\n \u003cstring name=\"asset_statements\" translatable=\"false\"\u003e\n [{\n \\\"include\\\": \\\"https://example.com/.well-known/assetlinks.json\\\"\n }]\n \u003c/string\u003e\n\nAfter following these steps, you have successfully set up seamless credential\nsharing across multiple websites and Android apps."]]