0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

OIDC: Chìa Khóa Đăng Nhập An Toàn Không Mật Khẩu

Đăng vào 7 tháng trước

• 6 phút đọc

OIDC: Chìa Khóa Đăng Nhập An Toàn Không Mật Khẩu

Mỗi ngày, bạn đều thấy những nút bấm như "Đăng nhập bằng Google", "Đăng nhập bằng Facebook", "Tiếp tục bằng Apple". Chỉ với một cú nhấp chuột, bạn đã có thể vào ngay. Không cần nhớ mật khẩu hay tên đăng nhập mới. Thật dễ dàng đến mức chúng ta hiếm khi dừng lại để nghĩ về phép thuật đứng sau điều đó.

Phép thuật đó chính là OpenID Connect (OIDC). Đây là giao thức không ồn ào, hoạt động âm thầm phía sau, đã trở thành nền tảng của danh tính kỹ thuật số hiện đại trên internet. Nó không chỉ là một tính năng tiện lợi mà còn là một tiêu chuẩn bảo mật quan trọng cho phép Đăng Nhập Một Lần (SSO) cho hàng triệu ứng dụng, cả tiêu dùng và doanh nghiệp.

Vượt Qua Mật Khẩu: OIDC Là Gì?

Về bản chất, OIDC là một khái niệm đơn giản: xác thực ủy quyền. Nó cho phép một ứng dụng (một "Bên Phụ Thuộc") ủy quyền quy trình đăng nhập của mình cho một nhà cung cấp danh tính đáng tin cậy (một "Nhà Cung Cấp OpenID").

Hãy tưởng tượng nó như một người bảo vệ tại một câu lạc bộ độc quyền. Người bảo vệ không biết tất cả khách mời một cách cá nhân. Thay vào đó, anh ta tin tưởng vào một giấy chứng minh do chính phủ cấp. Anh ta kiểm tra các tính năng bảo mật của giấy chứng minh (liệu nó có thật không?) và ảnh của người đó (liệu có khớp với khách mời không?). Giấy chứng minh đó được cấp bởi một cơ quan đáng tin cậy (Sở Giao thông Vận tải). OIDC là phiên bản kỹ thuật số của toàn bộ tương tác này.

  • Bạn: Người cố gắng vào câu lạc bộ.
  • Ứng dụng (Bên Phụ Thuộc): Người bảo vệ.
  • Google/Facebook/Apple (Nhà Cung Cấp OpenID): Sở Giao thông Vận tải, cơ quan đáng tin cậy.
  • Mã ID Token: Giấy phép lái xe kỹ thuật số của bạn, được ký mã hóa bởi Sở Giao thông Vận tải để chứng minh rằng nó là thật.

Màn Ảo Thuật: Quy Trình OIDC Trong Ba Hành Động

Quy trình phổ biến nhất, Quy Trình Mã Ủy Quyền, là một điệu nhảy tinh tế giữa trình duyệt của bạn, ứng dụng và nhà cung cấp danh tính.

Hành Động 1: Chuyển Hướng

  1. Bạn nhấp vào "Đăng nhập bằng Google" trên một trang tin tức.
  2. Trang web chuyển hướng trình duyệt của bạn đến trang đăng nhập của Google. Nó nói, "Chào Google, đây là Trang Tin Tức. Tôi muốn biết người dùng này là ai."

Hành Động 2: Xác Thực

  1. Bạn đăng nhập vào Google (nếu bạn chưa đăng nhập) và đồng ý chia sẻ thông tin hồ sơ cơ bản (email, tên) với trang tin tức.
  2. Google chuyển hướng trình duyệt của bạn trở lại trang web tin tức với một mã sử dụng một lần đặc biệt.

Hành Động 3: Xác Minh

  1. Máy chủ phía sau của trang web tin tức lấy mã này và gửi trực tiếp đến máy chủ của Google, cùng với một bí mật để chứng minh danh tính của nó.
  2. Google phản hồi với một ID Token. Đây là viên ngọc quý của OIDC—một JSON Web Token (JWT) chứa thông tin đã được xác minh về bạn (email, tên) và được ký mã hóa bởi Google.
  3. Trang tin tức xác minh chữ ký của Google trên ID Token. Nếu nó hợp lệ, nó biết bạn là người mà Google nói. Bạn đã đăng nhập.

Toàn bộ quy trình này là an toàn. Trang tin tức không bao giờ thấy mật khẩu Google của bạn, và các mã bí mật không bao giờ bị lộ trong trình duyệt của bạn.

Siêu Năng Lực: ID Token

ID Token là một chứng chỉ có thể xác minh. Nội dung tiêu chuẩn của nó (gọi là "claims") bao gồm:

  • iss (Nhà phát hành): Ai đã phát hành token (ví dụ: https://accounts.google.com)
  • sub (Đối tượng): Một định danh duy nhất cho người dùng.
  • aud (Đối tượng): Ai là người nhận token (ID của ứng dụng).
  • email: Địa chỉ email đã được xác minh của người dùng.
  • email_verified: Địa chỉ email này có được xác minh không?
  • name: Tên đầy đủ của người dùng.

Vì nó được ký, ứng dụng có thể chắc chắn rằng thông tin đến từ nhà cung cấp danh tính và không bị can thiệp.

Tại Sao OIDC Là Một Cuộc Cách Mạng

  1. Cải Thiện Trải Nghiệm Người Dùng (UX): Người dùng có một trải nghiệm đăng nhập mượt mà. Họ không cần tạo và nhớ một mật khẩu khác, điều này giảm thiểu tỷ lệ bỏ cuộc.
  2. Bảo Mật Tăng Cường: Nó loại bỏ rủi ro vi phạm mật khẩu trên chính ứng dụng. Ứng dụng không lưu trữ mật khẩu, vì vậy không có gì để hacker đánh cắp. Nó cũng cho phép xác thực nhiều yếu tố (MFA) dễ dàng ở cấp độ nhà cung cấp danh tính.
  3. Đơn Giản Hóa Cho Nhà Phát Triển: Các nhà phát triển không cần xây dựng, bảo mật và duy trì một hệ thống lưu trữ mật khẩu phức tạp. Họ có thể tận dụng quy mô và bảo mật của các nhà cung cấp danh tính chuyên dụng.
  4. Đăng Nhập Một Lần Doanh Nghiệp (SSO): OIDC là giao thức điều khiển SSO hiện đại. Một nhân viên đăng nhập một lần vào nhà cung cấp danh tính của công ty họ (như Okta hoặc Microsoft Entra ID) và có quyền truy cập liền mạch vào tất cả các ứng dụng đám mây của họ (Salesforce, Slack, v.v.) mà không phải đăng nhập lại.

OIDC So Với OAuth 2.0: Sự Nhầm Lẫn Thông Thường

Điều này là rất quan trọng để hiểu:

  • OAuth 2.0 là một khung ủy quyền. Nó liên quan đến quyền truy cập. Nó cho phép một ứng dụng nhận quyền truy cập hạn chế vào dữ liệu của người dùng trên một dịch vụ khác (ví dụ: "Ứng dụng này có thể đăng một bài lên Twitter của tôi không?"). Nó trả về một Access Token.
  • OpenID Connect (OIDC) là một lớp xác thực được xây dựng trên nền tảng OAuth 2.0. Nó liên quan đến danh tính. Nó trả lời câu hỏi, "Ai là người dùng này?" Nó trả về một ID Token.

Nói một cách đơn giản: OAuth nói, "Có, ứng dụng này có thể thực hiện X." OIDC nói, "Và nhân tiện, người dùng là john.doe@example.com."

Kết Luận

OIDC không chỉ là một giao thức cho các đăng nhập xã hội. Nó là nền tảng cho một internet an toàn, không mật khẩu và tập trung vào người dùng. Nó đại diện cho một sự chuyển mình cơ bản trong cách chúng ta nghĩ về danh tính kỹ thuật số—không còn là những silo mật khẩu tách biệt mà hướng tới một mô hình danh tính xác minh, di động được xây dựng trên sự tin cậy.

Bằng cách ủy quyền xác thực cho các chuyên gia, mỗi ứng dụng trở nên an toàn hơn, và mỗi người dùng có được trải nghiệm đơn giản hơn và an toàn hơn. Đây là một chiến thắng hiếm có trong thế giới công nghệ.

Tiếp Theo: Chúng ta sẽ chuyển từ danh tính sang luồng dữ liệu. Các ứng dụng hiện đại xử lý các luồng dữ liệu thời gian thực khổng lồ như thế nào? Cuộc trò chuyện bắt đầu với Apache Kafka và Amazon MSK.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào