2011-10-24 13 views
6

Dưới đây là kịch bản:AZURE ACS - Windows Live ID - Làm cách nào để nhận email và tên của người dùng được xác thực?

MVC 3 ứng dụng runing trong Azure Dev môi trường Authentication trong Azure ACS thực hiện theo cùng một cách tìm thấy ở đây http://msdn.microsoft.com/en-us/library/hh127794.aspx

Tôi cố gắng để có được tên người dùng, và e-mail, nhưng tôi có thể không tìm cách định cấu hình "Quy tắc xác nhận quyền sở hữu", theo cách tôi sẽ nhận được giá trị văn bản rõ ràng, thay vào đó tôi nhận được một chuỗi có vẻ được mã hóa. Vì vậy, tôi có thể định cấu hình quy tắc theo cách mà tôi nhận được bằng văn bản rõ ràng không? Hoặc tôi có thể mã hóa giá trị trả lại không? Có bất kỳ điều gì có thể xảy ra hoặc tôi đang xem xét điều sai ở đây.

Cảm ơn

Trả lời

10

IIRC, nó là chống lại chính sách quyền riêng tư trực tiếp Windows để giải phóng tên hoặc email của người dùng địa chỉ như tuyên bố (không giống như Gmail hay Yahoo!). Như vậy, bạn không thể nhận được những tuyên bố đó từ Trực tiếp (trừ khi bạn là Microsoft).

Giá trị duy nhất bạn có thể nhận được được gọi là số nhận dạng tên. Nó là duy nhất cho mỗi miền RP (nghĩa là nó không phải là một giá trị duy nhất cho mỗi LiveID, nhưng khác nhau theo tên miền). Điều này cũng có chủ ý để bạn không thể có các trang web khác nhau cộng tác để theo dõi người dùng. Thông thường, bạn sẽ nhận được tên định danh (được gọi là một PUID) và sau đó dính vào cơ sở dữ liệu của bạn ở đâu đó để bạn biết rằng bạn đã thấy nó trước đây. Sau đó, người dùng đăng ký bên cạnh bạn với tên, email, v.v. và bạn tương quan với PUID.

Mặt khác, LiveId cũng hỗ trợ OAuth2, vì vậy bạn có thể nhận được bất kỳ thông tin hồ sơ người dùng nào bạn cần từ người dùng (với sự đồng ý của họ). Xem here.

+0

gì ngăn cản bạn từ việc xây dựng một STS tùy chỉnh với một vài dòng mã có sử dụng server-side kết nối API để thêm email + đầy đủ tên tuổi như tuyên bố bổ sung? http://msdn.microsoft.com/en-us/library/hh243649.aspx – Nariman

+0

Danh sách này liệt kê tất cả các nhà cung cấp và chi tiết của họ trong Azure ACS http://msdn.microsoft.com/en-us/library/gg185971.aspx và không giống như dunnry cho biết bạn chỉ có thể nhận được xác nhận quyền sở hữu tên và xác thực từ Windows Live, hãy xem điều này để xác minh. http://msdn.microsoft.com/en-us/library/gg185944.aspx –

1

thể nhưng nó đòi hỏi một chút mã cho một sts tùy chỉnh:

https://gist.github.com/1867792

Mã không xây dựng và phụ thuộc không được bao gồm ... nhưng nó chủ yếu dựa trên một trang web khởi động thinktecture đầu được chuyển đến MVC4 với các thay đổi được hiển thị ở trên.

8

Đây là tổng số #FAIL trên một phần của Microsoft. Người dùng, khi đăng nhập vào trang web của bạn bằng cách sử dụng Google hoặc các nhà cung cấp khác, họ phải chấp nhận trước tiên. Sau đó, họ chỉ cần truyền thông tin cơ bản đến trang web, trang web sử dụng nó và mọi người đều hạnh phúc.

BTW bạn có thể lấy nó từ người dùng với các trang mã hậu trường nhưng không liền mạch cho người dùng, yêu cầu quy trình thủ công, tuy nhiên hệ thống LiveID không an toàn hơn khi thực hiện việc này.

-1

Có thể bằng Thủ thuật iFrame.

<iframe src="https://login.live.com/login.srf?wa=wsignout1.0" frameborder="0"></iframe> 

này sẽ không chuyển hướng bạn đến MSN trang

0

Blog này thảo luận về việc tạo ra một cửa sổ tùy chỉnh sống STS nhà cung cấp và sau đó kết hợp nó như là một nhà cung cấp danh tính tin cậy trong SharePoint.

http://blogs.technet.com/b/speschka/archive/2012/03/01/finally-a-useful-way-to-federate-with-windows-live-and-sharepoint-2010-using-oauth-and-saml.aspx

Đáng tiếc là nó có vẻ như đội Azure chỉ dường như không hiểu rằng mọi người có thể muốn thực sự có được một cái gì đó hữu ích trở lại từ Windows Live ID.

Bạn cũng có thể xóa cửa sổ trực tiếp Id làm tùy chọn đăng nhập bằng cách nhấp vào nó trong nhà cung cấp danh tính và sau đó bỏ chọn liên kết với bên phụ thuộc của bạn.

(Really lạ mà bạn không thể chọn để xóa nó = P)

0

Có một vài kỹ thuật để truy vấn các máy chủ trực tiếp để biết thêm thông tin về người dùng xác thực (được cung cấp các khóa học mà họ đã đưa ra sự đồng ý) . Bạn có thể thực hiện một số tùy chỉnh đơn giản cho trang web của mình bằng cách sử dụng một số JavaScript phía máy khách để tìm nạp thông tin như được hiển thị trong ví dụ tại đây: http://msdn.microsoft.com/en-us/library/live/hh826534.aspx.

Cũng có thể, mặc dù có liên quan nhiều hơn một chút, để truy vấn máy chủ Live từ mã phía máy chủ của bạn. Ứng dụng ví dụ được mô tả tại http://dominicbetts.github.io/waad-acs-sample/index.html hiển thị một phương pháp có thể có trong ứng dụng MVC4.

0

Có vẻ như có một cách, một chút phức tạp, nhưng bằng cách trở thành nhà môi giới và sử dụng API kết nối trực tiếp, bạn có thể đạt được chức năng này.

Xin xem: http://code.msdn.microsoft.com/windowsazure/Get-Azure-ACS-work-40d588cc#content

+0

Các câu trả lời chỉ có liên kết không được khuyến khích vì Microsoft có thể thay đổi các liên kết của nó và khiến câu trả lời này trở nên không hợp lệ. Ngay cả một mẫu mã đơn giản hoặc bộ xương sẽ giúp đỡ. – hexafraction