Pregunta

La delegación OAuth 2.0 se incluye dentro del servicio de control de acceso Azure AppFabric:

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

Pero, ¿cómo configuras realmente un proveedor de identidad OAuth 2.0?

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

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 un documento de metadatos (sí, sé que Windows Live está incluido como un proveedor de identidad preconfigurado). ¿Es esto algo que tengo que escribir?


Actualizar

OK, entonces he descubierto que puede agregar proveedores de identidad adicionales usando la API, vea estos comandos de PowerShell como ejemplo:

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

Sin embargo, al intentar agregar un proveedor de OAuth, solo recibo 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 establece OpenId como su WebSoprotocoltype), sin embargo, no puedo ver cómo pasa la clave/secreto que el servidor de prueba OAuth ( http://term.ie/oauth/example/ ) Estoy usando las necesidades.

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

¿Fue útil?

Solución

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

ACS en realidad admite IDPS de OpenID, no OAuth. OAuth se usa para solicitudes de tokens (tokens de delegación típicamente).

Para agregar un nuevo IDP de OpenIDS, debe usar la API de administración: Vittorio tiene una publicación de blog con una muestra en algún lugar. Pero no todos los proveedores de OpenID son compatibles.

Si entendí el correo electrónico de Dominick correctamente, no puede usar OAuth en esta capacidad, debe usar OpenID. Desafortunadamente, el tipo que escribió el primer artículo de blog que mencionaste realmente no sabe nada sobre OpenID/OpenAuth: es un tipo alimentado por WS. Digo eso porque lo escribí ... :)

Otros consejos

El escenario de delegación de OAuth 2, Sección 4.1 en el borrador 13, no exige un tipo de proveedor de identidad ni ningún proveedor de identidad. Solo necesita hacer algún tipo de autenticación en su sitio web y redirigir a la URL de su cliente con un código de autenticación.

Recomiendo echar un vistazo a la muestra de delegación Auth 2 en:

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

Notará que en esta muestra la autenticación del usuario se implementa con un código de titular de lugar (nombre de usuario/contraseña codificado por Hard Coded). En el escenario del mundo real, puede usar cualquier patrón de autenticación, incluida la federación con ACS, lo que tendría sentido ya que ya está utilizando ACS para implementar su delegación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top