Okta php
Làm việc với OAuth & NBSP; . Nội dung chính Hiển thị Nội dung chính
Vì tôi đã rời khỏi trò chơi PHP trong thời gian, tôi đã nghiên cứu cách tạo ra các mã thông báo như vậy mà không cần vithêm thư. // bin2hex(random_bytes($length)) $token = bin2hex(random_bytes(64)); /* Examples: 39e9289a5b8328ecc4286da11076748716c41ec7fb94839a689f7dac5cdf5ba8bdc9a9acdc95b95245f80a00d58c9575c203ceb541507cce40dd5a96e9399f4a 1c46538c712e9b5bf0fe43d692147004f617b494d004e29daaf33e4528f253db5d911a690856f0b77cfa98103c8231bffff869f179125d17d28e52bfadb9f205 ... */ Nếu bạn không sử dụng PHP7 trở lên, bạn có thể dự phòng sau ________mộtCó sự ủng hộ của OpenSSL cho việc tạo mã thông báo & NBSP; . Các tính năng gần đây
JWT là gì?
Tạo một ứng dụng bằng máy sang máy trong PHP và xác minh JWTS Sử dụng luồng thông tin đăng nhập của máy khách để tạo mã thông báo truy cập JWT trong PHP Tìm hiểu thêm về JWTS trong Php, OAuth 2. 0 v Kết nối OpenID 0in sao octa?JWT là gì? Use JWTS with OAuth 2. 0 và OpenID Connect trong PHP JWT là gì?Use JWTS with OAuth 2. 0 và OpenID Connect trong PHP Create and verify JWTS in PHP 1Các cuộc tấn công bảo mật vào thuật toán ký tự JWT trong PHP Tạo một ứng dụng bằng máy sang máy trong PHP và xác minh JWTS Use JWTS with OAuth 2. 0 và OpenID Connect trong PHPTrước khi giải thích vai trò của JWT trong OAuth 2. 0 và OpenID Connect, điều quan trọng là phải làm rõ các khái niệm xác thực và ủy quyền trong bảo mật thông tin Xác thực có nghĩa là xác nhận rằng người dùng là người mà họ tuyên bố là. Ủy quyền có nghĩa là chứng minh rằng người dùng được xác thực có quyền làm điều gì đó trong một hệ thống OpenID Connect là một giao thức xác thực và OAuth 2. 0 là một tiêu chuẩn mở cho ủy quyền. OpenID Connect sử dụng mã thông báo ID và OAuth 2. 0 sử dụng mã thông báo truy cập. Cùng nhau, họ cung cấp một khung hoàn chỉnh để xác thực và ủy quyền cho người dùng (hoặc máy móc) trong các ứng dụng và máy chủ web/di Mã thông báo OAuth 2. 0 không phải là JWT, mà là nhiều triển khai (bao gồm cả OKTA) sử dụng JWTS vì các thuộc tính mong muốn của họ Mã thông báo OpenID Connect (OIDC), luôn luôn là JWT. Okta sử dụng phương thức ký cặp từ khóa công khai/riêng tư. ID mã thông báo được ký bằng các từ khóa web JSON riêng (JWK), đặc điểm kỹ thuật mà bạn có thể tìm thấy ở đây. JSON WebKey (JWK). Bạn cần truy xuất các từ khóa này và lưu trữ chúng trên máy chủ của mình nếu bạn muốn xác minh mã thông báo Okta (theo cách khác, bạn có thể yêu cầu OKTA xác minh mã thông báo cho bạn, nhưng điều này yêu cầu thêm một chuyến đi vòng đến máy chủ ủy quyền) Mã thông báo ID OIDC bao gồm các khiếu nại chung sau đây
Create and verify JWTS in PHPYou will use goi 7 để tạo và xác minh JWT của riêng bạn. Tôi sẽ chỉ cho bạn cách sử dụng giải mã Base64 để đọc các khiếu nại của JWT và chứng minh rằng nó chỉ đơn giản là lóng lánh và cũng rất hiếm. Không lưu trữ bất kỳ thông tin cảm ứng nào trong JWT)Bắt đầu bằng cách tạo một thư mục mới và khởi động nó như một dự án PHP mới với sự phụ thuộc vào 7.
Tiếp theo, hãy tạo cặp khóa riêng/công khai bằng cách sử dụng OpenSSL trên dòng lệnh $token = bin2hex(openssl_random_pseudo_bytes(64));2 Bạn sẽ sử dụng những thứ này để ký và xác minh JWTS của bạn Create file 9 trong thư mục với các nội dung sau cho các tệp khóa và tệp$token = bin2hex(openssl_random_pseudo_bytes(64));20 của bạn sẽ không được thêm vào kho lưu trữ Go. $token = bin2hex(openssl_random_pseudo_bytes(64));5 Create file 9 trong thư mục với các nội dung sau cho các tệp khóa và tệp$token = bin2hex(openssl_random_pseudo_bytes(64));20 của bạn sẽ không được thêm vào kho lưu trữ Go. $token = bin2hex(openssl_random_pseudo_bytes(64));5 Create file $token = bin2hex(openssl_random_pseudo_bytes(64));22. $token = bin2hex(openssl_random_pseudo_bytes(64));9 9 trong thư mục với các nội dung sau để khóa tệp và tệp$token = bin2hex(openssl_random_pseudo_bytes(64));20 của bạn sẽ không được thêm vào kho lưu trữ Go. $token = bin2hex(openssl_random_pseudo_bytes(64));5 $token = bin2hex(openssl_random_pseudo_bytes(64));21 để tải thư viện nhà cung cấp. $token = bin2hex(openssl_random_pseudo_bytes(64));7____20 This code create a JWT and in it ra. Nó sử dụng khóa riêng và thuật toán RS256 để đăng nhập vào nó Chạy mã từ dòng lệnh và bạn sẽ thấy một cái gì đó như thế nàyCông cụ tiếp theo mà bạn sẽ tạo ra là 4$token = bin2hex(openssl_random_pseudo_bytes(64));23 nhận JWT làm đối số và trả về các khiếu nại đã được giải mã (mà không sử dụng bất kỳ từ khóa nào, hoặc thậm chí không. $token = bin2hex(openssl_random_pseudo_bytes(64));23 3____125$token = bin2hex(openssl_random_pseudo_bytes(64));25 $token = bin2hex(openssl_random_pseudo_bytes(64));0 Nếu bạn chạy nó với phím ví dụ từ bước trước, bạn sẽ thấy đầu ra như thế này ngày 11Điều này chứng tỏ rằng tất cả các khiếu nại đều có thể đọc được tự làm mà không cần sử dụng bất kỳ từ khóa nào. Các từ khóa được sử dụng để xác minh chữ ký (chỉ sử dụng từ khóa công khai), đây là công cụ cuối cùng mà bạn sẽ xây dựng Một lần nữa, hãy chạy nó từ dòng lệnh với mã thông báo bạn đã tạoLưu ý rằng khi xác minh một JWT thực sự, bạn cũng phải đảm bảo rằng nó không hết hạn hoặc được đưa vào danh sách đen. Ngoài ra, hãy chắc chắn rằng không dựa vào thuật toán chỉ được định nghĩa trong JWT, nhưng sử dụng cùng một thuật toán như thuật toán được sử dụng. Đây là một chủ đề quan trọng đến mức nó yêu cầu một số chi tiết bổ sung trong phân đoạn tiếp theo $token = bin2hex(openssl_random_pseudo_bytes(64));27. $token = bin2hex(openssl_random_pseudo_bytes(64));2 Các cuộc tấn công bảo mật vào thuật toán ký tự JWT trong PHP Nếu bạn nhìn kỹ vào tiêu đề JWT, bạn sẽ thấy trường $token = bin2hex(openssl_random_pseudo_bytes(64));28 hoạt động). Vì khóa công bố đã được biết đến, bạn có thể ký hợp đồng chính xác JWT với nó và họ sẽ được chấp nhận Bạn có thể tìm hiểu thêm về các cuộc tấn công này (và các cuộc tấn công khác) bằng cách đọc xác thực JWT tấn công, hoặc bằng cách xem Aaron Parecki đánh giá. Khi mọi thứ trở nên sai lầm Kết luận. Luôn sử dụng cùng một thuật toán để ký và xác minh JWT. Bỏ qua thuật toán chỉ được định nghĩa trong tiêu đề JWT Tạo một ứng dụng bằng máy sang máy trong PHP và xác minh JWTSTrong phần này, tôi sẽ chỉ cho bạn cách tạo ứng dụng cho máy sang máy ở OKTA và cách sử dụng thư viện $token = bin2hex(openssl_random_pseudo_bytes(64));29 để có mã thông báo truy cập JWT từ máy chủ ủy quyền Okta của bạn thông qua luồng thông tin đăng nhập của máy khách Luồng thông tin đăng nhập của khách hàng phù hợp nhất cho giao tiếp với máy đến máy (nơi khách hàng có thể tưởng tượng được giữ b). Tại đây, tài liệu của dòng chảy. OKTA. Thông tin xác thực của khách hàng Nếu bạn vẫn chưa tạo tài khoản nhà phát triển Okta miễn phí mãi mãi, hãy thực hiện ngay bây giờ và sau đó tiếp tục với hướ Đăng nhập và chuyển sang các ứng dụng, sau đó nhấp vào Thêm ứng dụng. Ứng dụng, sau đó nhấp vào Thêm ứng dụng. Ứng dụng, sau đó nhấp vào Thêm ứng dụng Chọn Dịch vụ (máy sang máy) và nhấp vào Tiếp theo. Dịch vụ (Machine-to-Machine) và nhấp vào Tiếp theo. Dịch vụ (Machine-to-Machine) và nhấp vào Tiếp theo Nhập một tiêu đề cho ứng dụng của bạn và nhấp vào hoàn tất. Vui lòng lưu các giá trị trong các trường $token = bin2hex(openssl_random_pseudo_bytes(64));50 và $token = bin2hex(openssl_random_pseudo_bytes(64));51 được hiển thị trên màn hình tiếp theo, bạn sẽ cần chúng khi xây dựng ứng dụng. xong. Lưu ý các giá trị trong các trường $token = bin2hex(openssl_random_pseudo_bytes(64));50 và $token = bin2hex(openssl_random_pseudo_bytes(64));51 được hiển thị trên màn hình tiếp theo, bạn sẽ cần chúng khi xây dựng ứng dụng. xong. Lưu ý các giá trị trong các trường $token = bin2hex(openssl_random_pseudo_bytes(64));50 và $token = bin2hex(openssl_random_pseudo_bytes(64));51 được hiển thị trên màn hình tiếp theo, bạn sẽ cần chúng khi xây dựng ứng dụng Trước khi tạo ứng dụng, có một điều nữa để định cấu hình trong OKTA. bạn cần tạo phạm vi cho ứng dụng của mình Truy cập API > Máy chủ ủy quyền, lưu ý trường $token = bin2hex(openssl_random_pseudo_bytes(64));52 (bạn cần phải có nó khi định cấu hình ứng dụng) và nhấp vào máy chủ ủy quyền mặc định. Chuyển đến tab phạm vi và nhấp vào Thêm phạm vi. Phạm vi thiết lập của bạn như thế này. Api > Máy chủ ủy quyền, lưu ý trường $token = bin2hex(openssl_random_pseudo_bytes(64));52 (bạn sẽ cần nó khi định cấu hình ứng dụng) và nhấp vào máy chủ ủy quyền mặc định. Chuyển đến tab Phạm vi và nhấp vào Thêm Phạm vi. Thiết lập phạm vi của bạn như thế này. Api > Máy chủ ủy quyền, lưu ý trường $token = bin2hex(openssl_random_pseudo_bytes(64));52 (bạn sẽ cần nó khi định cấu hình ứng dụng) và nhấp vào máy chủ ủy quyền mặc định. Chuyển đến tab Phạm vi và nhấp vào Thêm Phạm vi. Thiết lập phạm vi của bạn như thế này Bạn nên sao chép 4 giá trị nếu bạn làm chính xác mọi thứ $token = bin2hex(openssl_random_pseudo_bytes(64));53, $token = bin2hex(openssl_random_pseudo_bytes(64));54, $token = bin2hex(openssl_random_pseudo_bytes(64));52 và $token = bin2hex(openssl_random_pseudo_bytes(64));56 ( $token = bin2hex(openssl_random_pseudo_bytes(64));57) Sử dụng luồng thông tin đăng nhập của máy khách để tạo mã thông báo truy cập JWT trong PHPTôi sẽ chỉ cho bạn cách nhận mã thông báo truy cập từ máy chủ ủy quyền Okta của bạn cho ứng dụng từ máy chủ ủy quyền từ máy chủ ủy quyền Okta của bạn cho ứng dụng từ máy chủ ủy quyền từ mãy nguồn của bạn bn bn bàn bàn giấy. Chúng tôi sẽ sử dụng thư viện $token = bin2hex(openssl_random_pseudo_bytes(64));29 Bắt đầu bằng cách tạo tệp $token = bin2hex(openssl_random_pseudo_bytes(64));59 như thế này. $token = bin2hex(openssl_random_pseudo_bytes(64));3 Sau đó, sao chép nó vào $token = bin2hex(openssl_random_pseudo_bytes(64));20 (hãy nhớ rằng, tệp này phải có trong 9 để nó không được thêm vào repo) và điền thông tin của bạn từ phần trướcYou have to install the new phụ thuộc. Ngoài thư viện $token = bin2hex(openssl_random_pseudo_bytes(64));29, bạn cũng cần phải_______173 để ứng dụng có thể đọc tệp $token = bin2hex(openssl_random_pseudo_bytes(64));20 của bạn và $token = bin2hex(openssl_random_pseudo_bytes(64));75 (được yêu cầu bởi Okta). You have __ 7 (one request OKTA other) from the ví dụ trướcRun command after $token = bin2hex(openssl_random_pseudo_bytes(64));4 Update file $token = bin2hex(openssl_random_pseudo_bytes(64));21. $token = bin2hex(openssl_random_pseudo_bytes(64));5 First tool you build is $token = bin2hex(openssl_random_pseudo_bytes(64));78 (được sử dụng để yêu cầu truy cập mã thông báo truy cập từ máy chủ ủy quyền Okta). $token = bin2hex(openssl_random_pseudo_bytes(64));78 $token = bin2hex(openssl_random_pseudo_bytes(64));6 Chạy nó từ dòng lệnh, bạn sẽ nhận được đầu ra như thế này $token = bin2hex(openssl_random_pseudo_bytes(64));7 Thứ hai công cụ là $token = bin2hex(openssl_random_pseudo_bytes(64));90. Nó chấp nhận truy cập mã thông báo từ dòng lệnh và xác minh nó. $token = bin2hex(openssl_random_pseudo_bytes(64));90 $token = bin2hex(openssl_random_pseudo_bytes(64));8 Chạy nó với mã thông báo truy cập bạn vừa nhận được và bạn sẽ thấy đầu ra tương tự $token = bin2hex(openssl_random_pseudo_bytes(64));9 Nếu mã thông báo không hợp lệ hoặc hết hạn, bạn sẽ thấy thông báo lỗi Đó là ý chính của thông tin xác thực của máy khách JWTS và OKTA. Mặc dù vậy, có nhiều hơn nữa để tìm hiểu về các chủ đề này, hãy kiểm tra các tài nguyên trong phần tiếp theo để tìm m êphêu chế độ Tìm hiểu thêm về JWTS trong Php, OAuth 2. 0 v Kết nối OpenIDBạn có thể tìm thấy toàn bộ ví dụ mã ở đây. Liên kết GitHub Nếu bạn muốn tìm hiểu sâu hơn về các chủ đề được cập nhật trong bài viết này, các tài nguyên sau đây là điểm khởi đầu tuy nhiên
Giống như những gì bạn đã học được hôm nay? Làm cách nào để nhận mã thông báo ủy quyền trong PHP?Để gửi yêu cầu GET với tiêu đề ủy quyền mã thông báo của người mang bằng PHP, bạn cần thực hiện yêu cầu GET HTTP và cung cấp sự cân nhắc m g. Bearer {token} Tiêu đề HTTP. thực hiện yêu cầu HTTP GET và cung cấp Mã thông báo người gửi của bạn với Ủy quyền. Tiêu đề HTTP mang {token}. thực hiện yêu cầu HTTP GET và cung cấp Mã thông báo mang của bạn cùng với Ủy quyền. Tiêu đề HTTP {token} của người mang . Làm cách nào để tạo mã xác thực thông báo?To create a auth code auth new. . Ở góc trên bên phải của bảng điều khiển, hãy mở menu hồ sơ ( Trên trang Mã thông báo Auth, nhấp vào Tạo mã thông báo Nhập một mô tả thân thiện cho mã thông báo xác thực Access to Create notification code Làm thế nào để tôi tạo mã thông báo của người mang?Tạo mã thông báo người mang OAuth. . Open a new tab in application Postman Đối với phương thức HTTP, chọn Bài đăng Lật vào tab ủy quyền và chọn OAuth 2. 0 lam type Truy cập vào Nhận mã thông báo truy cập mới Để xác minh rằng mã thông báo của người mang đã được thêm vào, hãy nhấp vào tab Tiêu đề và nhấp vào các tiêu đề ẩn |