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 ra 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 như tất cả các ứng dụng 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ó rất nhiều giải pháp trên thị trường, cả miễn phí và trả phí, hứa hẹn cung cấp các tính 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 đề, sẽ 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 nó có thể trả tiền để làm quen với nó. Như thường lệ, tôi sẽ bắt đầu bằng một mô tả ngắn gọn về chính xác keycloak là gì.

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

Bài viết này sẽ chỉ nói 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 sẽ không được đề cập ở đây. bất cứ khi nào tôi sử dụng từ “keycloak”, nó có nghĩa là máy chủ keycloak.

keycloak là gì?

về cơ bản là một công cụ mã nguồn mở hiện được cấp phép theo apache 2.0. Đây cũng là một dự án ngược dòng cho sso mũ đỏ, vì vậy nếu bạn đang tìm kiếm thứ gì đó tập trung vào kinh doanh hơn, bạn có thể xem qua. Mục tiêu 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ư được viết trên trang dự án 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ể xem trong tài liệu về keycloak (liên kết được cung cấp ở cuối bài viết). đợt phát hành đầu tiên của keycloak diễn ra 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 ở Red Hat. họ sẵn sàng đón nhận những cộng tác viên mới nếu có ai quan tâm.

chức năng lớp chính

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

  • hỗ trợ đa giao thức

    đăng nhập

    bảng điều khiển quản trị

    danh tính người dùng và quyền truy cập

    đồng bộ hóa nguồn nhận dạng bên ngoài

    tác nhân nhận dạng

    nhà cung cấp danh tính xã hội

    tùy chỉnh trang

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

    phân phối lớp dấu ngoặc nhọn

    hiện tại, keycloak có ba bản phân phối chính.

    • người hầu

      hình ảnh có thể gắn được

      toán tử

      Như bạn có thể thấy, mọi người đều có thể tìm thấy một bản phân phối phù hợp. nếu bạn sử dụng docker hoặc kubernetes, bạn có một toán tử hình ảnh và móc khóa. thay vào đó, nếu bạn thích cách triển khai thông thường hơn, bạn cũng sẽ tìm thấy bản phân phối cho mình. thậm chí sau đó, hình ảnh bộ kết nối móc khóa có thể cực kỳ hữu ích để 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 của mình và tất cả các thay đổi được thực hiện đối với móc khóa của bạn 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 lớp khóa

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

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

      trong trường hợp khởi động lò xo, nó là spring-boot-keycloak-starter trong trường hợp ủy quyền quarkus quarks-keycloak.

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

      đối với thư viện ứng dụng dựa trên scala, keycloak4s cũng có vẻ tốt.

      đối với ứng dụng dựa trên c #, keycloak.net có vẻ giống như một thư viện tiện dụng.

      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 được xây dựng xung quanh keycloak. Tôi sẽ đặt các 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, nhờ tính trừu tượng 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à hoàn thành một vài 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 về keycloak

      Trước hết, nó hoàn toàn miễn phí. Bạn có thể nghĩ rằng đó là niềm vui, 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, mang lại cho bạn khả năng bao phủ 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 những gì bạn cần hoặc những gì bạn nghĩ là tốt nhất cho ứng dụng của mình và bạn không bị giới hạn bởi công cụ bạn đang 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 đây là một hệ thống được viết và thiết kế tốt.

      Ngoài ra, nó có rất nhiều sự hỗ trợ 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ể tin tưởng vào những người khác để giúp bạn giải quyết các vấn đề của bạn. keycloak có thể rất hữu ích khi khách hàng của bạn có bất kỳ cơ sở dữ liệu người dùng hiện có nào 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 ngay lập tức, vì vậy nếu bạn muốn sử dụng đăng nhập xã hội, keycloak có thể rất hữu ích cho bạn và nhóm của bạn.

      Ngoài ra, nó cung cấp giao diện người dùng đồ họa dựa trên web giúp dễ dàng thay đổi cài đặt. Cuối cùng, với sự trợ giúp của keycloak sso, bạn có thể giúp người dùng dễ dàng truy cập vào nhiều dịch vụ do công ty của bạn quản lý.

      khi nó 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 keycloak theo cách đó, để duy trì tính khách quan, tôi sẽ nói điều gì đó khi 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 với một khách hàng duy nhất trong lĩnh vực móc khóa: mất tất 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 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ể và có thể dễ dàng thiết lập hơn nhiều nếu bạn đã có

        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ở nên 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 lộ trình của nó và những thứ như tràn ngăn xếp sẽ chăm sóc nó cho khách hàng và chắc chắn là không một thuật ngữ khó trả lời

        Lưu ý rằng việc đáp ứng một số hoặc thậm chí tất cả các điều kiện này cho ứng dụng của bạn không cho thấy ngay rằng bạn không nên sử dụng keycloak. nó chỉ đơn giản 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 bảo mật ứng dụng của mình bằng keycloak. có lẽ có thể sử dụng một công cụ hoặc giải pháp ít phức tạp hơn.

        hỗn hợp

        Tôi đã trình bày 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à một vài từ khác về các bản phân phối khác nhau của nó. Tôi đã kết luận với một lời giải thích ngắn gọn về thời điểm 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 đã cung cấp cho bạn hiểu biết tổng quát hơn về keycloak, những gì nó cung cấp và khi nào nó có thể hữu ích cho bạn. quyết định cuối cùng về việc có nên nghiên cứu sâu về keycloak hay không, tôi giao việc đó cho bạn.

        liên kết

        trang chính

        tài liệu về lớp chính

        tải xuống keycloak

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *