2011-09-06 17 views
5

OAuth 2.0 delegación se incluye dentro del AppFabric Servicio de Control de Acceso Azure:OAuth 2.0 proveedores de identidad en Azure AppFabric servicio de control de acceso de Windows (ACS)

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

Pero, ¿cómo en realidad se establecieron una identidad OAuth 2.0 ¿proveedor?

En la interfaz de administración cuando agrega un proveedor de identidad y selecciona el proveedor de identidad WS-Federation, debe proporcionar un documento de metadatos WS-Federation.

Sin embargo, cuando lee la documentación de los proveedores de OAuth 2.0 (es decir, http://msdn.microsoft.com/en-us/library/hh243647.aspx) no se menciona ningún documento de metadatos (Sí, sé que Windows Live está incluido como proveedor de identidad preconfigurado). ¿Es esto algo que tengo que escribir?


actualización

Ok, por lo que he encontrado que se pueden agregar proveedores de identidad adicionales usando el API en estos comandos de PowerShell como un ejemplo:

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

Sin embargo Al intentar agregar un proveedor de OAuth, acabo de recibir un error:

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 

otra actualización

La API de administración de ACS proporciona un mecanismo para agregar nuevos proveedores de identidad (si se establece como su OpenID WebSSOProtocolType), sin embargo, no puedo ver cómo se pasa en la tecla/secreto que el servidor de prueba OAuth (http://term.ie/oauth/example/) estoy usando requiere.

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

Respuesta

4

En una conversación de correo electrónico que tuve con Dominick Baier (www.leastprivilege.com) dijo:

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.

si he entendido correo electrónico de Dominick adecuadamente, no se puede usar OAuth en esta capacidad, tienes que usar OpenId. Desafortunadamente, el tipo que escribió el primer artículo del blog que mencionaste realmente no sabe nada sobre OpenID/OpenAuth: es un tipo WS-Fed. Lo digo porque lo escribí ... :)

2

El escenario de delegación de OAuth 2, sección 4.1 en el borrador 13, no obliga a ningún tipo de proveedor de identidades ni a ningún proveedor de identidades. Solo necesita hacer alguna forma de autenticación en su sitio web y redireccionar a la URL de su cliente con un código de autenticación.

Yo recomiendo echar un vistazo a la muestra delegación de autenticación 2 en:

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

Usted notará que en esta muestra la autenticación del usuario se implementa con un código de marcador de posición (nombre de usuario codificado/contraseña). En el escenario del mundo real, puede usar cualquier patrón de autenticación, incluida Federation con ACS, lo cual tendría sentido ya que ya está usando ACS para implementar su delegación.

Cuestiones relacionadas