Jeroen has started implementing said RBAC module, and we also have a
related requirement to support multi-tenancy... ie we need a domain concept
of "User" somewhere, which is in its own subdomain but that an be managed
through Isis itself.

Intention is to make this a deliverable, in some form, for 1.7.0; as you
said, Oscar, there was a lot of interest in this at IsisCon.

Cheers
Dan



On 31 July 2014 07:41, GESCONSULTOR - Óscar Bou <o....@gesconsultor.com>
wrote:

>
> Hi to all.
>
> I think Dan's proposal is the best implementation possible, as it would
> not be embedded on the Domain, which would imply that could, for example,
> being configured by an admin through a UI.
>
> This is related with an Isis Authorization module we talked about on
> IsisCon, considering things like a RBAC style (see [1], [2] for Shiro
> related materials; [3] [4] for RBAC generic introduction).
>
> Nearly all business applications will "suffer" for implementing this
> requisite, so it's a good candidate for a generic Isis module.
>
> Thanks,
>
> Oscar
>
> [1]
> https://shiro.apache.org/2011/05/24/the-new-rbac-resource-based-access-control.html
>
> [2] http://sangeeth.github.com/java/shiro/rbac-using-shiro.html
>
> [3] http://csrc.nist.gov/groups/SNS/rbac/
>
> [4] http://csrc.nist.gov/rbac/sandhu-ferraiolo-kuhn-00.pdf
>
>
>
> El 30/07/2014, a las 23:37, Dan Haywood <d...@haywood-associates.co.uk>
> escribió:
>
>
> Hmm, not particularly keen on this suggestion... having role names embedded
> in annotations isn't a good idea, I think.
>
> For myself, I'd rather that this requirement was handled in a cross-cutting
> fashoin, through some sort of extension to the Isis' authorizor API.
>
> However, to solve this issue properly, I think we might need to extend
> Isis' security model somewhat.  Right now in the authorizor we check if a
> given user (via their roles) can view/use each of an object's members
> (properties/collections/actions) but we don't have the concept of checking
> if the user can view the object at all.
>
> If we did introduce this idea (of object-level checks), then we could also
> implement some sort of plug-in point for the authorizor such that
> instance-based authorizers (eg in a chain of responsibility pattern) could
> be added to supplement Isis' usual class-based authorizors.
>
> I know this design would work because the Naked Objects "sister project"
> (on .NET) works this way.
>
> Hopefully that makes some sort of sense.... thoughts, anyone?
>
> Dan
>
>
>
>
> On 29 July 2014 22:56, matias nahuel heredia <mat...@informaticos.com>
> wrote:
>
> El 29/07/14 08:16, Dan Haywood escribió:
>
> On 29 July 2014 02:28, matias nahuel heredia <mat...@informaticos.com>
>
> wrote:
>
> hi Dan!!
>
> how can i fix this vulnerability in Apache isis?
> https://www.youtube.com/watch?v=AghmbcVE710
>
>
> thanks for recording this, helps explain the issue.
>
> What we're talking about here is per-instance security... the idea that
> some users shouldn't be able to access some object instances (even though
> they do in general have access to other instances of a given class type,
> such as ToDoItem).
>
> As of Isis 1.6.0, the best I can suggest is to use the loaded() lifecycle
> callback (on ToDoItem itself) and have it thrown an exception if the
> object
> should not be accessible.  Then, the ExceptionRecognizer can be used to
> translate this exception into a user-friendly error message.  If the
> loaded() lifecycle callback throws the javax.jdo.ObjectNotFoundException
> then this is already detected by the default implementation of
> ExceptionRecognizer (namely ExceptionRecognizerCompositeFo
> rJdoObjectStore):
>
>
>         final String ownedBy = getOwnedBy();
>         final String currentUser = container.getUser().getName();
>         if(!ownedBy.equals(currentUser)) {
>             throw new JDOObjectNotFoundException("No such object");
>         }
>
>
> This code results in a redirect to the error page with a message: "Unable
> to load object. Has it been deleted by someone else?  No such object".
> The "Unable to load object. Has it been deleted by someone else?" bit
> comes
> from the ExceptionRecognizer, the "No such object" comes from the loaded()
> method.
>
> I can think of two improvements.
>
> First, it would be to move this cross-cutting concern out of the entity
> (ToDoItem) and into some single subscriber that could do this sort of
> verification for all classes.  We do have a ticket [1] to do this, I'll
> bring it forward to tackle in the next release 1.7.0.
>
> Second, the stack trace shown by Isis is rather ugly and also leaks the
> information that there is an object with the given identifier (even if the
> object itself isn't shown).  So perhaps the ExceptionRecognizer needs to
> become more sophisticated such that the stack trace will be suppressed in
> some cases.
>
> I've raised a ticket for this requirement [2], citing this thread [3]
>
> Let me know your thoughts on the above.
>
> Thanks
> Dan
>
>
> [1] https://issues.apache.org/jira/browse/ISIS-803
> [2] https://issues.apache.org/jira/browse/ISIS-846
>
> i think the better way to validate this is the creation of metanotation
>
> in the Framework
> like that
> @forUser(name="getOwnedBy",allfor="role1,role2")
> public class NameClass
> {
>
>
> }
>
>
>
> Óscar Bou Bou
> Responsable de Producto
> Auditor Jefe de Certificación ISO 27001 en BSI
> CISA, CRISC, APMG ISO 20000, ITIL-F
>
>    902 900 231 / 620 267 520
>    http://www.twitter.com/oscarbou
>
>    http://es.linkedin.com/in/oscarbou
>
>    http://www.GesConsultor.com <http://www.gesconsultor.com/>
>
>
>
> Este mensaje y los ficheros anexos son confidenciales. Los mismos
> contienen información reservada que no puede ser difundida. Si usted ha
> recibido este correo por error, tenga la amabilidad de eliminarlo de su
> sistema y avisar al remitente mediante reenvío a su dirección electrónica;
> no deberá copiar el mensaje ni divulgar su contenido a ninguna persona.
> Su dirección de correo electrónico junto a sus datos personales constan en
> un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es la de
> mantener el contacto con Ud. Si quiere saber de qué información disponemos
> de Ud., modificarla, y en su caso, cancelarla, puede hacerlo enviando un
> escrito al efecto, acompañado de una fotocopia de su D.N.I. a la siguiente
> dirección: Gesdatos Software, S.L. , Paseo de la Castellana, 153 bajo -
> 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015 (Valencia).
> Asimismo, es su responsabilidad comprobar que este mensaje o sus archivos
> adjuntos no contengan virus informáticos, y en caso que los tuvieran
> eliminarlos.
>
>
>
>
>
>

Reply via email to