Xin chào các bạn, chúng tôi đang xây dựng một ứng dụng ASP.NET MCV 3 từ đầu chạy trên Windows Azure. Về lớp xác thực và ủy quyền, chúng tôi đang nghĩ đến việc sử dụng dịch vụ kiểm soát truy cập. Tôi đã đi qua một số bài viết về ACS, nơi tôi có ý tưởng cơ bản nhưng tôi vẫn còn một số nghi ngờ về nó.Azure ACS - Thực hiện tốt nhất Thực hiện
Hiểu biết của tôi là sử dụng ACS, chúng tôi thuê ngoài một hoặc nhiều Nhà cung cấp nhận dạng (IP), về cơ bản chúng tôi tin tưởng một hệ thống khác (tức là Microsoft Live ID) để xác thực người dùng của mình. Quy trình cơ bản rất đơn giản: ở giai đoạn xác thực, chúng tôi chuyển hướng (ACS thực hiện) người dùng đến một trong các IP "đáng tin cậy" của chúng tôi, sẽ chuyển hướng người dùng (với mã thông báo hợp lệ) tới ACS và cuối cùng đến ứng dụng của chúng tôi. Ở đây có một số câu hỏi…
Vì chúng tôi không muốn tất cả người dùng có tài khoản Live ID có thể truy cập vào ứng dụng của chúng tôi, tôi cho rằng có một quy trình khác để xác thực người dùng đó và kiểm tra xem anh ấy có được đăng ký không trong ứng dụng của chúng tôi. Câu hỏi là ở đâu? Trong ACS hoặc trong ứng dụng của chúng tôi.?
Tôi có ý tưởng về điều này nhưng tôi không biết đó có phải là cách thích hợp để làm điều đó không: Ở giai đoạn đăng ký, hệ thống (ứng dụng web của chúng tôi.) Yêu cầu người dùng IP (tức là Live ID, Google, Facebook và ứng dụng của chúng tôi.) Anh ấy muốn sử dụng để xác thực mình trong ứng dụng. Sau đó, người dùng thực hiện quá trình xác thực trên hệ thống IP và khi quay lại, chúng tôi lưu trữ tên người dùng (tên người dùng IP) trong DB của chúng tôi. Vì vậy, vào lần tiếp theo, ở giai đoạn xác thực, chúng tôi có thể kiểm tra xem người dùng đó có được đăng ký trong hệ thống của chúng tôi hay không.
Nếu lý thuyết trên là chính xác, điều đó có nghĩa là trong ứng dụng của chúng tôi. chúng tôi cần xây dựng nhà cung cấp tư cách thành viên để lưu trữ tên người dùng đến từ các IP và người dùng đã chọn ứng dụng của chúng tôi. một ngụm. Tôi có đúng không? Thực tiễn tốt nhất để thiết kế quy trình trên là gì?
Bây giờ, hãy nói về Ủy quyền và “Vai trò”. Làm thế nào nó hoạt động với ACS? ACS có quản lý nhiều vai trò cho mỗi người dùng không?
Một lần nữa hiểu biết của tôi là với ACS bạn có thể tạo một số "nhóm quy tắc" có liên quan đến IP chứ không phải cho một người dùng. Nếu điều này là chính xác, làm thế nào để chúng tôi quản lý người dùng trong vai trò trong ứng dụng của chúng tôi? Ví dụ: Ví dụ: chúng tôi có nhiều vai trò và người dùng của chúng tôi có thể được liên kết với các vai trò đó, chúng tôi có thể sử dụng ASC để quản lý nó không?
Vì vậy, các câu hỏi cuối cùng là: Bản thân ACS có bao gồm toàn bộ quá trình Xác thực và Cấp phép không? Chúng tôi vẫn cần sử dụng Nhà cung cấp thành viên .net? Phương pháp hay nhất để đáp ứng các yêu cầu của chúng tôi là gì?
Rất cảm ơn sự đóng góp của bạn.
Andrew cảm ơn rất nhiều vì câu trả lời của bạn. Vì vậy, về vai trò trong ACS tôi đã chính xác, về cơ bản chúng tôi không thể liên kết người dùng với vai trò, như chúng tôi có thể làm trong nhà cung cấp thành viên .net (UsersInRoles), nhưng chúng tôi có thể liên kết vai trò dựa trên IP. Còn ở giai đoạn đăng ký thì sao? Những gì chúng ta nên lưu trữ trong cơ sở dữ liệu của chúng tôi để nhận ra một người dùng (như là một phần của khách hàng của chúng tôi) ở giai đoạn xác thực? – Francesco
Không, những gì tôi nói là bạn ** có thể ** liên kết người dùng với vai trò sử dụng ACS. Tôi đã mở rộng câu trả lời của tôi ở trên để đề cập đến điều này. –