forma segura de autenticar administrador en ASP.NET sitio usando OpenID con DotNetOpenID

StackOverflow https://stackoverflow.com/questions/56944

  •  09-06-2019
  •  | 
  •  

Pregunta

Alentado por fin, estoy tratando de escribir un ASP.NET sitio que utiliza OpenID para la autenticación de usuario.Es un regular WinForms sitio (no MVC.NET), el uso de la DotNetOpenId biblioteca para la autenticación.

Es seguro para mí para permitir/denegar funciones administrativas en el sitio por la simple comparación de la sesión actual del "ClaimedID" (como devuelto en el OpenIdLogin_LoggedIn evento, como miembro de la DotNetOpenId.RelyingParty,OpenIdEventArgs.Respuesta.ClaimedIdentifier) a un conocido administrador de OpenID (es decir,la mía)?

Si es así, es seguro para este ID para ser visible (por ejemplo,en el código fuente abierto), o en caso de ser "escondido" en un archivo de configuración o una fila de base de datos?(Sé que es mejor diseño para que sea configurable, mi pregunta es acerca de la seguridad.)

¿Fue útil?

Solución

Jarrett hace algunos buenos comentarios acerca del uso de tablas de base de datos.

Sólo para responder a otra de tus preguntas, no, no es un confidencialidad cosa para poner su OpenID en el código general.Si la configuración de roles parece excesivo para su sitio, una simple comprobación de igualdad en contra de su ClaimedIdentifier es simplemente perfecto.

Otros consejos

Mi solución es seguir la misma idea de las Funciones de la tabla.Después de que usted haya autenticado el usuario, buscar que los roles del usuario.Si el usuario tiene el rol de "Administrador" en el UserRoles tabla, entonces se puede hacer lo que el Administrador puede hacer.

Yo no emisión en abierto de ID en mi aplicación.Están almacenados en la tabla.En cada resultado de una acción, me echo en la tabla de Usuarios, ya que también he modificado la mina para almacenar varios estado del usuario de la información.Con la excepción de la página de inicio, va a ser que algún usuario la información que necesito de esa tabla.Estoy usando LINQ, así que incluyen la .LoadWith() para cargar el Usuario con su lista de funciones cuando se serializa.

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