Keycloak là gì và nó cung cấp những gì?

Bảo mật ứng dụng ngày càng trở thành một chủ đề quan trọng. Truy cập trái phép vào dữ liệu được bảo vệ có khả năng gây thiệt hại hàng triệu đô la dưới các hình thức phạt tài chính khác nhau. Hầu hết mọi ứng dụng đều cần một số công cụ đáng tin cậy để quản lý danh tính người dùng và quyền truy cập.

Có nhiều giải pháp trên thị trường (miễn phí và trả phí) hứa hẹn có chức năng như vậy. Trong bài viết hôm nay, tôi sẽ cố gắng giới thiệu với bạn một trong những công cụ này, như bạn có thể đoán từ tiêu đề, đó là keycloak.

Tôi hy vọng bài viết này đã giúp bạn hiểu rõ hơn về những điều cơ bản của nó và tại sao việc quen thuộc với nó sẽ có lợi cho bạn. Như thường lệ, tôi sẽ bắt đầu với phần giới thiệu ngắn gọn về chính xác keycloak là gì.

Trước khi bắt đầu – Tuyên bố từ chối trách nhiệm nhanh

Bài viết này sẽ chỉ thảo luận về máy chủ keycloak. Các công cụ như người gác cổng hoặc bộ điều hợp móc khóa không được mô tả ở đây. Mỗi khi tôi sử dụng từ “keycloak” nó có nghĩa là máy chủ keycloak.

Keycloak là gì?

Về cơ bản, nó là một công cụ mã nguồn mở và hiện được cấp phép theo giấy phép apache 2.0. Đây cũng là một dự án ngược dòng cho sso mũ đỏ, vì vậy bạn có thể kiểm tra nó nếu bạn đang tìm kiếm thứ gì đó tập trung hơn vào kinh doanh. Mục đích chính của keycloak là cung cấp “giải pháp quản lý danh tính và quyền truy cập cho các ứng dụng hiện đại”, như họ viết trên trang dự án của mình trên github.

Hiện tại, keycloak hỗ trợ ba giao thức xác thực. Danh sách đầy đủ các nền tảng được hỗ trợ tùy thuộc vào giao thức bạn quyết định sử dụng và có thể được xem trong tài liệu về keycloak (liên kết được cung cấp ở cuối bài viết). Phiên bản đầu tiên của keycloak được phát hành vào tháng 9 năm 2014; phiên bản hiện tại là 12.0.2 (2021-02-04). Nó được phát triển và duy trì bởi những người ở mũ đỏ. Họ hoan nghênh những người đóng góp mới nếu có ai quan tâm.

tính năng keycloak

Sau phần giới thiệu ngắn gọn trong đoạn trước, tôi nghĩ đã đến lúc phải cho bạn biết thêm về những gì mà keycloak có thể làm được.

  • Hỗ trợ Nhiều Giao thức

  • sso

  • Bảng Điều khiển dành cho Quản trị viên

  • Danh tính Người dùng và Quyền truy cập

  • Đồng bộ hóa các nguồn nhận dạng bên ngoài

  • Nhà môi giới danh tính

  • Nhà cung cấp Danh tính Xã hội

  • Trang Tuỳ chỉnh

    Đây là tất cả các tính năng của keycloak mà tôi sẽ giới thiệu hôm nay. Tất nhiên, công cụ này cung cấp nhiều tính năng hơn, được mô tả chi tiết hơn trong tài liệu.

    Phân phối móc khóa

    Hiện tại, có ba cách phân phối chính của keycloak.

    • Người hầu

    • Hình ảnh Docker

    • Nhà điều hành

      Như bạn có thể thấy, có một phân phối phù hợp cho tất cả mọi người. Nếu bạn sử dụng docker hoặc kubernetes, bạn có các toán tử hình ảnh và móc khóa. Mặt khác, nếu bạn thích cách triển khai truyền thống hơn, bạn cũng sẽ tìm thấy bản phân phối phù hợp với mình. Mặc dù vậy, hình ảnh móc khóa docker vẫn hữu ích cho việc phát triển và thử nghiệm.

      Bạn có thể thiết lập máy chủ móc khóa thử nghiệm của mình, sau đó thực hiện các thay đổi và kiểm tra chúng. Sau khi kiểm tra, bạn có thể khởi động lại hình ảnh docker và tất cả các thay đổi được thực hiện đối với keycloak sẽ được hoàn nguyên và bạn sẽ có một môi trường sạch sẽ để kiểm tra thêm.

      tích hợp keycloak

      Bây giờ bạn đã hiểu những kiến ​​thức cơ bản về keycloak và khả năng của nó. Câu hỏi cuối cùng là – làm thế nào để tích hợp nó vào ứng dụng của bạn?

      Đây chủ yếu là từ quan điểm của hệ sinh thái java, nhưng một số ngôn ngữ và khuôn khổ khác cũng sẽ được đề cập. Trong java hiện tại, các framework phổ biến nhất như spring boot, quarkus và micronaut có một số loại bộ điều hợp giúp tích hợp với keycloak rất dễ dàng.

      Trong trường hợp khởi động mùa xuân, nó là spring-boot-keycloak-starter trong trường hợp ủy quyền quarkus quarks-keycloak.

      Mặt khác, python-keycloak trong gói python có vẻ rất hữu ích.

      keycloak4s cũng có vẻ tốt cho các thư viện ứng dụng dựa trên scala.

      keycloak.net trông giống như một thư viện tiện dụng cho các ứng dụng dựa trên c #.

      Tất cả các thư viện đều là mã nguồn mở, được phát triển và duy trì bởi cộng đồng xung quanh keycloak. Tôi sẽ đặt liên kết tương ứng ở cuối bài viết.

      Trong trường hợp khởi động mùa xuân và quarkus, do tính trừu tượng của khung được cung cấp, toàn bộ tích hợp chỉ yêu cầu một vài dòng mã và điền vào một số thuộc tính cấu hình. Trong các trường hợp khác, thư viện chỉ cung cấp ứng dụng khách keycloak api, vì vậy việc tích hợp có thể phức tạp hơn.

      Tại sao bạn nên biết keycloak

      Đầu tiên, nó miễn phí. Bạn có thể nghĩ điều đó thật buồn cười, nhưng trên thực tế, hầu hết các công cụ có tính năng như tác giả hoặc okta đều được trả phí.

      Thứ hai, nó hỗ trợ ba giao thức xác thực khác nhau, cho phép bạn bao gồm nhiều ứng dụng có nhu cầu bảo mật khác nhau bằng một công cụ duy nhất.

      Bạn cũng có thể chọn giao thức xác thực dựa trên nhu cầu của mình hoặc những gì bạn nghĩ là tốt hơn cho ứng dụng của mình và bạn không bị giới hạn bởi các công cụ bạn sử dụng. keycloak cũng là một dự án ngược dòng cho sản phẩm sso mũ đỏ, vì vậy bạn có thể chắc chắn rằng đó là một hệ thống được viết tốt và được thiết kế tốt.

      Ngoài ra, nó còn có sự hỗ trợ mạnh mẽ của cộng đồng, điều này đảm bảo rằng có rất nhiều ví dụ về cách làm điều gì đó và bạn có thể dựa vào những người khác để giúp bạn giải quyết các vấn đề của mình. keycloak hữu ích khi khách hàng của bạn có một số cơ sở dữ liệu người dùng hiện có (như ldap hoặc thư mục hoạt động) vì nó có cơ chế tích hợp để đồng bộ hóa với các nhà cung cấp danh tính như vậy.

      Ngoài ra, keycloak hỗ trợ các nhà cung cấp danh tính xã hội như google hoặc facebook, vì vậy nếu bạn muốn sử dụng đăng nhập xã hội, keycloak rất hữu ích cho bạn và nhóm của bạn.

      Hơn nữa, nó cung cấp một gui dựa trên web để thay đổi cấu hình dễ dàng hơn. Cuối cùng, với sự trợ giúp của keycloak sso, bạn có thể cung cấp cho người dùng của mình quyền truy cập dễ dàng vào nhiều dịch vụ mà công ty của bạn điều hành.

      Khi đó có thể không phải là lựa chọn tốt nhất

      Tôi đã nói lý do tại sao bạn nên sử dụng móc khóa như thế này và để khách quan, tôi sẽ nói khi nào nó có thể không phải là lựa chọn tốt nhất cho bạn.

      • Ứng dụng duy nhất chỉ có một khách hàng trong lĩnh vực keycloak – mất tất cả các lợi ích của sso

      • Không tích hợp với quảng cáo hoặc bất kỳ nhà cung cấp dữ liệu người dùng nào khác

      • Không có đăng nhập mạng xã hội

      • Cơ sở dữ liệu người dùng thuần túy – có thể sử dụng keycloak theo cách này, nhưng cũng có thể sử dụng cơ sở dữ liệu với các bảng cụ thể, nếu bạn đã có thì sẽ dễ dàng định cấu hình hơn rất nhiều

      • Một số loại bảo đảm cấp doanh nghiệp – keycloak vẫn là một dự án mã nguồn mở, vì vậy bạn không có bất kỳ đảm bảo nào do nhà sản xuất cung cấp về hoạt động hoặc các tuyến đường của nó, những thứ như hỗ trợ khách hàng sẽ được bao phủ bởi tràn ngăn xếp, chắc chắn không khó để trả lời ngày thời hạn

        Hãy nhớ rằng việc đáp ứng bất kỳ hoặc thậm chí tất cả các điều kiện này đối với ứng dụng của bạn không ngay lập tức cho thấy rằng bạn không nên sử dụng keycloak. Nó chỉ có nghĩa là bạn có thể được hưởng lợi từ việc suy nghĩ lại những ưu và nhược điểm của việc sử dụng keycloak để bảo vệ ứng dụng của mình. Có thể có sẵn một công cụ hoặc giải pháp ít phức tạp hơn.

        Kết hợp

        Tôi đã cung cấp một số thông tin cơ bản về keycloak là gì, các tính năng mà nó cung cấp và thêm thông tin về các bản phân phối khác nhau của nó. Cuối cùng, tôi giải thích ngắn gọn khi nào nó có thể là một lựa chọn tốt hơn các công cụ khác và khi nào nó có thể không. Tôi hy vọng bài viết của tôi đã giúp bạn hiểu rõ hơn về bản thân keycloak, những gì nó cung cấp và khi nào nó có thể giúp ích cho bạn. Quyết định cuối cùng về việc phải làm gì với keycloak là tùy thuộc vào bạn.

        Liên kết

        Trang chủ

        tài liệu về móc khóa

        Tải xuống móc khóa

Related Articles

Back to top button