person (x) is an engineer and involved in a
development task, then the person (x) can
access the development component portion
in Project Management-Project Life Cycle
(PM-PLC) for the team A.
4.
Any employee (x) (not an user or a
customer) who has access rights for the
resource components of Human Resource
Management (HRM) can access their
information and benefits during office
hours by accessing Employee Benefits (EB)
and Employee Information (EI)
components in HRM. A person who is not
an employee cannot access this
information.
5.
For any person (x) who has access right for
the resource components of Project
Management and whose task involves
development, if there exists a person (y)
who is a manager and the person (x) is
directly supported by the person (y), then
the person (x) can access the resource
components: planning and tracking (PM-
PLC-PT), requirement (PM-PLC-RM) and
development (PM-PLC-DEV) for the
team’s project.
4.6 Implementation Architecture
The authorization layer of the web service was
implemented in .NET using managed C++
extensions. A CLIPS
wrapper was compiled as a
separate module and linked with the web service.
This wrapper contains the authorization layer, as
shown in Figure 1.
The data required for authorization may be obtained
in various ways. For example, location of a user may
be obtained by modifying the SOAP header to
retrieve the IP address of the user, which is used for
performing location based access control. The
authentication module, based on the user account,
may be used to specify roles.
Once information about the user such as role,
location, context, task, team etc. is obtained, the
authorization layer uses that information and
contacts the inference engine. Depending on the
facts asserted about the user, certain rules will fire.
As each rule fires, it leaves a fact in the working
memory of the inference engine. After all possible
rules have fired; the facts remaining in the working
memory determine what access rights the user
should be granted.
5 COMPARISON WITH
RELATED WORK
There is no standard that exists for specifying how to
implement authorization for a web service. However
OASIS has defined two standards related to
authorization and access control. XACML is a
language for specifying access control policies and
rules. SAML is a framework for communicating
user authentication and authorization information in
the form of assertions. The .NET framework also
provides a way of authorizing web services requests.
A comparison with these three authorization
approaches is presented in this section.
Flexibility: In the inference engine based
authorization approach, different types of
authorization may be used depending on the
application. The case used has demonstrated the use
of role based, team based, task based, user based,
time based, and context based among others. Other
forms of access control, not covered here, may be
added.
.NET based authorization approach only allows
user or role based access control. This limits the
application flexibility and requires defining
everything in terms of roles and users. In addition,
.NET based authorization does not provide fine-
grained control. The XACML based approach does
not prescribe any particular type and is as flexible as
the inference engine based authorization. SAML
supports attribute based authorization, and is
typically used to support authentication in a limited
way.
Extensibility: The inference engine based
authorization can be extended with ease. It is not
limited to role based or location based access control
only. As new access control models are introduced
in the future, the new rules provided can be
integrated into the system without requiring too
much effort.
In the .NET approach, this advantage is harder to
achieve. XACML and SAML are both extensible as
a new XML schema may be easily defined to
support a new authorization type.
Maintainability: In the inference engine based
authorization approach, there is only one
authorization layer at the organization level and the
access control rules are stored at one location, thus
the maintenance tasks become easier and simpler.
ICETE 2005 - SECURITY AND RELIABILITY IN INFORMATION SYSTEMS AND NETWORKS
302