This is the Trace Id: fe4766dd26306a115f53cb63504cfea9
Bỏ qua để tới nội dung chính
Microsoft Security

OIDC là gì?

Tìm hiểu về OpenID Connect (OIDC), một giao thức xác thực sẽ xác minh danh tính người dùng khi họ đăng nhập để truy nhập vào tài nguyên kỹ thuật số.

Định nghĩa về OpenID Connect (OIDC)

OpenID Connect (OIDC) là giao thức xác thực danh tính- một phần mở rộng của open authorization (OAuth) 2.0 để chuẩn hóa quy trình xác thực và ủy quyền cho người dùng khi họ đăng nhập để truy nhập vào các dịch vụ kỹ thuật số. OIDC cung cấp khả năng xác thực, nghĩa là xác minh rằng người dùng chính là bản thân họ. OAuth 2.0 ủy quyền cho những hệ thống mà những người dùng đó được phép truy nhập. OAuth 2.0 thường được sử dụng để cho phép hai ứng dụng không liên quan chia sẻ thông tin mà không làm ảnh hưởng đến dữ liệu người dùng. Ví dụ, nhiều người sử dụng tài khoản email hoặc mạng xã hội của họ để đăng nhập vào trang web của bên thứ ba thay vì tạo tên người dùng và mật khẩu mới. OIDC cũng được sử dụng để cung cấp khả năng đăng nhập một lần. Các tổ chức có thể sử dụng hệ thống quản lý danh tính và truy nhập (IAM) bảo mật như Microsoft Entra ID (trước đây là Azure Active Directory) làm trình xác thực chính cho danh tính, sau đó sử dụng OIDC để chuyển việc xác thực đó cho các ứng dụng khác. Bằng cách này, người dùng chỉ cần đăng nhập một lần bằng một tên người dùng và mật khẩu để truy nhập vào nhiều ứng dụng.

 

 

Các thành phần chính của OIDC

Có sáu thành phần chính trong OIDC:

  • Xác thực là quy trình xác minh rằng người dùng chính là bản thân họ.

  • Máy khách là phần mềm, chẳng hạn như trang web hoặc ứng dụng, yêu cầu mã thông báo, mã này được dùng để xác thực người dùng hoặc truy nhập một tài nguyên.

  • Các bên tin cậy là các ứng dụng sử dụng nhà cung cấp OpenID để xác thực người dùng.  

  • Mã thông báo danh tính chứa dữ liệu danh tính bao gồm kết quả của quy trình xác thực, mã định danh cho người dùng và thông tin về cách thức và thời điểm người dùng được xác thực. 

  • Nhà cung cấp OpenID là các ứng dụng mà người dùng đã có tài khoản. Vai trò của họ trong OIDC là xác thực người dùng và chuyển thông tin đó cho bên tin cậy.

  • Người dùng là những người hoặc dịch vụ tìm cách truy nhập vào một ứng dụng mà không tạo tài khoản mới hoặc cung cấp tên người dùng và mật khẩu. 

 

Xác thực OIDC hoạt động như thế nào?

Xác thực OIDC hoạt động bằng cách cho phép người dùng đăng nhập vào một ứng dụng và nhận quyền truy nhập vào một ứng dụng khác. Ví dụ, nếu người dùng muốn tạo tài khoản tại một trang web tin tức, họ có thể sử dụng Facebook để tạo tài khoản thay vì tạo tài khoản mới. Nếu chọn Facebook, họ sẽ sử dụng phương thức xác thực OIDC. Facebook, được gọi là nhà cung cấp OpenID, sẽ xử lý quy trình xác thực và nhận được sự chấp thuận của người dùng để cung cấp thông tin cụ thể, chẳng hạn như hồ sơ người dùng, cho trang web tin tức, là bên tin cậy. 

Mã thông báo ID 

Nhà cung cấp OpenID sử dụng mã thông báo ID để truyền kết quả xác thực và mọi thông tin thích hợp đến bên tin cậy. Ví dụ về loại dữ liệu được gửi bao gồm ID, địa chỉ email và tên.

Phạm vi

Phạm vi xác định những gì người dùng có thể làm khi có quyền truy nhập. OIDC cung cấp phạm vi tiêu chuẩn xác định những nội dung như mã thông báo được tạo cho bên tin cậy nào, thời điểm tạo mã thông báo, thời điểm mã thông báo hết hạn và cường độ mã hóa được sử dụng để xác thực người dùng. 

Quy trình xác thực OIDC thông thường bao gồm các bước sau:

  1. Người dùng truy cập vào ứng dụng mà họ muốn truy nhập (bên tin cậy).
  2. Người dùng nhập tên người dùng và mật khẩu của họ.
  3. Bên tin cậy sẽ gửi yêu cầu tới nhà cung cấp OpenID.
  4. Nhà cung cấp OpenID xác thực thông tin đăng nhập của người dùng và nhận ủy quyền.
  5. Nhà cung cấp OpenID gửi mã thông báo danh tính và thường là mã thông báo truy nhập cho bên tin cậy.
  6. Bên tin cậy sẽ gửi mã thông báo truy nhập tới thiết bị của người dùng.
  7. Người dùng được cấp quyền truy nhập dựa trên thông tin được cung cấp trong mã thông báo truy nhập và bên tin cậy. 

Luồng OIDC là gì?

Luồng OIDC xác định cách yêu cầu và chuyển mã thông báo đến bên tin cậy. Một số ví dụ:

  • Luồng ủy quyền OIDC: Nhà cung cấp OpenID sẽ gửi mã duy nhất cho bên tin cậy. Sau đó, bên tin cậy sẽ gửi mã duy nhất trở lại nhà cung cấp OpenID để đổi lấy mã thông báo. Phương pháp này được sử dụng để nhà cung cấp OpenID có thể xác minh bên tin cậy trước khi gửi mã thông báo. Trình duyệt không thể thấy mã thông báo trong phương pháp này, điều này giúp giữ an toàn cho mã thông báo.

  • Luồng ủy quyền OIDC có phần mở rộng PKCE: Luồng này giống với luồng ủy quyền OIDC, ngoại trừ việc sử dụng phần mở rộng khóa công khai để đổi mã (PKCE) nhằm gửi nội dung liên lạc dưới dạng hàm băm. Điều này làm giảm khả năng mã thông báo sẽ bị chặn.

  • Thông tin xác thực của máy khách: Luồng này cung cấp quyền truy nhập vào các API web bằng cách sử dụng danh tính của chính ứng dụng đó. Quy trình này được sử dụng cho hoạt động giao tiếp giữa máy chủ với máy chủ và tập lệnh tự động không yêu cầu người dùng tương tác.

  • Mã thiết bị: Luồng này cho phép người dùng đăng nhập và truy nhập vào các API dựa trên web trên các thiết bị kết nối Internet không có trình duyệt hoặc có trải nghiệm bàn phím kém, chẳng hạn như TV thông minh. 

Các luồng bổ sung, chẳng hạn như luồng ngầm định OIDC, được thiết kế cho các ứng dụng dựa trên trình duyệt, không được đề xuất vì chúng là rủi ro bảo mật.

OIDC so với OAuth 2.0

OIDC được xây dựng dựa trên OAuth 2.0 để thêm khả năng xác thực. Đầu tiên, giao thức OAuth 2.0 được xây dựng và sau đó OIDC được thêm vào để nâng cao khả năng của nó. Sự khác biệt giữa hai giao thức là OAuth 2.0 cung cấp ủy quyền, trong khi OIDC cung cấp xác thực. OAuth 2.0 là giao thức cho phép người dùng giành quyền truy nhập vào bên tin cậy, sử dụng tài khoản của họ với nhà cung cấp OpenID, và OIDC là giao thức cho phép nhà cung cấp OpenID chuyển hồ sơ người dùng cho bên tin cậy. OIDC cũng cho phép các tổ chức cung cấp khả năng đăng nhập một lần cho người dùng của họ.

 

 

Các lợi ích của xác thực OIDC

Nhờ vào giảm số lượng tài khoản mà người dùng cần để truy nhập các ứng dụng, OIDC mang lại một số lợi ích cho cả cá nhân và tổ chức:

Giảm rủi ro bị đánh cắp mật khẩu

Khi mọi người cần sử dụng nhiều mật khẩu để truy nhập các ứng dụng họ muốn cho công việc và cuộc sống cá nhân, họ thường chọn những mật khẩu dễ nhớ, chẳng hạn như Password1234!, và sử dụng cùng một mật khẩu cho nhiều tài khoản. Điều này làm tăng rủi ro là kẻ xấu sẽ đoán được mật khẩu. Và sau khi chúng biết được mật khẩu cho một tài khoản, chúng cũng có thể truy nhập vào các tài khoản khác. Khi giảm số lượng mật khẩu mà một người phải ghi nhớ, khả năng cao là họ sẽ sử dụng mật khẩu mạnh hơn, an toàn hơn.

Tăng cường các biện pháp kiểm soát truy nhập

Khi tập trung xác thực trong một ứng dụng, các tổ chức cũng có thể bảo vệ quyền truy nhập trên nhiều ứng dụng bằng các biện pháp kiểm soát truy nhập mạnh. OIDC hỗ trợ xác thực hai yếu tố và đa yếu tố, yêu cầu mọi người xác minh danh tính của họ bằng ít nhất hai phương thức trong số sau:

  • Thông tin mà người dùng biết, thường là mật khẩu.

  • Vật dụng mà họ có, chẳng hạn như thiết bị đáng tin cậy hoặc mã thông báo không dễ tạo bản sao. 

  • Thông tin sinh trắc của người dùng, như quét khuôn mặt hoặc dấu vân tay.

Xác thực đa yếu tố là phương thức đã được chứng minh để giảm tình trạng xâm phạm tài khoản. Các tổ chức cũng có thể sử dụng OIDC để áp dụng các biện pháp bảo mật khác, như quản lý quyền truy nhập đặc quyền, bảo vệ bằng mật khẩu, bảo mật đăng nhập hoặc bảo vệ danh tính, trên nhiều ứng dụng. 

Đơn giản hóa trải nghiệm người dùng

Đăng nhập vào nhiều tài khoản trong ngày có thể tốn thời gian và gây khó chịu cho mọi người. Ngoài ra, nếu họ mất hoặc quên mật khẩu, việc đặt lại mật khẩu còn gây gián đoạn năng suất hơn nữa. Các doanh nghiệp sử dụng OIDC để cung cấp khả năng đăng nhập một lần cho nhân viên của họ giúp đảm bảo lực lượng lao động dành nhiều thời gian hơn cho công việc hiệu quả thay vì cố gắng có được quyền truy nhập vào ứng dụng. Các tổ chức cũng có nhiều cơ hội khiến khách hàng sẽ đăng ký và sử dụng dịch vụ của họ hơn nếu cho phép các cá nhân sử dụng tài khoản Microsoft, Facebook hoặc Google của mình để đăng nhập. 

Chuẩn hóa quy trình xác thực

OpenID Foundation bao gồm các thương hiệu nổi tiếng như Microsoft và Google, đã xây dựng OIDC. Tổ chức này được thiết kế để có khả năng tương tác cũng như hỗ trợ nhiều nền tảng và thư viện, bao gồm iOS, Android, Microsoft Windows và các nhà cung cấp dịch vụ nhận dạng và đám mây lớn.

Hợp lý hóa tính năng quản lý danh tính

Các tổ chức sử dụng OIDC để cung cấp khả năng đăng nhập một lần cho nhân viên và đối tác của mình có thể giảm số lượng giải pháp quản lý danh tính mà họ cần quản lý. Điều này giúp việc theo dõi các quyền thay đổi trở nên dễ dàng hơn và cho phép quản trị viên sử dụng một giao diện để áp dụng các chính sách và quy tắc truy nhập trên nhiều ứng dụng. Các công ty sử dụng OIDC để cho phép mọi người đăng nhập vào ứng dụng của họ bằng cách sử dụng nhà cung cấp OpenID sẽ giảm bớt được số lượng danh tính họ cần quản lý. 

Ví dụ và trường hợp sử dụng OIDC

Nhiều tổ chức sử dụng OIDC để cho phép xác thực bảo mật trên web và các ứng dụng dành cho thiết bị di động. Sau đây là một số ví dụ:

  • Khi một người dùng đăng ký tài khoản Spotify, họ sẽ có ba lựa chọn: Đăng ký bằng Facebook, Đăng ký bằng Google, Đăng ký bằng địa chỉ email. Người dùng chọn đăng ký bằng Facebook hoặc Google sẽ sử dụng OIDC để tạo tài khoản. Họ sẽ được chuyển hướng đến bất kỳ nhà cung cấp OpenID nào họ đã chọn (Google hoặc Facebook) và sau khi họ đã đăng nhập, nhà cung cấp OpenID sẽ gửi thông tin chi tiết hồ sơ cơ bản của Spotify. Người dùng không phải tạo tài khoản mới cho Spotify và mật khẩu của họ vẫn được bảo vệ.

  • LinkedIn cũng cung cấp cho người dùng cách tạo tài khoản bằng tài khoản Google của họ thay vì tạo tài khoản riêng cho LinkedIn. 

  • Công ty mong muốn cung cấp khả năng đăng nhập một lần cho các nhân viên cần truy nhập vào Microsoft Office 365, Salesforce, Box và Workday để thực hiện công việc của mình. Thay vì yêu cầu nhân viên tạo một tài khoản riêng cho từng ứng dụng trong số đó, công ty sử dụng OIDC để cung cấp quyền truy nhập vào cả bốn ứng dụng đó. Nhân viên tạo một tài khoản và mỗi lần đăng nhập, họ có quyền truy nhập vào tất cả các ứng dụng mà họ cần cho công việc.  

Triển khai OIDC để xác thực bảo mật

OIDC cung cấp giao thức xác thực để đơn giản hóa trải nghiệm đăng nhập cho người dùng cũng như tăng cường bảo mật. Đây là một giải pháp tuyệt vời dành cho các doanh nghiệp muốn khuyến khích khách hàng đăng ký dịch vụ của họ mà không cần phải quản lý tài khoản. Tính năng này cũng cho phép các tổ chức cung cấp cho nhân viên của họ và những người dùng khác khả năng đăng nhập một lần bảo mật vào nhiều ứng dụng. Các tổ chức có thể sử dụng các giải pháp nhận dạng và truy nhập có hỗ trợ OIDC, chẳng hạn như Microsoft Entra, để quản lý tất cả danh tính và chính sách bảo mật xác thực của họ ở một nơi duy nhất.

   

 

Tìm hiểu thêm về Microsoft Security

Câu hỏi thường gặp

  • OIDC là giao thức xác thực danh tính hoạt động với OAuth 2.0 để chuẩn hóa quy trình xác thực và ủy quyền cho người dùng khi họ đăng nhập để truy nhập vào các dịch vụ kỹ thuật số. OIDC cung cấp khả năng xác thực, nghĩa là xác minh rằng người dùng chính là bản thân họ. OAuth 2.0 ủy quyền cho những hệ thống mà những người dùng đó được phép truy nhập. OIDC và OAuth 2.0 thường được sử dụng để cho phép hai ứng dụng không liên quan chia sẻ thông tin mà không làm ảnh hưởng đến dữ liệu người dùng. 

  • Cả OIDC và ngôn ngữ đánh dấu xác nhận bảo mật (SAML) đều là các giao thức xác thực danh tính cho phép người dùng đăng nhập một lần một cách an toàn và truy nhập vào nhiều ứng dụng. SAML là một giao thức cũ hơn đã được áp dụng rộng rãi cho tính năng đăng nhập một lần. Giao thức này truyền dữ liệu bằng cách sử dụng định dạng XML. OIDC là giao thức mới hơn sử dụng định dạng JSON để truyền dữ liệu người dùng. OIDC đang trở nên phổ biến vì việc triển khai dễ dàng hơn SAML và hoạt động tốt hơn với các ứng dụng di động.

  • OIDC là viết tắt của giao thức OpenID Connect, đây là giao thức xác thực danh tính được sử dụng để cho phép hai ứng dụng không liên quan chia sẻ thông tin hồ sơ người dùng mà không ảnh hưởng đến thông tin xác thực người dùng.

  • OIDC được xây dựng dựa trên OAuth 2.0 để thêm khả năng xác thực. Đầu tiên, giao thức OAuth 2.0 được xây dựng và sau đó OIDC được thêm vào để nâng cao khả năng của nó. Sự khác biệt giữa hai giao thức là OAuth 2.0 cung cấp ủy quyền, trong khi OIDC cung cấp xác thực. OAuth 2.0 là giao thức cho phép người dùng giành quyền truy nhập vào bên tin cậy, sử dụng tài khoản của họ với nhà cung cấp OpenID, và OIDC là giao thức cho phép nhà cung cấp OpenID chuyển hồ sơ người dùng cho bên tin cậy. Chức năng này cũng cho phép các tổ chức cung cấp khả năng đăng nhập một lần cho người dùng của họ. Các luồng OAuth 2.0 và OIDC tương tự nhau ngoại trừ việc sử dụng thuật ngữ hơi khác. 

    Luồng OAuth 2.0 thông thường có các bước sau:

    1. Một người dùng vào ứng dụng mà họ muốn truy nhập (máy chủ tài nguyên).
    2. Máy chủ tài nguyên chuyển hướng người dùng đó đến ứng dụng nơi họ có tài khoản (máy khách).
    3. Người dùng đó đăng nhập bằng thông tin xác thực của họ cho máy khách.
    4. Máy khách xác thực quyền truy nhập của người dùng.
    5. Máy khách gửi mã thông báo truy nhập đến máy chủ tài nguyên.
    6. Máy chủ tài nguyên cấp quyền truy nhập cho người dùng.

    Luồng OIDC thông thường có các bước sau:

    1. Người dùng truy cập vào ứng dụng mà họ muốn truy nhập (bên tin cậy).
    2. Người dùng nhập tên người dùng và mật khẩu của họ.
    3. Bên tin cậy sẽ gửi yêu cầu tới nhà cung cấp OpenID.
    4. Nhà cung cấp OpenID xác thực thông tin đăng nhập của người dùng và nhận ủy quyền.
    5. Nhà cung cấp OpenID gửi mã thông báo danh tính và thường là mã thông báo truy nhập cho bên tin cậy.
    6. Bên tin cậy sẽ gửi mã thông báo truy nhập tới thiết bị của người dùng.
    7. Người dùng được cấp quyền truy nhập dựa trên thông tin được cung cấp trong mã thông báo truy nhập và bên tin cậy. 
  • Nhà cung cấp OpenID sử dụng mã thông báo ID để truyền kết quả xác thực và mọi thông tin thích hợp đến ứng dụng của bên tin cậy. Ví dụ về loại dữ liệu được gửi bao gồm ID, địa chỉ email và tên.

Theo dõi Microsoft Security