5

Tôi đang làm việc trên một nguyên mẫu cho một cấu trúc lại trang web bằng cách sử dụng ASP.NET 5 và tôi đang tranh luận sử dụng IdentityServer4 cho Xác thực và Cấp phép của tôi. Tôi đã xem xét rất nhiều mẫu và bài viết về cách thiết lập IdentityServer3 và 4 và tôi đang cố gắng thu hút sự chú ý của mình nếu nó có thể xử lý các yêu cầu của khách hàng của tôi theo cách phù hợp. Đây là yêu cầu của tôi.asp.net 5 và IdentityServer4

Tôi có 3 trang web cần ủy quyền. Trang web 1 (abc.com) sẽ yêu cầu xác thực cửa sổ và sẽ là kết hợp các cuộc gọi mvc và webapi sử dụng vai trò (hoặc vai trò được chuyển đổi thành xác nhận quyền sở hữu) để ủy quyền. Trang web 2 (def.com) là một trang web đáng tin cậy muốn có tiện ích đăng nhập bằng hộp văn bản tên người dùng/mật khẩu/ghi nhớ trên trang web của họ khi được gửi sẽ xác thực người dùng và chuyển hướng họ đến trang web 3 (xyz.com). Trang web 3 cũng sẽ có trang đăng nhập riêng và sẽ là kết hợp các cuộc gọi mvc và webapi sử dụng xác nhận quyền sở hữu. Trang web 2 và 3 sẽ không sử dụng xác thực cửa sổ và khách hàng không muốn họ chuyển hướng đến màn hình đăng nhập máy chủ nhận dạng, mà là có màn hình đăng nhập của riêng họ và gọi máy chủ nhận dạng từ mã với thông tin xác thực để đăng nhập.

Dưới đây là các câu hỏi của tôi về trường hợp này và IdentityServer4.

  1. Idsvr4 có thể xử lý một ứng dụng khách bằng xác thực cửa sổ và một ứng dụng khác bằng cách sử dụng xác thực tên người dùng/mật khẩu?
    • Nếu có, có lý do để có cửa sổ auth trong idsvr4 hoặc nó chỉ nên sử dụng tiêu chuẩn windows auth trong webapp?
  2. idsvr4 thể được cài đặt để có khách hàng thu thập tên người dùng/mật khẩu/giá trị Nhớ đến anh và vượt qua chúng thông qua mã để nhận được thẻ JWT thích hợp cho cả hai MVC và WebAPI?

    • Nếu có, hãy đăng nhập vào cả ứng dụng mvc và webapi trên một trang web khác?

    • Nếu có, điều này có phá vỡ mục đích thực sự của identityserver4 và đó là một ý tưởng tồi không?

  3. Nếu nó có thể xử lý tình huống này và là một ý tưởng tốt, làm thế nào tôi thiết lập các khách hàng, phạm vi và mã để xử lý đăng nhập thông qua mã và chuyển hướng?

Ví dụ rất tuyệt vời và rất được hoan nghênh, nhưng tôi thậm chí không chắc chắn nên sử dụng cách nào để tìm kiếm kịch bản này để chỉ cho tôi đúng hướng sẽ giúp ích rất nhiều.

+0

Điều này có thể hữu ích https://www.linkedin.com/pulse/securing-net-core-web-api-identityserver4-resource-owner-dalvandi?trk=mp-author-card –

Trả lời

1

Không chắc chắn nếu câu hỏi này vẫn hoạt động. Nhưng có, tôi tin rằng bạn có thể làm tất cả những điều đó.

1) Bạn có thể thiết lập mà LDP có sẵn cho mỗi khách hàng bằng cách thiết lập IdentityProviderRestrictions trên máy khách (docs)

1,1) - Không chắc chắn những gì bạn có nghĩa là, tôi tin rằng một trong những điểm của việc có idsrv là sentralize bạn xác thực và điều này giúp các trang web tương lai dễ dàng tích hợp với cùng một dịch vụ hơn.

2) Khi đăng nhập bằng ứng dụng khách, bạn cũng chỉ định apiResource nào mà máy khách có quyền truy cập - và ứng dụng cần thêm nó vào phạm vi được yêu cầu khi đăng nhập. Vì vậy, nếu ứng dụng của bạn là ứng dụng mvc , bạn chỉ cần thêm ApiResource vào AllowedScopes - và đặt request_type thành id_token code - điều này sau đó sẽ cung cấp cho người dùng số access_token được chuyển với mỗi yêu cầu đến api phụ trợ. (docs)

2.1) - Điều này về cơ bản sẽ đăng nhập người dùng trên cả hai trang web - sử dụng mã thông báo truy cập cho biết người dùng được phép sử dụng api phụ trợ.

2.2) - Theo ý kiến ​​của tôi, dòng chảy này là một trong những điều làm cho idsrv tuyệt vời - và họ thậm chí còn đề cập đến điều này như là một tính năng tuyệt vời của idsrv. Bạn chỉ cần 1 chuyến đi tới máy chủ authserver để truy cập vào tất cả các hệ thống.

như đối với pt. 3 - Hãy xem thêm tài liệu, cố gắng thiết lập một dự án trống theo quickstarts.

Để đăng nhập từ trang đăng nhập của riêng bạn, bạn cần sử dụng loại tài trợ Resource Owner password - Chúng không khuyên bạn thực hiện việc này cho các sự cố bảo mật (truyền mật khẩu qua dây) - nó được hỗ trợ.

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