Collaborative Portal Security CSE 5810 Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-1155 Storrs, CT 06269-1155 steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818 PortalSecurity-1 Security for Collaborative Web Portals CSE 5810 Collaborative Portals Rapidly Emerging as Means for Communication, Interaction, and Problem Solving over Distances SourceForge MediaWiki Microsoft Sharepoint phpBB Security Model and Enforcement Often Lacking Consider WIKIs Anonymous Users (Read Only) Registered Users (Full Write Access) Result: No Guarantee of Data Correctness Need to Transcend Simplistic Approach for Application Level, Document Level (Author/View), and Look-and-Feel of Portal Itself PortalSecurity-2 What is a WIKI? CSE 5810 Repository for Information that Accessible to All Collaborative Platform Content Contribution/Creation/Modification Document Authoring Historical Tracking of Actions Shared Platform to Facilitate Information Exchange, Joint Efforts, etc. Runs in Web Environment (Browser) – No Software to Install Limited Security: User Accounts/Passwords PortalSecurity-3 CSE 5810 PortalSecurity-4 CSE 5810 PortalSecurity-5 CSE 5810 PortalSecurity-6 CSE 5810 PortalSecurity-7 MediaWiki underlies WikiPedia CSE 5810 http://www.mediawiki.org/wiki/MediaWiki PortalSecurity-8 MediaWiki from SourceForge CSE 5810 PortalSecurity-9 A Wiki for Accreditation CSE 5810 PortalSecurity-10 Creating an Account CSE 5810 PortalSecurity-11 Viewing the Main Page CSE 5810 PortalSecurity-12 Uploading Documents CSE 5810 PortalSecurity-13 Creating and Modifying Content CSE 5810 PortalSecurity-14 Viewing the Historical Record CSE 5810 PortalSecurity-15 Customized Searching CSE 5810 PortalSecurity-16 Uploading Images CSE 5810 PortalSecurity-17 Problems with MediaWiki and Others CSE 5810 Not Very User Friendly, Particularly for NonComputer Savvy Population Difficult to Customize with Specialized Features and Capabilities beyond Basic Look and Feel Changes Security Limited to User/Password Combinations Everyone can do Anything Set up as Shared and Collaborative for All No Control on Incorrect Content Being Uploaded Addition of Security Violates General WIKI Concept of Open and Available to All PortalSecurity-18 Current R&D on WIKIs CSE 5810 Led by Serebrum (www.serebrum.com) Developing AXON WIKI with Capabilities that include: Content Creating Editing (WYSISYG) Document Publishing (Web, PDF, RTF) Document Distribution (Email, Print, Fax) Mobile Access (Limited with BlackBerry) Security Role-Based Access Control to Define Privileges For Example, Physician, Provider, Patient, Clinical Researcher, etc. Full Collaborative Environment PortalSecurity-19 Usage of Axon in Safety.Net CSE 5810 Used by Project Team (PIs, Co-PIs, Providers, etc.) Repository for Planning Effort Upload, Create, Review, Modify Documents Allows Safety.Net Team to Familiarize Themselves with WIKI Technology/Web Portals No Software to Install Problems with Off-the-Shelf Product (MediaWiki) Customization Time Consuming (and Limited) Security Minimal – but Acceptable for this Use (Can’t store any Patient Related Information) Limited User Friendliness May Result in Poor Opinion of Web Technology PortalSecurity-20 Usage of WIKIs in Safety.Net CSE 5810 Another Alternative – Use AXON Product Still Web Solution (No Software to Download) Professional Developers Customize AXON for Use on Project Multi-Pronged Approach Start with AXON for PIs, Co-PIs, Providers as Means to Support the Grant Explore the Potential Usage/Extensions of AXON to Support Patient Access to Health Care Data Synergistic Teams (Serebrum, UCHC, UConn CSE) Submit Phase I Grants for Funding In-Kind Software Contribution/Pay for Customization Work Currently Funded PortalSecurity-21 Potential Usage of WIKIs in CTSA CSE 5810 Use of AXON as Enabling Technology for the Grant Web-Based and Hand-Held Interfaces Customization for Biomedical Informatics Platform for Clinical Research (Recruit Patients, Providers, etc.) Information Dissemination (Newsletters, etc.) Architectures and Solutions for Integration with Healthcare Systems (EMR, EHR) Security and HIPPA Compliance XML Standards for Health Data Document Extensions (Medical Images) Visualization Extensions (Data Mining) Going Independent Route for Team Project PortalSecurity-22 A First Snapshot of AXON CSE 5810 PortalSecurity-23 A First Snapshot of AXON Infolet – Piece of Information that can Easily Created, Edited, Classified, etc. CSE be 5810 Infolets organized into Accordions (US Travel, Project Brainstorm, etc.) For Our Purposes – HIT Related Topics PortalSecurity-24 A First Snapshot of AXON CSE 5810 Docs can be Images, Word, PDF, anything… This is an editable document associated with the Selected Topic Accordions Contain a Topic Topics Parent Topics, Child Topics, GrandChild Topics Customizable Based on Domain PHR: Parent Topics of: History, Meds, Visits, etc. Each Topic has Document (Editable) and Attached Documents The Topic Tree is Customizable by User/Role so that Different Information visible to Different Users PortalSecurity-25 Other AXON Features CSE 5810 Intended to be Fully Fledged Collaborative Tool Work Over Distance History + Audit Trail Full-text search Integrated CMS + DMS Hierarchical topic tree Easy Content Creation PortalSecurity-26 Editing Topic Documents CSE 5810 For Each Topic,Associated Document can be Created/Edited with Full WYSISYG editor Other WIKIs Don’t have this Capability Extending this to Spreadsheet Creation Word-like Interface for Document Creation and Modification PortalSecurity-27 Other AXON Features CSE 5810 This allows Documents to be Assembled From Topic Down Combines Docs Creates New Doc This is the WIKIBerry Interface Limited Access View and Edit Content Synchs with Server PortalSecurity-28 Architecture Promotes Customizability CSE 5810 Presentation Layer BrainStorm Struts (JSP / Servlets) DITA Publishing Channels Elicitation Toolkit Ajax Requirements Ontology Web Workstation VPN F I R E W A L L Application Layer RBAC Axon (Wiki + CMS + DMS + Search) Data Layer LDAP Laptop Any DB Hibernate Ajax Engine WebSphere Grayed Boxes (Elicitation Toolkit and Ontology) are Application Dependent/Customizable PortalSecurity-29 Security Concepts and Permissions in Axon CSE 5810 A user is identified by: Username (unique), userid (unique), User duration (userstarttime and userendtime that the user is active). A role can be defined for any capability Standard roles: guest, author, manager, admin For each role, there is a list of allowable topics A user associated with one or more roles in axon User authenticated (user name, password) User selects from list of authorized roles a set of Axon customizes itself based on the chosen role using the permissions stored in the database Able to change roles during a session. Multiple separate sessions each with its own role. PortalSecurity-30 Security Concepts and Permissions in Axon CSE 5810 To isolate user from role: group abstraction Each User is the member of one or more Groups Group is identified by: GroupName (unique), GroupID (unique), and Group duration (GroupStartTime and GroupEndTime Users in multiple groups and have multiple roles Each group can have zero or more users Active Session for a User limits the User to a particular Group <UserID, GroupID> From a security perspective (see next slide): Permissions will be assigned to Roles Roles will be assigned to Users/Groups Users/Groups will be assigned to Accordions. PortalSecurity-31 CSE 5810 PortalSecurity-32 Current AXON Main Scren CSE 5810 PortalSecurity-33 Other Important Concepts CSE 5810 A Project contains multiple Accordions E.g. US Travel, Brainstorm, EGuru, and Report For Each Accordions, a Topic Tree, a Document List, and an Index is maintained Each Accordion can have one or more Users, Each Accordion can have zero or more Groups University Accordions: Just like Peoplesoft Faculty, Student, Grad Program Director Faculty Accordion (corresponding to the Faculty Role) would have Record Grade, Permission Numbers, Advisee List, and other Child Topics PHR Accordions: Patient History, Education Materials, Appointments, etc. PortalSecurity-34 Other Important Concepts CSE 5810 The Topic Tree contains three levels of parent, child, and grandchild topics: Each topic in this tree is associated with exactly one xhtml page. Each topic in this tree is associated with zero or more documents of all types (Word, PPT, PDF, GIF, etc.). The DOCS tab contains a list of documents. specifically, for the selected topic - all documents for the topic and its descendants are shown. PortalSecurity-35 Axon Permissions CSE 5810 Basic Topic Tree Permissions Each Role can have one or more topics Each Group can have zero or more topics Each Accordion can have zero or more topics Upon Successful Login, the Accordions for a User in a Group with a Role are Displayed Advanced Topic Tree Permissions: View Means that the User has permission to View the xhtml page associated with that topic Edit Means that the User has permission to modify, delete, update, etc., the xhtml page associated with that topic PortalSecurity-36 Axon Permissions CSE 5810 Edit/History Permissions Edit having a value of Yes means the Edit button is enabled If the Topic Tree has a Permission of Edit for a Topic, then the permission for the Topic Button Edit should be set to Yes. History View and History Rollback are assigned on a Yes/No basis to each Role. Button Permissions: Buttons: Global Menu for Hide, History, Import, Export, Email, Fax, and Print. Permissions are Yes/No on a role-by-role basis. No means that the associated ICON doesn’t appear PortalSecurity-37 Axon Permissions CSE 5810 Topic Icon Permissions: Five Icons are: New Topic to Create a new Topic Copy to Make a Copy of an Existing Topic Paste to Paste a Copy of an Existing Topic Rename to Change the Name of a Topic Archive to Store a new Version of the xhtml page associated with the topic Permissions are Yes/No on a role-by-role basis. No means that the associated ICON doesn’t appear PortalSecurity-38 Axon Permissions CSE 5810 Document Permissions View: Open Document (word, PPT, etc.) with associated desktop viewer but do not save changes. Add: Be able to Import a Document Replace: Be able to Substitute a new Document for an Existing Document Replace is really "Substitute this new document while saving all versions of the old one." Archive: Transition a document to being "logically offline" as it exists at that point in time and remove it from the list of active documents Users will not be able to view the archived documents. An Administrator has the authority to restore archived documents if required PortalSecurity-39 Realizing RBAC in Axon CSE 5810 Combination of LDAP and Custom RBAC Lightweight Directory Access Protocol Tracks Directory Info on Users/Sessions Customize via RBAC Look and Feel (prior slides) Other Technologies Possible XACML – Web Services Policy Constraint Lang. Different Implementations Available Not Mature as yet Bandit Role Engine RBAC based on NIST and Sun’s XACML Limited Functionality Our Approach – Custom, Relational DB Solution with Enforcement Built into Axon PortalSecurity-40 UML ER Diagram Group_Role_Authorization User_Group_Authorization CSE 5810 -GroupRoleStartTime -GroupRoleEndTime -UserGroupStartTime -UserGroupEndTime Users Groups -UserID -UserName Roles -GroupID -GroupName * Widgets * * -RoleID -RoleName * * * -WidgetID -WidgetName -WidgetType Permissions Topic_Role_Auth -PermissionID -PermissionName -PermissionType * * * * * * WIKI_LookAndFeel_Auth * * Topic_Group_Auth Document_Auth * * * * * * Projects -ProjectID -ProjectName -ProjectStatus Documents * 1 Spaces -SpaceID -SpaceName Project_Spaces Topics 1 * * 0..* -TopicID -TopicName Space_Topics -DocumentID -DocumentName -DocumentType -DocumentStatus Widget_Privilege_Types Topic_Attachments PortalSecurity-41 Relational Database Tables for RBAC CSE 5810 Top Level Tables: ProjectInfo <ProjectID, ProjectName> AccordionInfo <AccordionID, AccordionName> ProjectAccordions <ProjectID, AccordionID, AccStartTime, AccEndTime> Master Tables: All Projects, Accordions, and P-A Topic/Subtopic Tables: Topic <TopicID, TopicName, ProjectID, AccordionID> SubTopic1 <SubtopicID1, SubTopic1Name, TopicID> SubTopic2 <SubTopicID2, SubTopicID1, TopicID, SubTopic2Name> Master Tables for All Parent, Child, and Grandchild Topics PortalSecurity-42 Relational Database Tables for RBAC CSE 5810 Versions: TopicVersion <VersionPK, VersionID, TopicID, SubTopicID1, SubTopicID2, Author, Description, VersionDate, Attachment> Different Versions of xhtml Page for Each Tree Entry Attachments: Attachment <AttachmentPK, TopicID, LevelID> AttachmentVersion <VersionPK, VersionID, AttachID, FileName, DocType, Author, Size, AttachmentDate, Comments, RandomName> Various Attachments (Documents –Word, PPT, etc.) Associate with Each Topic + Versions PortalSecurity-43 Relational Database Tables for RBAC CSE 5810 Permissions: UserInfo <UserID, LastName, FirstName, UserStartTime, UserEndTime> PermissionInfo <PermissionID, PermissionName> GroupInfo <GroupID, GroupName, GroupStartTime, GroupEndTime> RoleInfo <RoleID, RoleName, RoleStartTime, RoleEndTime> UserGroupAuthorization <UserID, GroupID, UGStartTime, UGEndTime> UserRoleAuthorization <UserID, RoleID, URStartTime, UREndTime> The User, Roles, Groups, and their Permissions PortalSecurity-44 Relational Database Tables for RBAC CSE 5810 Authorizing Topics to Users, Groups, and Roles Authorization – Option A: TopicUserAuth <UserID, PermissionID, ProjectID, AccordionID, TopicID, SubTopicID1, SubTopicID2> TopicGroupAuth <GroupID, PermissionID, ProjectID, AccordionID, TopicID, SubTopicID1, SubTopicID2> TopicRoleAuth <RoleID, PermissionID, ProjectID, AccordionID, TopicID, SubTopicID1, SubTopicID2> Authorization – Option B: TopicAuth <ProjectID, AccordionID, GroupID, UserID, RoleID, PermissionID, TopicID, SubTopicID1, SubTopicID2> PortalSecurity-45 Relational Database Tables for RBAC CSE 5810 Wiki Look and Feel Authorization: WikiLookandFeelAuthorization <RoleID, widgetID, widgetprivilegeID> Widget <widgetID, widgettype, widgetcategory, widgetname> WidgetPrivilegeType <widgetprivilegeID, widgetprivilegename> Tracking the Different Widgets and their Availability based on Role PortalSecurity-46 Sample Table Entries CSE 5810 PortalSecurity-47 Concluding Remarks: Portal Security CSE 5810 Expand WIKI Security Beyond Coarse Grained Transition and Generalize to Web Portals Security for: Application Level Document Level Portal Look-and-Feel Truly Collaborative and Secure Other Work Extending Axon with MAC (Navy SBIR) Dealing with Delegation, Separation of Duty, etc. Leveraging the Concepts for Team Project PortalSecurity-48