[WebView] 웹과 앱 연결하기 aseetlinks.json

jiwon·2025년 7월 12일

현재 맡고있는 웹뷰 프로젝트에 .well-known 폴더를 생성 후 assetlinks.json을 추가하였는데, 이 파일이 어떤 역할을 하는지 왜 필요한지 정리해보려고 한다.



📌 assetlinks.json?

.well-known/assetlinks.json 는 Digital Asset Links 라는 구글의 표준 스펙에 따라 만들어지는 파일이다. 이 파일은 웹사이트와 모바일 앱(특히 Android앱) 간의 신뢰 관계를 증명하기 위해 사용한다.

쉽게 말해,
이 웹 사이트는 이 안드로이드 앱과 같은 소유자다. 라는 소유권을 증명하는 것이다.

이 과정을 통해 Android 시스템이 웹과 앱을 같은 주체가 운영하는것으로 인식하게 되고, 그에 따른 다양한 기능을 활성화할 수 있게 된다.




📌 Digiatl Asset Links란?

Digital Asset Links는 구글이 만든 매커니즘으로 두 개의 디지털 자산(예를 들어 웹 사이트와 모바일 앱)이 서로를 신뢰하고 있음을 공식적으로 선언할 수 있도록 해주는 시스템이다.


🎯 주요목적
  1. 웹 도메인과 앱 간 신뢰 기반 기능 제공
  2. 앱링크 기능 활성화
  3. Trusted Web Activity(TWA) 구동
  4. 앱 기반 OAtuh 인증 보안 강화

이러한 시스템을 통해 Android는 다음과 같은 결정을 내릴 수 있다.

  1. 웹 링크를 앱으로 자동 연결해도 되는가?
  2. TWA로 웹을 실행해도 되는가?
  3. 보안이 필요한 인증 과정에서 이 앱을 신뢰해도 되는가?




📌 assetlinks.json 구성 예시

다음은 실제 .well-known/assetlinks.json 파일의 예시이다.

<[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.myapp",
      "sha256_cert_fingerprints": [
        "AB:CD:EF:12:34:56:78:90:AA:BB:CC:DD:..."
      ]
    }
  }
]
  • relation : 어떤 기능을 허용할지 (URL처리, 인증 위임 등)
  • namespace : 대상의 종류 (여기선 android_app)
  • package_name : 연결할 앱의 패키지명
  • sha256_cert_fingetprints : 앱을 서명한 인증서의 SHA-256 지문


✅ 중요한 조건




📌 이 파일이 필요한 사례

  1. Android App Links 연결
  • 사용자가 브라우저에서 https://example.com/page를 클릭했을 때 웹이 아니라 앱이 열리도록 설정
  • 웹-앱 연결을 위해 aseetlinks.json 필수
  1. Trusted Web Activity (TWA)
  • 웹 페이지를 앱처럼 Android에서 표시할 수 있는 기술
  • TWA의 전제 조건 : 도메인과 앱 간의 소유권 증명
  1. 앱 인증 및 로그인 연동
  • Google OAuth, Firebase 인증 등에서 앱과 웹 간 신뢰성을 보장
profile
내가 보려고 올리는 개발 일지

0개의 댓글