Bắt đầu

Tổng quan

Giao thức và API Digital Asset Links cho phép một ứng dụng hoặc trang web đưa ra những câu lệnh công khai, có thể xác minh về các ứng dụng hoặc trang web khác. Ví dụ: một trang web có thể khai báo rằng trang web đó được liên kết với một ứng dụng Android cụ thể hoặc có thể khai báo rằng trang web đó muốn chia sẻ thông tin đăng nhập của người dùng với một trang web khác.

Sau đây là một số trường hợp có thể sử dụng Digital Asset Links:

  • Trang web A khai báo rằng các đường liên kết đến trang web của trang web này sẽ mở trong một ứng dụng được chỉ định trên thiết bị di động, nếu ứng dụng đó đã được cài đặt.
  • Trang web A khai báo rằng trang web này có thể chia sẻ thông tin đăng nhập của người dùng Chrome với trang web B để người dùng không phải đăng nhập vào trang web B nếu đã đăng nhập vào trang web A.
  • Ứng dụng A khai báo rằng ứng dụng này có thể chia sẻ các chế độ cài đặt thiết bị (chẳng hạn như vị trí) với trang web B.

Từ khóa

  • Bên đưa ra tuyên bố: Bên đưa ra tuyên bố là ứng dụng hoặc trang web đưa ra tuyên bố. Trong Digital Asset Links, bên chính luôn là ứng dụng hoặc trang web lưu trữ danh sách câu lệnh.
  • Danh sách câu lệnh: Các câu lệnh nằm trong một danh sách câu lệnh chứa một hoặc nhiều câu lệnh. Danh sách câu lệnh là văn bản thuần tuý và có thể truy cập công khai, ở một vị trí do tài khoản chính kiểm soát và khó giả mạo hoặc giả mạo. Đó có thể là một tệp độc lập hoặc một phần của một mục lớn hơn khác. Ví dụ: trên một trang web, đó là toàn bộ tệp; trong một ứng dụng Android, đó là một phần trong tệp kê khai ứng dụng. Bất kỳ ai cũng có thể xem và xác minh các câu lệnh bằng các phương thức không độc quyền. Xem tài liệu về danh sách câu lệnh để biết thêm thông tin.
  • Câu lệnh: Câu lệnh là một cấu trúc JSON có cấu trúc chặt chẽ, bao gồm một mối quan hệ (nội dung câu lệnh yêu cầu thực hiện, ví dụ: Cho phép chia sẻ thông tin đăng nhập) và một mục tiêu (trang web hoặc ứng dụng mà mối quan hệ áp dụng). Do đó, mỗi câu lệnh giống như một câu, trong đó chủ thể nói mối quan hệ về đối tượng.
  • Người tiêu dùng tuyên bố: Người tiêu dùng tuyên bố yêu cầu danh sách tuyên bố từ một bên chính, kiểm tra sự hiện diện của một tuyên bố đối với một bên chính nhất định và nếu có, có thể thực hiện hành động được chỉ định. Xem tài liệu về việc sử dụng câu lệnh để biết thêm thông tin.

Ví dụ nhanh về cách sử dụng

Dưới đây là một ví dụ rất đơn giản về cách trang web www.example.com có thể sử dụng Digital Asset Links để chỉ định rằng mọi đường liên kết đến URL trong trang web đó sẽ mở trong một ứng dụng được chỉ định thay vì trình duyệt:

  1. Trang web www.example.com xuất bản một danh sách câu lệnh tại https://www.example.com/.well-known/assetlinks.json. Đây là tên và vị trí chính thức của danh sách tuyên bố trên một trang web; danh sách tuyên bố ở bất kỳ vị trí nào khác hoặc có bất kỳ tên nào khác đều không hợp lệ đối với trang web này. Trong ví dụ của chúng tôi, danh sách câu lệnh bao gồm một câu lệnh, cấp cho ứng dụng Android quyền mở các đường liên kết trên trang web của ứng dụng:
    [{
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target" : { "namespace": "android_app", "package_name": "com.example.app",
                     "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
      }]
    Danh sách câu lệnh hỗ trợ một mảng câu lệnh trong dấu [ ], nhưng tệp ví dụ của chúng tôi chỉ chứa một câu lệnh. sha256_cert_fingerprints là vân tay số SHA256 của chứng chỉ ký ứng dụng. Tìm hiểu thêm chi tiết trong tài liệu về Đường liên kết trong ứng dụng Android.
  2. Ứng dụng Android có trong nội dung khai báo ở trên có một bộ lọc ý định chỉ định lược đồ, máy chủ lưu trữ và mẫu đường dẫn của các URL mà ứng dụng muốn xử lý: trong trường hợp này là https://www.example.com. Bộ lọc ý định này bao gồm một thuộc tính đặc biệt android:autoVerify (mới đối với Android M), cho biết rằng Android nên xác minh nội dung khai báo trên trang web được mô tả trong bộ lọc ý định khi ứng dụng được cài đặt.
  3. Người dùng cài đặt ứng dụng. Android thấy bộ lọc ý định có thuộc tính autoVerify và kiểm tra sự hiện diện của danh sách câu lệnh tại trang web được chỉ định; nếu có, Android sẽ kiểm tra xem tệp đó có chứa một câu lệnh cấp quyền xử lý đường liên kết cho ứng dụng hay không và xác minh ứng dụng dựa trên câu lệnh bằng hàm băm chứng chỉ. Nếu mọi thứ đều ổn, Android sẽ chuyển tiếp mọi ý định https://www.example.com đến ứng dụng example.com.
  4. Người dùng nhấp vào một đường liên kết đến https://www.example.com/puppies trên thiết bị của họ. Đường liên kết này có thể ở bất kỳ đâu: trong trình duyệt, trong đề xuất của Google Search Appliance hoặc bất kỳ nơi nào khác. Android chuyển tiếp ý định đến ứng dụng example.com.
  5. Ứng dụng example.com nhận được ý định và chọn xử lý ý định đó, mở trang về cún con trong ứng dụng. Nếu vì lý do nào đó mà ứng dụng từ chối xử lý đường liên kết hoặc nếu ứng dụng không có trên thiết bị, thì đường liên kết sẽ được gửi đến trình xử lý ý định mặc định tiếp theo khớp với mẫu ý định đó (thường là trình duyệt).

Những điểm cần lưu ý và hạn chế quan trọng:

  • Giao thức này không xác thực bên đưa ra tuyên bố, nhưng tuyên bố nằm ở một vị trí cụ thể có liên kết chặt chẽ với bên đó và do bên đó kiểm soát.
  • Giao thức này không xác thực đích đến của câu lệnh, nhưng cung cấp phương tiện để phương thức gọi xác thực đích đến (ví dụ: một câu lệnh xác định đích đến của ứng dụng di động theo hàm băm chứng chỉ và tên gói).
  • Giao thức này không thực hiện bất kỳ hành động nào đối với câu lệnh; thay vào đó, giao thức này cho phép khả năng hiển thị các câu lệnh mà một ứng dụng sử dụng phải xác thực, sau đó quyết định có hành động hay không và hành động như thế nào. Android M thực hiện các bước này một cách tự nhiên cho bạn; ví dụ: nếu một trang web uỷ quyền xử lý đường liên kết cho một ứng dụng cụ thể, Android sẽ kiểm tra và xác minh câu lệnh, xác minh ứng dụng mục tiêu, rồi cung cấp cho ứng dụng lựa chọn xử lý đường liên kết đã cho.
  • Giao thức này không cho phép đưa ra tuyên bố về hai bên thứ ba: tức là trang web A có thể đưa ra tuyên bố về trang web B, nhưng trang web A không thể đưa ra tuyên bố về mối quan hệ của trang web B với trang web C. Tuy nhiên, nếu trang web B tin tưởng trang web A, thì trang web B có thể kiểm tra trang web A để xem có câu lệnh nào cấp quyền cho trang web C hay không, rồi quyết định triển khai câu lệnh đó.

Các bước tiếp theo

  1. Xem liệu có tài liệu rõ ràng cho trường hợp sử dụng của bạn hay không.
  2. Tìm hiểu về cách tạo một câu lệnh.