6

Tôi muốn biết, quy trình nội bộ để mã hóa và giải mã mã thông báo Bearer được sử dụng trong OAuth2 và mã trong Nhận dạng Asp.Net là gì.Mã thông báo của trình tạo (OAuth2) được tạo như thế nào?

Khi server nhận được một mã thông báo, nó có thể để lấy UserId, Vai trò, bố và tất cả các thuộc tính bên trong nó. Vậy, mã thông báo Bearer được giải mã như thế nào? Thuật toán mã hóa và mã được sử dụng là gì?

+2

Kiểm tra bài viết trên blog của tôi, nơi tôi mô tả cách tạo thẻ dùng p ren, những gì nó phụ thuộc vào, và những gì đang xảy ra khi tài nguyên được bảo vệ nhận được một mã thông báo. http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/ –

+0

@TaiseerJoudeh Cảm ơn bạn rất nhiều vì bình luận về câu hỏi của tôi. Tôi đã đọc bài viết của bạn (và tất cả những gì bạn viết trên blog của bạn), nhưng tôi quan tâm đến quá trình mã hóa mã thông báo Bearer. Các thuật toán mã hóa được sử dụng và quy trình của nó là gì. Nói cách khác, làm thế nào Asp.Net Identity đang thực hiện quá trình này trong nội bộ. –

Trả lời

1

Bạn lấy mã thông báo từ đâu? Các mã thông báo hiếm khi được mã hóa (đôi khi chúng được mã hóa), nhưng chúng sẽ luôn được mã hóa (và được ký). OpenID (một giao thức ở trên cùng của OAuth2) sử dụng JWT. OAuth2 (không phải OpenID) sử dụng mã thông báo "đục".

Xem http://jwt.io cho các thư viện trên giải mã một JWT.

-3

Đây là một câu trả lời ngắn, tất cả tôi có thời gian cho. OAuthBearerTokenOptions chứa mã cần thiết để tạo mã thông báo. Nó phải được cấu hình trong khởi động nợ của bạn.

app.UseOAuthBearerAuthentication(OAuthBearerOptions); 

Cho rằng ...

var ticket = new AuthenticationTicket(identity, new AuthenticationProperties()); 
var currentUtc = new SystemClock().UtcNow; 
ticket.Properties.IssuedUtc = currentUtc; 
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromMinutes(expirationMinutes)); 
string accessToken = oAuthBearerAuthenticationOptions.AccessTokenFormat.Protect(ticket); 
0

Dưới đây là một chút Windows Forms tool để giải mã OAuth 2.0 Bearer mã thông báo sử dụng MachineKeyDataProtector.

Vì vậy, nếu ứng dụng của bạn được lưu trữ trong IIS, sau đó bạn có thể sử dụng công cụ ở trên.

OAuth 2.0 Bearertoken được:

  1. serialized sang định dạng nhị phân

  2. MachineKey được mã hóa (DPAPI được sử dụng khi ứng dụng là tự lưu trữ, vv)

  3. Base64 mã hóa

+0

công cụ này chỉ là một readme và giấy phép –

+0

Có thực sự, bạn phải đi đây: [link] (https://github.com/Legends/BearerTokenDeserializer/tree/Initial) – Legends

+0

Hm, ok ... nó có thể hữu ích để chỉ định rằng bạn có một chi nhánh có tên là "Ban đầu". Tôi có xu hướng nghĩ rằng một nhánh chủ trống rỗng đại diện cho một dự án chưa được bắt đầu. –

Các vấn đề liên quan