Identityserver4 là gì

Related Articles

Identity Server 4: Bảo vệ Web API bằng Access Token (Part 2)

tháng 8 16, 2017

Trong bài viết này, mình sẽ hướng dẫn các bạn cách xây dựng 1 web api đơn giản và validate 1 access token.

Cấu hình Server và Port

Bạn sẽ có 2 server:

  • Authorization Server: port 9999.
  • Web API Server: port 5000.

Đầu tiên, bạn cần đổi port Project IdentityServer4Demo thành 9999



Sau đó, bạn tạo new Project mới, chọn Web API



Sau đó, bạn đổi port project Web API sang port 5000

Cài đặt Access Token Validation

Nhấp phải vào project ProtectedApi, chọn Manage NuGet Packages

Tìm kiếm package: IdentityServer4.AccessTokenValidation và cài đặt.



app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions

{

Authority = “http://localhost:9999”,

ApiName= “customAPI”,

RequireHttpsMetadata = false

});

//add this line to show the ERROR STATUS CODES

app.UseStatusCodePages();

Làm sao để biết API Name?

API Name chính là API Resource. Khi bạn đăng nhập, bạn khai báo scope cần truy cập là gì, thì scope đó thuộc API Resource.

Authorize API

Mở file ValuesController, thêm attribute Authorize trước phương thức GET api/values/{id}.

[Route(“api/[controller]”)]

[Authorize]

public class ValuesController : Controller

{

// GET api/values

[HttpGet]

public IEnumerable Get()

{

return new string[] { “value1”, “value2” };

}

// GET api/values/5

[HttpGet(“{id}”)]

public string Get(int id)

{

return “value”;

}

// POST api/values

[HttpPost]

public void Post([FromBody]string value)

{

}

// PUT api/values/5

[HttpPut(“{id}”)]

public void Put(int id, [FromBody]string value)

{

}

// DELETE api/values/5

[HttpDelete(“{id}”)]

public void Delete(int id)

{

}

}

Trong solution này có 2 project: IdentityServer4Demo và ProtectedApi. Bạn phải chạy cả 2 projects này cùng một lúc.

Nhấp phải vào solution => Properties.

Nhấp chọn option Multiple startup project. Chọn Action cho 2 project đó bằng start.



Thiết lập như vậy là xong.

Bạn mở PostMan lên, gọi hàm /connect/token để lấy access token.

Sau đó thực hiện 2 request:

Api/values: không có attribute Authorize, bạn sẽ nhận được dữ liệu trả về.



Api/values/{id}: Trường hợp không có Access token, bạn sẽ nhận được lỗi 401 Unauthorized

Trường hợp có Access token, bạn sẽ nhận được data trả về



Chúc các bạn thành công!

Nhatkyhoctap’s blog

Part 1 : Tìm hiểu về Identity Server 4T rong bài viết này, mình sẽ hướng dẫn những bạn cách thiết kế xây dựng 1 web api đơn thuần và validate 1 access token. Bạn sẽ có 2 server : Đầu tiên, bạn cần đổi port Project IdentityServer4Demo thành 9999S au đó, bạn tạo new Project mới, chọn Web APISau đó, bạn đổi port project Web API sang port 5000N hấp phải vào project ProtectedApi, chọn Manage NuGet PackagesTìm kiếm package : và thiết lập. Mở file Startup. cs, bên trong hàm Configure ( ), thêm dòng code sau đây trước dòng app. UseMvc ( ) ; : app. UseIdentityServerAuthentication ( new IdentityServerAuthenticationOptions { Authority = ” http://localhost:9999 “, ApiName = ” customAPI “, RequireHttpsMetadata = false } ) ; / / add this line to show the ERROR STATUS CODES app. UseStatusCodePages ( ) ; API Name chính là API Resource. Khi bạn đăng nhập, bạn khai báo scope cần truy vấn là gì, thì scope đó thuộc API Resource. Mở file ValuesController, thêm attribute Authorize trước phương pháp GET api / values / { id }. [ Route ( ” api / [ controller ] ” ) ] [ Authorize ] public class ValuesController : Controller { / / GET api / values [ HttpGet ] public IEnumerable Get ( ) { return new string [ ] { ” value1 “, ” value2 ” } ; } / / GET api / values / 5 [ HttpGet ( ” { id } ” ) ] public string Get ( int id ) { return ” value ” ; } / / POST api / values [ HttpPost ] public void Post ( [ FromBody ] string value ) { } / / PUT api / values / 5 [ HttpPut ( ” { id } ” ) ] public void Put ( int id, [ FromBody ] string value ) { } / / DELETE api / values / 5 [ HttpDelete ( ” { id } ” ) ] public void Delete ( int id ) { } } Trong solution này có 2 project : IdentityServer4Demo và ProtectedApi. Bạn phải chạy cả 2 projects này cùng một lúc. Nhấp phải vào solution => Properties. Nhấp chọn option Multiple startup project. Chọn Action cho 2 project đó bằng start. Thiết lập như vậy là xong. Bạn mở PostMan lên, gọi hàm / connect / token để lấy access token. Sau đó thực thi 2 request : Api / values : không có attribute Authorize, bạn sẽ nhận được tài liệu trả về. Api / values / { id } : Trường hợp không có Access token, bạn sẽ nhận được lỗi 401 UnauthorizedTrường hợp có Access token, bạn sẽ nhận được data trả vềDownload Sample : http://www.mediafire.com/file/g1y4d1d5514xno5Chúc những bạn thành công xuất sắc !Chia sẻ

Nhãn

Security

Labels : Security

Chia sẻ

ASP.NET MVC: Cơ bản về Validation

tháng 8 24, 2012

Validation ( xác nhận ) là một tính năng quan trọng trong ASP.NET MVC và được tăng trưởng trong một thời hạn dài. Validation vắng mặt trong phiên bản tiên phong của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có năng lực lan rộng ra. ASP.NET MVC2 đã tương hỗ framework validation do Microsoft tăng trưởng, tên là Data Annotations. Và trong phiên bản 3, framework validation đã tương hỗ tốt hơn việc xác nhận phía máy khách, và đây là một xu thế của việc tăng trưởng ứng dụng web ngày này .Chia sẻ

2 nhận xét

Read more »

[ASP.NET MVC] Authentication và Authorize

tháng 10 26, 2013

Một trong những yếu tố bảo mật thông tin cơ bản nhất là bảo vệ những người dùng hợp lệ truy vấn vào mạng lưới hệ thống. ASP.NET đưa ra 2 khái niệm : Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ : Bạn hoàn toàn có thể đăng nhập vào mạng lưới hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn hoàn toàn có thể làm. Ví dụ : Bạn được phép truy vấn vào website, đăng thông tin lên forum nhưng bạn không được phép truy vấn vào trang mod và admin .Chia sẻĐăng nhận xétRead more »

Sử dụng Dependency Injection trong ASP.NET MVC

tháng 3 21, 2013

Trong bài viết này, tôi sẽ hướng dẫn cách vận dụng Dependency Injection vào dự án Bất Động Sản ASP.NET MVC. Bài viết này dựa trên những tài liệu tìm hiểu thêm : Programing in ASP.NET MVC, ASP.NET MVC 4 in kích hoạt. Trước hết, tất cả chúng ta sẽ đi sơ qua những khái niệm : IoC là gì, cách vận dụng IoC vào dự án Bất Động Sản Web, ví dụ .Chia sẻĐăng nhận xét

Read more »

Video liên quan

Nội dung chính

  • Identity Server 4: Bảo vệ Web API bằng Access Token (Part 2)
  • Cấu hình Server và Port
  • Cài đặt Access Token Validation
  • Làm sao để biết API Name?
  • Authorize API
  • ASP.NET MVC: Cơ bản về Validation
  • [ASP.NET MVC] Authentication và Authorize
  • Sử dụng Dependency Injection trong ASP.NET MVC
  • Video liên quan

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories