2012-06-06 22 views
6

He estado investigando el Servicio de control de acceso de Azure (ACS), y parece que es especialmente bueno para manejar la autenticación de proveedores de identidad heterogéneos (configurables). Luego hay varios escenarios adicionales que parece ser compatible (ver, por ejemplo, ACS How-To's).¿Cuándo no usar ACS?

La pregunta que tengo es la opuesta: realmente me ayudaría a entender, para usarla correctamente, para qué es ACS no bueno para. ¿Cuáles son las limitaciones de ACS y/o cuáles son algunos escenarios donde ACS sería inapropiado?

(Supongamos, por el bien de la discusión, que planeo crear una API web pública y provechosa :) y el front-end web correspondiente alojado en Azure, es decir, que me importa la identidad del usuario. Si lo desea, puede asumir que mi sistema se compilará utilizando .NET.)

¡Gracias!

+1

Pregunta abierta Wow, he utilizado ACS en producción y me encanta, una limitación, no en ACS pero en Windows Live es que no puede obtener el tipo de reclamación para la dirección de correo electrónico de la persona 'AZURE ACS - Windows Live ID - ¿Cómo obtengo el correo electrónico y el nombre del usuario autenticado? ': Http://stackoverflow.com/questions/7871960/azure-acs-windows-live-id-how-do-i-get-the-email-and -name-of-the-authenticat Puedes evitar esto, pero sentí que era molesto. ¡Interesado en ver lo que otras personas piensan! – user728584

+0

@ user728584: Gracias por el enlace. El hecho de que todavía tengo que administrar mis propios registros de usuarios también se menciona en esa pregunta. Sí, estuve investigando la documentación de ACS, los videos de Vittorio Bertocci, etc. desde hace un tiempo :), y preguntar al revés con la esperanza de aclarar las cosas. –

+0

Bueno, estás en el camino correcto con Vittorio (identidad de almirante). ADFSV2 también es excelente, mis clientes lo usan junto con la autenticación basada en formularios (funcionalidad existente) para ofrecer al público en general un inicio de sesión en las redes sociales, p. ¡Facebook, al resumir todas las travesuras de seguridad de ACS, funciona de maravilla! – user728584

Respuesta

5

No debe usar ACS como proveedor de identidad.

Ocasionalmente veo cierta confusión en cuanto a qué función cumple ACS. ACS at es core es un proveedor de federación, pero hay un escenario válido en el que desea que su servicio de back-end (un subsistema confiable) se autentique directamente a ACS utilizando un secreto compartido o un certificado. Esto se puede hacer usando Identidades de servicio. Sin embargo, más de una vez he visto escenarios de ACS propuestos donde se aprovisionarán múltiples cuentas, y esto se lograría creando una identidad de servicio para cada usuario.

Eso realmente no es cómo se diseña ACS. Si de repente tiene miles de usuarios, hacer de ACS su directorio de usuarios fuente autorizado no se escalará. ACS ofrece un buen motor de reglas que fue diseñado para normalizar los tipos de reclamos entrantes de varios proveedores de identidades, o para una política de autorización simple como la generación de reclamos de funciones.

Pero las capacidades de ACS aquí no se deben confundir con las soluciones totalmente automatizadas de directorio, autenticación y autorización, como AD y ADFS. En resumen, ACS no es una versión de AD/ADFS.

+1

Gracias, ese es el tipo de cosas que quiero entender. (Estaba considerando hacer exactamente eso, en realidad. Tengo una gran cantidad de dispositivos cliente que necesitan autenticarse con certificados X.509 individuales. He luchado con cómo vincularlo conceptualmente con ACS. Sin embargo, tema para otra pregunta). –

4

Aunque puede usar Windows Live como proveedor de identidad en ACS, hay algunos casos en los que no le gustaría usarlo. El ID de usuario que recibe depende del espacio de nombre de ACS. Esto significa que si su aplicación utiliza múltiples espacios de nombres de ACS (digamos uno para Europa y uno para EE. UU.), Esto podría causar algunos problemas.

Imagine el escenario donde su usuario inicia sesión a través de su espacio de nombres de EE. UU. Su aplicación recibirá la identificación (hash) para ese usuario y tal vez cree un perfil para ese usuario en su aplicación. Una semana más tarde, su usuario viaja a Europa y podría iniciar sesión a través de su espacio de nombres de Europa. Aunque este es el mismo usuario, obtendrá otro ID (hash) para ese usuario, haciendo que parezca que este es un nuevo usuario, aunque no lo sea. Esto se debe a que la ID (hash) depende del espacio de nombres de ACS.

Quoting an MSFT employee:

El ID de usuario que recibes de ACS para Windows Live ID será específico para ese usuario en el espacio de nombres de servicio. Si usa un espacio de nombres de servicio diferente, obtendrá un valor diferente para el mismo usuario. Así que para responder a sus preguntas: * Laboratorios ACS y Prod ACS [diferentes ID]

  • diferentes partes que confían en diferentes suscripciones (en prod) [diferentes ID]

  • diferentes RPs en la misma suscripción [ mismo ID de espacio de nombres si el servicio es el mismo, diferente para 2 espacios de nombres en la misma suscripción ]

  • Si elimino y reconstruir el RP para el mismo reino, misma cuenta [mismo ID]

Actualización:

Para responder en uno de los comentarios, es cierto que no se va a la dirección de correo electrónico del proveedor de identidades de Windows Live. Pero debe suponer que no puede controlar la información que obtendrá de los proveedores de identidad pública. Una buena práctica sería simplemente depender del identificador del usuario y crear un perfil para el usuario (usted administrará el perfil en su aplicación). Cuando obtiene información del proveedor de identidad, ya puede actualizar el perfil, pero si esta información no está disponible, simplemente debe pedirle al usuario que actualice su perfil. Asegúrese de mirar el ejemplo BlobShare para más información.

+0

+1 para una respuesta completa. Pero lo que está abordando es una limitación técnica (bueno, por diseño) de ACS en un escenario particular. Estoy más interesado en qué * escenarios * están allá donde ACS no sería una buena opción. –

Cuestiones relacionadas