2013-02-11 25 views
6

Tôi cần nhận mã thông báo Windows từ từ Xác nhận quyền sở hữu. Giải pháp là một trang web WCF webservice yêu cầu sử dụng ADFS 2.0 và chạy trong IIS ASP.NET 4.0. (The Kerberos thẻ là cần thiết đối với quyền truy cập cơ sở dữ liệu giả)c2WTS (Yêu cầu dịch vụ mã thông báo cửa sổ) .net 4.5

Trong .NET 3.5 và 4.0 Service c2WTS được sử dụng để có được Windows nhận dạng từ tuyên bố:

WindowsIdentity winId = S4UClient.UpnLogon (UPN); Tuy nhiên, tài liệu cho c2WTS nêu rõ những điều sau: "... [Bắt đầu với .NET Framework 4.5, Windows Identity Foundation (WIF) đã được tích hợp đầy đủ vào .NET Framework. Phiên bản WIF được giải quyết bằng cách này chủ đề, WIF 3.5, không được dùng nữa và chỉ nên được sử dụng khi phát triển dựa trên Khuôn khổ .NET 3.5 SP1 hoặc Khuôn khổ .NET 4 ... "

Điều gì sẽ tương đương với c2WTS trong .NET 4.5?

Trả lời

5

Không có tương đương. Nhưng bạn vẫn có thể cài đặt WIF để nhận dịch vụ C2WTS.

Trình xử lý mã thông báo bảo mật Saml có tính năng MapToWindows trả về nhận dạng Windows. Điều này tương tự như những gì C2WTS thực hiện - nhưng

1) danh tính cửa sổ chỉ có thể được sử dụng để ủy quyền cục bộ - để mạo danh bạn sẽ cần đặc quyền SYSTEM. Đây là những gì C2WTS chạy dưới. 2) để ủy quyền mã thông báo bạn cần cấu hình ủy nhiệm hạn chế trong AD (giống như với C2WTS)

+0

Cảm ơn bạn đã đề xuất. Đã không thử .NET 4.5 MapToWindows tại mã thông báo bảo mật Saml, nhưng đang sử dụng C2WTS. Tôi có thể nhận được một bản sắc, nhưng phái đoàn hướng tới Oracle DB tại Linux không hoạt động. Chúng tôi đang xáo trộn với Đoàn đại biểu bị hạn chế với việc chuyển giao Nghị định thư trong AD hướng tới một dịch vụ Oracle tại Linux. Tôi sẽ đánh dấu câu trả lời này là câu trả lời đúng vì câu hỏi của tôi, mặc dù mọi thứ vẫn chưa hoạt động như một tổng thể. – HakonIngvaldsen

0

S4U được xây dựng tại thời điểm này. Bạn không cần C2WTS. Bạn chỉ có thể làm:

var id = new WindowsIdentity(valueFromClaim); 
// continue your impersonation 

Đối với các cuộc gọi dịch vụ, nếu bạn thiết lập các thông tin quan trọng để DefaultCredentials, bạn nên có ok như thế này xuất hiện để thực hiện ToWindowsIdentity trên xử lý thẻ SAML.

Vì bạn đang đi đến Oracle, bạn có thể cần phải tạo rõ ràng ngữ cảnh Windows và mạo danh (xem: Creating a service for user (S4U) token).

Tất cả điều đó cho biết, bạn phải có ủy quyền hạn chế được định cấu hình đúng hoặc ủy quyền sẽ không hoạt động.

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