Tags:
create new tag
view all tags
I have an interesting little security problem, and I know the solution will be of interest to a lot of people so I'm posting it here for the cognoscenti to comment.

I have a web that contains a mixture of topics, all related to research and engineering of a range of products, and almost all highly sensitive.

I also have three partner companies who I need to be able to interact with my team on projects. The partner companies each needs access to a different subset of the topics.

Now, here's the rub. The three partner companies know about eachother, and expect to be able to collaborate. So a Venn diagram of the security problem looks like this:

.-------------------------------------------.
|  All topics                               |
|                                           |
|      .-----------------.                  |
|      |                 |                  |
|      |   Partner 1     |                  |
|      |            .----+------------.     |
|      |            |    | Partner 2  |     |
|      |      .-----+----+-----.      |     |
|      |      |     |    |     |      |     |
|      |      |     |    |     |      |     |
|      `------+-----+----'     |      |     |
|             |     |          |      |     |
|             |     `----------+------'     |
|             | Partner 3      |            |
|             `----------------'            |
|                                           |
`-------------------------------------------'

The users in this context are technical, but not particularly au fait with computers. Any security system has to be very simple and easy to use.

Any suggestions on how to organise the security in this environment would be welcome. Note that setting up eight different webs to handle the different access permutations is not an option. Oh, and I might add other partners at any point.

-- CrawfordCurrie - 02 Mar 2004

Thought I never came across Venn diagram before , but if you are looking for flexibility, power of 2 numbers are quite useful ( powerful ).

This has been mentionned somewhere else in TWiki.org for permission on FormFields, but I could not find the Topic right now.

If you number your groups (using a variable) :

groupe value power of 2 binary
grp0 1 2*0 000 0000
grp1 2 2*1 0000 0001
grp2 4 2*2 0000 0010
grp3 8 2*3 0000 0100
grp4 16 2*4 0000 1000
grp5 32 2*5 0001 0000

now if you give each topic a number (setting a variable or with a multiselect form) : Example:

Topic group having permission
4 grp2
19 grp0, grp1, grp4
21 grp0,grp2,grp4

the permission can be easily tested in Perl using the binary and ( & )

now each user could be in more than group too and the binary and would still work.

ie: a user with a group number of 63 would have access to all the topics unless the topic number would be 0 (no access).

I believe it could be used to handle some kind of LogicalWeb too without too much programming or CPU usage.

-- MarcelTrap - 03 Mar 2004

Sorry, I should have made clear hte absolute constraint that this has to work in today's TWiki, no code changes, no hacks. I know I could change the security system to suit, but I don't want to.

-- CrawfordCurrie - 03 Mar 2004

Your Venn diagram could be represented by the following table:

1 --> allow

0 --> deny

grp0 grp1 grp2
1 1 1 AllowAllTemplate
1 1 0 DenyGrp2Template
1 0 1 DenyGrp1Template
1 0 0 DenyGrp2AndGrp1Template
0 1 1 ...
0 1 0 ...
0 0 1 ...
0 0 0 ...

Create the 8 TopicTemplates each with the appropriate * set DENYTOPIC...*

using the form given in MultipleTemplatesPerWeb :

may be ? Looks like there is no DENYTOPICREAD.. ?

well I don't know!

-- MarcelTrap - 03 Mar 2004

I just ran across this while looking for something else. Couldn't your problem be solved with TWikiGroups? Each "sensitive" topic would have a TOPICALLOWVIEW for the group that should see it.

-- BruceDawson - 06 Oct 2005

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r5 - 2005-10-06 - BruceDawson
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.