2011-09-06 29 views
5

OAuth 2.0 đoàn được bao gồm trong AppFabric Access Service kiểm soát Azure:OAuth 2.0 Nhà cung cấp nhận dạng trong Windows Azure AppFabric Access Service Control (ACS)

http://blogs.objectsharp.com/cs/blogs/steve/archive/2011/04/11/windows-azure-access-control-services-v2-rtw.aspx

Nhưng làm thế nào để bạn thực sự thiết lập một bản sắc OAuth 2.0 các nhà cung cấp?

Trong giao diện quản lý khi bạn thêm một Nhà cung cấp nhận dạng và chọn nhà cung cấp nhận dạng Liên kết WS, bạn cần cung cấp tài liệu siêu dữ liệu Liên kết WS.

Tuy nhiên, khi bạn đọc tài liệu về nhà cung cấp OAuth 2.0 (tức là http://msdn.microsoft.com/en-us/library/hh243647.aspx), không có đề cập đến tài liệu siêu dữ liệu (Có, tôi biết Windows Live được bao gồm như nhà cung cấp nhận dạng được định cấu hình trước). Đây có phải là điều tôi phải viết không?


Cập nhật

Ok, vì vậy tôi đã phát hiện ra rằng bạn có thể thêm các nhà cung cấp danh tính bổ sung sử dụng API, xem lệnh này PowerShell là một ví dụ:

http://blogs.msdn.com/b/vbertocci/archive/2011/05/19/adding-a-custom-openid-provider-to-acs-with-just-one-line-of-powershell-code.aspx

Tuy nhiên khi cố gắng thêm nhà cung cấp OAuth, tôi chỉ gặp lỗi:

Add-IdentityProvider -Type "Manual" -Name "foo" -SignInAddress "http://term.ie/oauth/example/access_token.php" -Protocol OAuth -Namespace "abc" -ManagementKey "xxxxxx" 

Add-IdentityProvider : An error occurred while processing this request. 
At line:1 char:21 
+ Add-IdentityProvider <<<< -Type "Manual" -Name "foo" -SignInAddress "http://term.ie/oauth/example/access_token.php" -Protocol OAuth -Namespace "abc" -ManagementKey "xxxxxx" 
+ CategoryInfo   : CloseError: (:) [Add-IdentityProvider], ServiceManagementException 
+ FullyQualifiedErrorId : Microsoft.Samples.DPE.ACS.ServiceManagementTools.PowerShell.IdentityProviders.AddIdentityProviderCommand 

Cập nhật Một

API quản lý ACS cung cấp một cơ chế cho việc thêm các nhà cung cấp nhận dạng mới (nếu bạn thiết lập OpenID như WebSSOProtocolType của bạn), tuy nhiên, tôi không thể xem như thế nào bạn vượt qua trong khóa/bí mật rằng máy chủ kiểm tra OAuth (http://term.ie/oauth/example/) Tôi đang sử dụng yêu cầu.

http://msdn.microsoft.com/en-us/library/hh278947.aspx

Trả lời

4

Trong một cuộc trò chuyện email tôi đã có với Dominick Baier (www.leastprivilege.com), ông nói:

ACS actually supports OpenId IdPs – not OAuth. OAuth is used for token requests (delegation tokens typically).

To add new OpenIds IdP you need to use the management API – Vittorio has a blog post with a sample somewhere. But not all OpenId providers are supported.

Nếu tôi hiểu email Dominick đúng cách, bạn không thể sử dụng OAuth trong khả năng này, bạn phải sử dụng OpenId. Thật không may là anh chàng viết bài blog đầu tiên mà bạn đã đề cập thực sự không biết gì về OpenID/OpenAuth - anh ấy là một anh chàng WS-Fed. Tôi nói rằng vì tôi đã viết nó ... :)

2

Kịch bản ủy nhiệm OAuth 2, phần 4.1 trong bản nháp 13, không yêu cầu một loại nhà cung cấp nhận dạng hoặc bất kỳ nhà cung cấp danh tính nào cả. Bạn chỉ cần thực hiện một số hình thức xác thực trong trang web của mình và chuyển hướng đến URL của khách hàng bằng mã xác thực.

Tôi khuyên bạn nên xem xét các mẫu đoàn Auth 2 tại địa chỉ:

https://connect.microsoft.com/site1168/Downloads

Bạn sẽ nhận thấy rằng trong mẫu này xác thực của người sử dụng được thực hiện với một mã giữ chỗ (cứng mã hóa username/mật khẩu). Trong kịch bản thế giới thực, bạn có thể sử dụng bất kỳ mẫu xác thực nào bao gồm Liên kết với ACS, điều này có ý nghĩa vì bạn đã sử dụng ACS để triển khai ủy quyền của mình.

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