Làm cách nào tôi có thể sử dụng JWT mà không cần đăng nhập?
Đăng nhập một lần là cơ chế cho phép bạn xác thực người dùng trong hệ thống của mình và sau đó thông báo cho Zendesk rằng người dùng đã được xác thực. Nếu bạn sử dụng đăng nhập một lần bằng Mã thông báo web JSON (JWT), người dùng sẽ tự động được xác minh với nhà cung cấp danh tính khi họ đăng nhập. Sau đó, người dùng được phép truy cập Zendesk mà không được nhắc nhập thông tin xác thực đăng nhập riêng Show
Là quản trị viên Zendesk, vai trò của bạn bao gồm kích hoạt các tùy chọn SSO. Bài viết này mô tả cách bật tối đa hai cấu hình đăng nhập một lần JWT có thể được sử dụng để xác thực các thành viên trong nhóm (quản trị viên và đại lý, bao gồm cả đại lý nhẹ và cộng tác viên), người dùng cuối hoặc cả hai Cốt lõi của đăng nhập một lần là cơ chế bảo mật cho phép Zendesk tin tưởng các yêu cầu đăng nhập mà Zendesk nhận được từ hệ thống của bạn. Zendesk chỉ cấp quyền truy cập cho những người dùng đã được bạn xác thực. Zendesk SSO dựa vào JWT để bảo mật việc trao đổi dữ liệu xác thực người dùng Bài viết này bao gồm các phần sau Nhóm CNTT trong một công ty thường chịu trách nhiệm thiết lập và quản lý hệ thống xác thực JWT của công ty. Vai trò của họ là triển khai SSO cho Zendesk trên hệ thống. Giới thiệu nhóm đến chủ đề sau trong bài viết này Những bài viết liên quan
JWT SSO cho Zendesk hoạt động như thế nàoSau khi bạn bật SSO, các yêu cầu đăng nhập sẽ được chuyển đến một trang đăng nhập bên ngoài Bộ phận hỗ trợ của Zendesk Các bước của quy trình xác thực JWT SSO
Như bạn có thể thấy, quá trình này dựa trên chuyển hướng của trình duyệt và chuyển các tin nhắn đã ký bằng JWT. Việc chuyển hướng diễn ra hoàn toàn trong trình duyệt và không có kết nối trực tiếp giữa Zendesk và hệ thống của bạn, vì vậy bạn có thể giữ các tập lệnh xác thực của mình một cách an toàn sau tường lửa của công ty Yêu cầu để kích hoạt JWT SSOGặp gỡ nhóm trong công ty của bạn chịu trách nhiệm về hệ thống xác thực JWT (thường là nhóm CNTT) để đảm bảo rằng lưu lượng truy cập đến Zendesk qua HTTPS, không phải HTTP Bạn sẽ cần thông tin sau để định cấu hình phương thức JWT SSO trong Zendesk. Nhóm CNTT của bạn sẽ có thể cung cấp điều này cho bạn
Nhóm CNTT có thể yêu cầu thông tin bổ sung từ Zendesk để định cấu hình triển khai JWT. Tham khảo chúng trong bài viết này Sau khi bạn xác nhận rằng bạn đáp ứng các yêu cầu và có tất cả thông tin cần thiết, bạn đã sẵn sàng để Kích hoạt JWT SSOQuản trị viên chỉ có thể bật đăng nhập một lần SAML cho người dùng cuối, chỉ cho các thành viên trong nhóm (bao gồm cả đại lý nhẹ và cộng tác viên) hoặc cho cả hai nhóm. Bạn có thể tạo tối đa hai cấu hình JWT SSO. Trước khi bạn bắt đầu, hãy lấy thông tin bắt buộc từ nhóm CNTT của công ty bạn. Thấy Để bật đăng nhập một lần JWT
Chỉ định JWT SSO cho người dùngSau khi tạo cấu hình JWT SSO, bạn phải kích hoạt nó bằng cách gán nó cho người dùng cuối, thành viên nhóm hoặc cả hai Để chỉ định cấu hình SSO cho thành viên nhóm hoặc người dùng cuối
Để chỉ cho phép các thành viên trong nhóm sử dụng xác thực SSO
Quản lý người dùng trong Zendesk sau khi bật JWT SSOSau khi bật đăng nhập một lần JWT trong Zendesk, những thay đổi được thực hiện cho người dùng bên ngoài Zendesk sẽ đồng bộ hóa với tài khoản Zendesk của bạn. Ví dụ: nếu một người dùng được thêm vào hệ thống nội bộ của bạn, thì người dùng đó sẽ tự động được thêm vào tài khoản Zendesk của bạn. Nếu một người dùng bị xóa trong hệ thống nội bộ của bạn, thì người dùng đó sẽ không thể đăng nhập vào Zendesk nữa. Tuy nhiên, tài khoản của họ sẽ vẫn tồn tại trong Zendesk Theo mặc định, dữ liệu người dùng duy nhất được lưu trữ trong Zendesk khi đăng nhập một lần được bật là tên và địa chỉ email của người dùng. Zendesk không lưu trữ mật khẩu. Do đó, bạn nên tắt mọi thông báo email tự động từ Zendesk về mật khẩu. Thấy Để cung cấp trải nghiệm khách hàng tốt hơn, bạn có thể muốn lưu trữ nhiều thứ hơn là chỉ tên và địa chỉ email của người dùng trong Zendesk. Bạn có thể làm điều này bằng cách sử dụng Vô hiệu hóa email thông báo mật khẩu từ ZendeskKhi một người dùng được thêm vào tài khoản Zendesk, một thông báo email tự động có thể được gửi tới người dùng yêu cầu họ xác minh địa chỉ email của họ và tạo tên người dùng và mật khẩu Hồ sơ người dùng Zendesk được tạo cho bất kỳ người dùng mới nào truy cập vào tài khoản Zendesk của bạn thông qua SAML hoặc JWT. Vì họ được xác thực bằng mật khẩu không phải của Zendesk nên hồ sơ được tạo mà không cần mật khẩu vì họ không cần đăng nhập vào Zendesk. Tuy nhiên, theo mặc định, mọi người dùng mới đều nhận được email thông báo xác minh địa chỉ email của họ và tạo tên người dùng và mật khẩu Để ngăn điều này xảy ra, hãy nhớ bỏ chọn các tùy chọn sau
Tạo một bí mật được chia sẻ mớiTrong một số trường hợp, chẳng hạn như nếu bí mật của bạn bị xâm phạm, bạn có thể cần phát hành một bí mật được chia sẻ JWT mới và cung cấp bí mật đó cho nhóm CNTT hoặc nhà cung cấp danh tính bên ngoài của bạn. Bạn có thể tạo bí mật chia sẻ JWT mới từ Trung tâm quản trị Zendesk. Hành động này sẽ tạo một bí mật mới và làm mất hiệu lực của bí mật cũ. Bạn sẽ cần thông báo cho nhóm CNTT hoặc nhà cung cấp nhận dạng bên ngoài về bí mật được chia sẻ mới của mình để đảm bảo xác thực tài khoản Zendesk SSO hoạt động Quan trọng. Người dùng không thể xác thực bằng JWT SSO cho đến khi có bí mật mới. Đảm bảo người dùng của bạn có phương thức xác thực dự phòng trong thời gian này. Để tạo một bí mật được chia sẻ mới
Chuyển đổi phương thức xác thựcĐiều quan trọng cần lưu ý là nếu bạn sử dụng phương thức SSO của bên thứ ba để tạo và xác thực người dùng trong Zendesk, sau đó chuyển sang xác thực Zendesk, thì những người dùng này sẽ không có sẵn mật khẩu để đăng nhập. Hướng dẫn người dùng đặt lại mật khẩu của họ từ trang đăng nhập Zendesk để có quyền truy cập Thông tin bổ sung về JWTJWT là một tiêu chuẩn mở đang được thúc đẩy bởi cơ quan tiêu chuẩn quốc tế IETF và có những người ủng hộ cấp cao nhất từ lĩnh vực công nghệ (ví dụ: Microsoft, Facebook và Google) Các khối xây dựng cơ bản của JWT là các thành phần được hiểu rất rõ và kết quả của việc này là một thông số kỹ thuật khá đơn giản, có sẵn tại đây http. //công cụ. vietf. org/html/draft-jones-json-web-token-10. Có rất nhiều triển khai nguồn mở của thông số JWT bao gồm hầu hết các công nghệ hiện đại. Điều này có nghĩa là bạn có thể thiết lập đăng nhập một lần JWT mà không gặp nhiều khó khăn Một điều cần lưu ý là tải trọng JWT chỉ được mã hóa và ký, không được mã hóa, vì vậy đừng đưa bất kỳ dữ liệu nhạy cảm nào vào bảng băm. JWT hoạt động bằng cách tuần tự hóa JSON đang được truyền thành một chuỗi. Chuỗi được mã hóa Base64 và sau đó JWT tạo HMAC của chuỗi Base64 phụ thuộc vào bí mật được chia sẻ. Điều này tạo ra một chữ ký mà phía người nhận có thể sử dụng để xác thực người dùng Phiếu triển khai kỹ thuậtPhần này dành cho nhóm trong công ty chịu trách nhiệm về hệ thống xác thực JWT của công ty. Nó cung cấp thông tin chi tiết về việc triển khai Zendesk JWT SSO Ghi chú. Nếu bạn đang nâng cấp từ phiên bản Zendesk SSO cũ hơn (được gọi là Xác thực từ xa Zendesk) lên JWT, bạn có thể bật nhiều triển khai SSO cùng một lúc. Zendesk nhận ra nếu một yêu cầu dành cho JWT hoặc một loại SSO khác và sẽ xử lý yêu cầu tương ứng. Điều này có nghĩa là bạn có thể bật và kiểm tra JWT trước khi hủy kích hoạt triển khai SSO trước đó của mình. Các chủ đề được đề cập thuật toán JWTChỉ định HS256 làm thuật toán JWT trong tiêu đề của tải trọng JWT của bạn
HS256 là viết tắt của HMAC SHA 256, một thuật toán mã hóa 256-bit được thiết kế bởi U. S. cơ quan an ninh Quốc gia Ghi chú. Zendesk không hỗ trợ thuật toán RS256 và ES256 JWT. Điểm cuối Zendesk JWTSau khi xác thực thành công người dùng, hãy chuyển hướng người dùng cùng với tải trọng JWT đến điểm cuối Zendesk sau https. // tên miền phụ của bạn. zendesk. com/truy cập/jwt Tải trọng phải được mã hóa base64 và được thêm vào URL dưới dạng chuỗi truy vấn Tải trọng JWT phải được gửi đến tên miền phụ Hỗ trợ Zendesk của bạn bằng giao thức https. Thí dụ
Tên miền phụ được ánh xạ trên máy chủ không được hỗ trợ thuộc tính JWTGửi các thuộc tính tới Zendesk dưới dạng hàm băm được mã hóa base64 (Ruby) hoặc từ điển (Python). Ví dụ sử dụng Ruby
Zendesk yêu cầu một địa chỉ email để nhận dạng duy nhất người dùng. Ngoài các thuộc tính bắt buộc được liệt kê trong bảng bên dưới, bạn có thể tùy chọn gửi thêm dữ liệu hồ sơ người dùng. Dữ liệu này được đồng bộ hóa giữa hệ thống quản lý người dùng của bạn và Bộ phận hỗ trợ của Zendesk Required attributesAttributeDescriptioniatIssued At. Thời gian mã thông báo được tạo, điều này được sử dụng để giúp đảm bảo rằng một mã thông báo nhất định sẽ được sử dụng ngay sau khi được tạo. Giá trị phải là số giây kể từ khi. Zendesk cho phép lệch đồng hồ tối đa ba phút, vì vậy hãy đảm bảo định cấu hình NTP hoặc tương tự trên máy chủ của bạn. ID mã thông báo web jtiJSON. Một id duy nhất cho mã thông báo, được Zendesk sử dụng để ngăn chặn các cuộc tấn công phát lại mã thông báo. emailEmail của người dùng đang đăng nhập, được sử dụng để nhận dạng duy nhất bản ghi người dùng trong Hỗ trợ Zendesk. name Tên của người dùng này. Người dùng trong bộ phận Hỗ trợ của Zendesk sẽ được tạo hoặc cập nhật theo quy định này Thuộc tính người dùng tùy chọnAttributeDescriptionexternal_idNếu người dùng của bạn được nhận dạng duy nhất bằng một thứ khác ngoài địa chỉ email và địa chỉ email của họ có thể thay đổi, hãy gửi id duy nhất từ hệ thống của bạn. Chỉ định id dưới dạng chuỗi. ngôn ngữ (dành cho người dùng cuối) locale_id (dành cho đại lý) Ngôn ngữ trong Hỗ trợ Zendesk, được chỉ định dưới dạng số. tổ chức Tên của một tổ chức để thêm người dùng vàoNếu tùy chọn Cho phép người dùng thuộc về nhiều tổ chức được bật, các tổ chức bổ sung sẽ nối thêm tổ chức ban đầu và được coi là tổ chức thứ cấp. Điều này không xóa các thành viên hiện có Nếu bạn muốn chuyển nhiều tên tổ chức cùng một lúc, hãy sử dụng thuộc tính tổ chức để thay thế. Tên tổ chức phải được truyền trong một chuỗi, được phân tách bằng dấu phẩy organization_idID bên ngoài của tổ chức trong Zendesk API. Nếu cả tổ chức và tổ chức_id đều được cung cấp, thì tổ chức sẽ bị bỏ quaNếu tùy chọn Cho phép người dùng thuộc về nhiều tổ chức được bật, các tổ chức bổ sung sẽ nối thêm tổ chức ban đầu và được coi là tổ chức thứ cấp. Điều này không xóa các thành viên hiện có Nếu bạn muốn chuyển nhiều ID tổ chức cùng một lúc, hãy sử dụng thuộc tính organization_ids để thay thế. ID tổ chức phải được chuyển thành một chuỗi, được phân tách bằng dấu phẩy phoneMột số điện thoại, được chỉ định dưới dạng một chuỗi. tagsĐây là một mảng JSON của các thẻ để đặt cho người dùng. Các thẻ này sẽ thay thế bất kỳ thẻ nào khác có thể tồn tại trong hồ sơ của người dùng. remote_photo_urlURL để đặt ảnh trên hồ sơ người dùng. roleVai trò của người dùng. Có thể được đặt thành "người dùng", "tác nhân" hoặc "quản trị viên". Mặc định là "người dùng". Nếu vai trò của người dùng khác với vai trò trong Hỗ trợ Zendesk, thì vai trò đó sẽ được thay đổi trong Hỗ trợ Zendesk. custom_role_idChỉ áp dụng nếu vai trò của người dùng là tổng đài viên. user_fieldsHàm băm JSON của khóa và giá trị trường người dùng tùy chỉnh để đặt cho người dùng. Trường người dùng tùy chỉnh phải tồn tại để đặt giá trị trường. Mỗi trường người dùng tùy chỉnh được xác định bằng khóa trường được tìm thấy trong cài đặt quản trị trường người dùng. Định dạng của giá trị ngày là yyyy-mm-dd Nếu khóa hoặc giá trị của trường người dùng tùy chỉnh không hợp lệ, việc cập nhật trường sẽ không thành công và người dùng vẫn đăng nhập thành công. Để biết thêm thông tin về các trường người dùng tùy chỉnh, hãy xem Thêm trường tùy chỉnh cho người dùng Ghi chú. Việc gửi các giá trị null trong thuộc tính user_fields sẽ xóa mọi giá trị hiện có trong các trường tương ứng. Tham số URL đăng nhập từ xa (return_to)Việc bạn có chuyển tham số Ví dụ: giả sử một nhân viên đã đăng xuất nhấp vào liên kết sau để mở một yêu cầu trong Hỗ trợ. https. //công ty của tôi. zendesk. com/vé/1232. Dòng chảy như sau
Tham số Ghi chú. Nếu địa chỉ xử lý lỗiNếu Zendesk gặp lỗi trong khi xử lý yêu cầu đăng nhập JWT, nó sẽ gửi một thông báo giải thích sự cố. Nếu bạn đã chỉ định một URL đăng xuất từ xa khi định cấu hình tích hợp JWT, thì nó sẽ chuyển hướng đến URL đó và chuyển một thông báo cùng một tham số loại. Trong trường hợp có lỗi, tham số loại luôn có giá trị "lỗi". Zendesk khuyên bạn nên chỉ định URL đăng xuất từ xa, cũng như ghi nhật ký tin nhắn từ Zendesk cùng với loại. Hầu hết các lỗi có thể xảy ra là những lỗi mà bạn muốn sửa. Các ví dụ bao gồm trôi đồng hồ, giới hạn tốc độ bị ảnh hưởng và mã thông báo không hợp lệ Ví dụ mã triển khai JWTViệc triển khai JWT thực tế rất đơn giản và hầu hết các ngôn ngữ hiện đại đều có thư viện hỗ trợ nó. Zendesk cung cấp một loạt ví dụ cho các ngăn xếp khác nhau trong kho lưu trữ JWT SSO GitHub sau đây
Nếu bạn triển khai JWT trong bất kỳ ngăn xếp nào khác, chúng tôi cũng muốn đưa ra một ví dụ về điều đó ở đó. Thêm một bình luận cho bài viết này để chia sẻ những gì bạn đã thực hiện Trong trường hợp bạn chạy IIS/AD và không muốn xây dựng IIS/AD của riêng mình. NET, chúng tôi cung cấp triển khai đầy đủ trong ASP cổ điển, yêu cầu bạn chỉ điều chỉnh một vài biến. Tải xuống tập lệnh xác thực ASP từ Github Chúng tôi có thể sử dụng JWT mà không cần xác thực không?JWT có thể được sử dụng làm cơ chế xác thực không yêu cầu cơ sở dữ liệu . Máy chủ có thể tránh sử dụng cơ sở dữ liệu vì kho lưu trữ dữ liệu trong JWT được gửi tới máy khách là an toàn.
JWT có luôn được ký không?Mã thông báo Web JSON (JWT) là một tiêu chuẩn mở (RFC 7519) xác định một cách nhỏ gọn và độc lập để truyền thông tin một cách an toàn giữa các bên dưới dạng đối tượng JSON. Thông tin này có thể được xác minh và tin cậy vì thông tin được ký điện tử .
Có thể hack JWT không?Thực sự có một lý do khá chính đáng cho việc áp dụng rộng rãi này và phần lớn đó là do tính bảo mật và khả năng phục hồi. Tuy nhiên, giống như bất kỳ công nghệ nào, JWT không tránh khỏi việc bị hack . Trong bài đăng này, tôi sẽ chỉ cho bạn chính xác cách thực hiện điều này bằng cách sử dụng bộ công cụ bảo mật trực tuyến đơn giản của chúng tôi - tất nhiên rồi.
Có ai có thể đọc mã thông báo JWT không?JWT có thể được ký, mã hóa hoặc cả hai. Nếu mã thông báo được ký, nhưng không được mã hóa, mọi người có thể đọc nội dung của nó , nhưng khi bạn không biết khóa riêng tư, bạn không thể thay đổi . |