Identity Federation - University of Virginia

advertisement
Identity Federation in Federated Trust Healthcare
Network
Abstract
Today’s internet is composed of numerous heterogeneous network systems. Each system has its own authentication,
authorization and identity management services. A typical business transaction involves a number of participating domains
which incurs the overhead of repeated logins and managing and exchanging heterogeneous identity information. Since each
system has its own requirements for establishing identity, the typical user accumulates multiple identities across these
multiple domains. Federation between different trust domains is a realistic approach that can be taken to solve this identity
crisis and facilitate information sharing between these heterogeneous domains. Now various standards and implementations
have been proposed by different organization to leverage this problem. In this paper we review and compare each of them
and propose our way as an extension to WS-Federation that addresses federated identity issues in Healthcare networks. Our
solution provides a way to dynamically map a user’s identities in different domains to form one virtual universal identity. We
introduce a Token Exchange Service to facilitate the exchange of security information, realize inter-domain user mappings
and hide each domain’s internal details. We utilize a Trust Authority to publish domain information and manage trust
relationships among domains.
1. Introduction
Every one has an “identity” since they are born. Started from birth certificate, it comes as social security number, driver’s
license, passport, company nametag, payroll account, credit cards, etc. Now with the ubiquitous use of computer and Internet,
more and more services have been brought online which means a user is getting more and more “identities” from the online
services which he/she uses. Email account, company intranet account, library account, numerous credit card accounts,
medical insurance accounts, motor vehicle insurance account, various online store accounts and etc., not to mention
numerous accounts you are forced to register on some website when you just want to read a particular news article. The
number of accounts has exceeded the limit that a user can easily manage. People forget account name and password all the
time and re-register again and again. Even for people has superb memory and good organization, re-login to each site he/she
visits is still taking too much precious time which no one want to waste.
The structure of Internet which is composed of isolated network “islands” disconnected by security systems has posed serious
problem not only to individuals who use these online services but also those online service provider themselves. Now a
typical company/organization’s operation usually involves a number of other entities, such as a manufacturing company
coordinating with companies in its supply chain to streamline the manufacturing process; healthcare institution
communicating with various clinical departments, billing organizations, pharmacies and insurance companies to fulfill a
normal transaction. To gain a competitive edge, now companies are integrating each other’s services to provide streamlined
customer experience, like when you saw an interesting product on a news website, click through a link and you will be
brought a online store that sells the product; booking plane ticket on a website will also gives you the choices to make hotel
reservations and reserve rental cars at your destination. When companies access other companies’ services/resources on
behalf of a client, it also faces the problem of identity. The user’s identity in one organization is almost always different from
which in the others or even not recognized or trusted. Exchanging information inside an enterprise (trust domain) is straight
forward while cross-domain transactions need trust relationship establishment, security information exchange, stronger
authentication and more complex authorization. These security processes introduce a large amount of overhead. While
security is indispensable, the idea of “Federation” has been proposed to increase efficiency and reduce interference with the
normal workflow.
Federation [1][2] is a set of system components (trust domains) participating in a confederation to coordinate sharing and
exchange of information while each component retain its autonomy. Each component (trust domain) decides what
information to be shared, which other components (domains) may participate in the sharing and in which ways. They also
retain the freedom to change its sharing interface.
Establishing a federation among trust domains minimizes security overhead through sharing resources and information.
Federated Identity is the key to establishing a federation. It provides someone with an identity across companies, domains
and applications, which is the key to provide secure information sharing infrastructure in a federation. After an identity is
established, it can be used with other applications, web sites/services, making it possible to create complex transactions and
applications without having to repetitively log into separate applications or services.
Federated Identity solves the identity crisis and streamlines the identity information flow between domain boundaries. But
there are problems: firstly, who should provide the federated identity --- trusted third party or each domain itself; secondly,
should we provide a single universal identity or preserve user’s identity in each domain and linking these identities together;
thirdly, how to verify and exchange identity related information without compromise user’s privacy. Also trust establishment
between different domains remains an open question. People are still using off-the-network ways to establishing a trust
relationship between domains.
The Burton Group has an analyst definition of identity federation, “The agreements, standards, and technologies that make
identity and entitlements portable across autonomous domains.” In this paper we are going to review existing federation
standards and technologies, compare and contrast their ways of providing federated identity. Then propose our security token
exchange and validation architecture as an extension to WS-Federation WS-Trust which provides federated identity; hides
security related interface, provides directory service to dynamically discovery interfaces, and facilitates trust establishment
and negotiation. Our solution minimizes the assumptions and required changes of existing systems to establish federation.
The architecture is flexible to accommodate future changes, reliable to have each domain remain normal functioning when
federation facilities are down, scalable to have each domain manage its own interfaces and system implementation details
that changes in a specific domain won’t affect other domains.
This paper is organized as follows: section 2 discusses the related works that have been done in the area of federated identity;
section 3 gives the overall design of our architecture; section 4 shows our experiment medical portal, pharmacy portal and a
third party news domain which implements our federation framework; section 5 discusses the possible future work and
concludes this paper.
2. Identity Federation Approaches
Identity federation is an emerging technology that has attracted enormous attention from both industry and academia. There
are a number of standard organizations, companies and universities participating in forming standards and providing
federation solutions.
2.1 OASIS and SAML
The Organization for the Advancement of Structured Information Standards (OASIS) is a large not-for-profit, global
consortium founded in 1993 that drives the development, convergence and adoption of e-Business standard. The Security
Assertions Mark-up Language (SAML) is an XML-based specification developed by OASIS that has been widely adopted.
SAML defines a common XML framework for exchanging authentication, authorization and attribute assertions between
entities. This open standard is one of the foundations of various other federation standards including Liberty Alliance ID-FF,
ID-WSF, and WS-Federation. SAML enables server applications in different enterprises to exchange assertions, issuing
assertions to a subject (person or computer), consuming assertions submitted by a subject or other server applications. Using
the open standard way of exchanging security information makes it possible to establish Federated Identity among
heterogeneous systems.
2.2 Microsoft, IBM and WS-Roadmap
In April 2002, Microsoft and IBM jointly published a whitepaper outlining a roadmap for developing a set of Web service
security specifications which includes WS-Security, WS-Policy, WS-Trust, WS-Federation, WS-Privacy, WS-Authorization,
and WS-SecureConversation. WS-Security is the foundation of WS-Roadmap which offers a mechanism for attaching
security tokens and soap headers to messages, including tokens related to identity, message encryption, digital signature and
etc. WS-Policy describes the security capabilities and constrains on business endpoints and intermediaries. WS-Authorization
defines how access polices are defined and managed for web services. WS-Privacy describes how each of the web services
and requesters state their privacy preferences and privacy practices. WS-SecureConversation describes how web services and
requesters can authenticate each other and establishing security contexts, including establishing session keys, derived keys
and per-message keys.
The most relevant web services specification to federated identity are WS-Trust and WS-Federation. WS-Trust describes
various trust models which enables web services in different domains to interoperate. In addition, it specifies the security
token request and response schema. WS-Federation describes how to manage and broke trust relationship in a heterogeneous
environment including support for federated identities. Although these specifications look promising, they are in their very
early stage and many details are still missing.
2.3 Liberty Alliance
The Liberty Alliance is a consortium of approximately 170 companies that develops federated identity management
specifications which include: Identity Federation Framework (ID-FF), Identity Web Services Framework (ID-WSF), Identity
Services Interface Specifications (ID-SIS). ID-FF enables identity federation and management and is designed to work in
various heterogeneous platforms and all kinds of devices. It specifies cross site account linking, simplified sign-on,
anonymity and simple session management. It also introduces the idea “circle of trust” which is basically a set of entities that
have business agreements and share the linked identities defined in ID-FF. ID-WSF is a layer that utilizes ID-FF to define a
framework for creating, discovering and consuming identity services. The main features of ID-WSF include permission
based attribute sharing, identity service discovery and SOAP binding of these protocols. ID-WSF enables entities to provide
identity based service which is personalized and more valuable to customers. ID-SIS is a set of specifications for
interoperable web services that are built upon ID-WSF. These specifications serves as web service templates that help
companies to instantiate ID-WSF and help ease interoperability issues. The planned ID-SIS service specifications include:
personal profile identity service, contact book, calendar, geo-location, presence and alerts. The liberty standards are fairly
comprehensive and ever evolving. But since they are industrial based standards, user’s privacy issues are not treated at the
top priority in place of implementation convenience. Also because Microsoft and IBM are not part of this organization, when
WS-Trust and WS-Federation are integrated with the next version of Windows Longhorn, the future of Liberty standards are
still unclear.
2.4 .NET Passport
.NET Passport initiative is a service provided by Microsoft which has a central identity provider (www.passport.com, IDP)
that every participating site trusts. Authentication requests at participating sites are all redirected to this central server. The
IDP collects user credential and issues a security token with universal identity to the participating site. Each site can verify
the security token and the universal identity, so federation occurs when cross organization request comes with the central IDP
security token. This is the simplest and most straightforward way to solve the federation problem. Although it works pretty
well, there are some fundamental limitations: 1. single centralized authentication server. This introduces the basic single
point failure problem that should be avoided by any dependable and secure system. And this single central authentication
server is not scalable. 2. Authentication is out of each domain’s control. Since the authentication server is operated by a 3rd
party and the sites are generally redirecting users there for authentication and accepts security token issued. Each domain has
no control on how user could be authenticated (user name and password, finger print, iris scan etc.), what information should
be collected by the authentication server for user account (name, address, phone number, email, etc.) 3. Trust relationship is a
star structure. The only information sharing is between the central authentication server and one web site. There is no security
information shared between sites.
2.5 Shibboleth
Shibboleth is a project of Internet2/MACE that trying to produce an open source implementation that supports
inter-organizational sharing of web resources under access control. It emphasizes on access control techniques and also
addresses federated administration issues. The solution Shibboleth intended to provide is a secure and privacy-preserving
way of exchange user property information. The key concepts behind it are: federated administration which establishes trust
relations between university campuses and assigns a trust level to each other, each campus provide attribute assertions for the
users coming from them, access control based on these attributes assertions made by each campus, active management of
privacy provide a way for the use to configure which attribute information he/she would like to release to other campuses,
SAML standards based assertion exchange using open source java/C++ SAML implementation OpenSAML, a framework for
multiple, scalable trust and policy sets (clubs) which is similar to the “trust circle” idea in Liberty Alliance specifications, a
standard and flexible attribute vocabulary which make the attribute assertions understandable to each entity. It does not
provide Federated Identity management capability since it does not require service provide to have identity management or
use requester’s identity provided by its source identity provider. There is no need for federated identity since access control
decisions are made based on requester’s attributes. Also Shibboleth is more confined within the higher education community.
3. System Design
3.1 Overview and Key Ideas
Since federating user’s identity across domain requires more confidence in the identity provided by the source domain, we
propose an identity establishing process with strong authentication and an identity management system with the ability to
evaluate the trust worthiness of a provided identity based on the authentication method used.
Before identity federation, domains participating in the federation have to establish trust relationship between each other. The
domains trusted and the degrees to which domains are trusted are defined at this trust establishing phase. What is the best
way to build and evaluate trust is still an open problem. We propose a semi automatic mechanism to establishing trust
between domains as a practical and efficient solution.
Identity federation in an abstract sense is providing a universal identity that could be recognized and used by all participating
domains without much effort. We propose a way to provide this benefit by mapping a user’s identities in heterogeneous
domains together to form a virtual universal identity. These mappings are done automatically at runtime so it is completely
transparent to the user and application. We will explain in detail how and where these mappings are done.
To provide identity mapping we must provide a way for the heterogeneous domains to let them communicate with each other
and exchange security information. We introduced a Token Exchange Service to facilitate this process by serving as a
directory and broker. TES provide a standard web service interface and using standard security information format to
exchange data. The way TES works – which is interactively exchanging user information at run time on an on-demand basis,
is a good way to protected user privacy.
Privacy protection is a serious problem when providing identity federation and inter-domain information exchange. There
must be ways to minimize user information leakage. We employed pseudonym as an option when maintaining user mappings.
These mappings can be based on real user identity or some random pseudonym to maintain user’s anonymity and avoid
identity tracking. Attribute exchange as we mentioned earlier is an on-demand process. To further protect user privacy we
could employ runtime privacy policy evaluation algorithm during this process.
To provide identity federation to web browsers, we have designed an inter-domain request interception and forwarding
mechanism to provide web single sign-on. Browser is being redirected between source, TES and target domains during the
process to exchange security information/token.
Our solution is based on the proposed architecture of WS-Trust and WS-Federation. We extended the Security Token Service
(STS) with 2 identity web services and 2 active pages to facilitate security information exchange and web single sing on. The
STS is also extended to be able to maintain user identity mapping and control incoming/outgoing inter-domain request. User
identities are automatically exchanged when the transaction traverses each domain by the STS at each domain with the help
of TES. This architecture does not have a central authentication server/IDP or universal identity. It preserves each domain’s
own authentication and authorization system which gives local authorities more control on what authentication/authorization
polices fits the local scenario. Also there is no single point failure since authentication is distributed. When the TES is down
each individual domain is still able to run with the cached federation information. Unlike other federation scheme, user’s
identity and related attributes information are not pushed all together to every federated domain. Every single user’s attributes
must be explicitly requested and each request will be evaluated against the user’s privacy rules to minimize user information
exposure. Attribute assertions of a user are exchanged to establish trust and create local token. User identity mapping is done
at each site locally. Trust relationship establishment polices are also defined by each domain itself with local polices files
which gives each domain more control on who to trust and to what degree. This makes it more likely to work in a real world
environment.
3.2 Workflow
In a typical network system, a user/program (principal) first establishes its identity before requesting any resources that are
under access control. In our system the principal contacts the local authentication server, provides required information
(usually user name password, finger print, X509 certificate, etc), then the authentication server verifies these credentials. If
the provided credentials are valid, the authentication server returns a valid authentication token that contains the identity
assertions. The information of the principal’s identity contained in this token is verifiable (the token contains valid
authentication server signature which is recognized by all resources in the local trust domain. Whenever the principal request
some resource in the local trust domain, the authorization enforcement point will invoke the authorization engine with the
resource request and user identity token. Based on the identity, current context information and the local authorization policy,
the authorization engine will make a decision to grant or deny this request.
When the principal makes a inter-domain request, the service provider at the remote domain has to enforce security policies
in its own trust domain. The authorization process at the remote domain is very similar as what happens at the local trust
domain. To evaluate the authorization policy, the principal’s identity and attributes must be provided. At this point, identity
federation comes in.
As in WS-Federation, we classify identity federation into two profiles: Active Federation which refers to federation with
programs/applications, e.g. web services. These principals have more freedom. They can contact other services actively and
control the whole dataflow; Passive Federation refers to web browsers which has limited control of dataflow and can only
passively been redirected to contact other services.
For Active Federation: before the program request the resource at the remote trust domain, it contacts the TES for the URL of
remote trust domain’s identity federation interface (STS). It then sends a request to remote STS for a security token at remote
trust domain. To establish the trust (create a remote security token), the remote STS will reply with a challenge, the local
domain will answer the challenge. These challenge and response will be in extended SAML messages. Usually the remote
STS will ask for the requester’s identity in the local domain and other attributes that are needed for remote security token
creation, such as authentication methods used, expiration time, roles the requester plays in the local domain, etc. These
challenge and response messages will all be endorsed by each domain’s private key signature (or using
WS-SecureConversation). The application is aware and actively involved in the identity federation process.
In WS-Federation specification, the Passive Federation profile shows that the remote server must have “user interaction” to
determine the domain where the requesting user comes from. We consider this is not convenient and sometimes unrealistic
(the user may not be aware of the domain identification). We introduce a way to use local STS to intercept the remote request,
wrapping the request with the local domain identification, principal identity token, and other necessary information, forward
the request to TES, and TES will further forward the request to the remote trust domain’s STS URL based on the directory
information stored in TES. The remote STS will send the challenge back to TES which in turn forwards the request to the
local domain for response. Then the remote domain will create a security token based on the information provided in the
response. The web application may not be aware of the identity federation process. The local STS, TES and remote STS
collaboratively realize identity federation.
The graph below showed the whole process of security token exchange in active and passive federation. There are two
domains – the hospital trust domain and the pharmacy trust domain, and the Token Exchange Server (TES) involved. The
Policy
Policy
process of security token exchange via TES in passive federation is further described blow.
Token
Exchange
Service
4
R
ttr
tw
ith
A
d
W
ra
pp
in
g
R
eq
ue
s
5.
Fo
rw
ar
ACTIVE FEDERATION
ar
rw
Fo
3.
Lo
ca
ib
ut
e
R
lT
ok
e
n
eq
ue
s
t
to
es
ut
ib
ttr
A en
re k
ui To
cq al
A c
st
d Lo
ue
a n te
eq
st rea
R
ue C
ng
eq
di
PASSIVE FEDERATION
Policy
Policy
Policy
Policy
H
Security
Token
Service
2.
Security
Token
Service
2. Exchange Hospital Token for Pharmacy Token
1. Intercepting
Request
3. Request with Pharmacy Token
1. Acquire Hospital
Token
Web Service
Web Portal
Client
Browser
6. Request with Pharmacy Token
Web Portal
Request Directly with Policy Caching
Hospital Trust
Domain
Pharmacy Trust
Domain
Figure 1
1.
A user in the hospital trust domain initiates a request for some resource in the pharmacy trust domain. The request is
intercepted by the local STS.
2.
Local STS examines the request, wraps the request with hospital domain’s local security token and domain URL, then
forwards this request to the TES. The URL of the TES is looked up in a local policy file.
3.
TES finds the URL of the pharmacy domain’s local STS (specifically, the outside request accepting service point) and
forwards the original request.
4.
The pharmacy domain’s local STS gets the request and extracts the source URL. Then it decides whether to accept this
request according to a local policy file. The policy file is set up during the trust relation establishment phase. If it
decides to accept the hospital domain’s request, the pharmacy domain STS sends a challenge back to TES with the
security token from the request and a list of information (user name, authentication methods, etc) which are required to
build a local security token.
5.
TES looks up for hospital domain’s token resolving service which is registered during the trust relation establishment
phase. TES gets the requested information from the service using the security token and forwards the information to
pharmacy’s local STS.
6.
Pharmacy’s local STS examines the information and decides whether to a) accept this request and automatically create a
new account for this user b) accept this request and map the user to an existing account c) reject this request. In this
scenario the request is accepted. The local STS dynamically create a pharmacy’s local security token for this request.
7.
The user in the hospital trust domain is finally redirected to the requested resource in the pharmacy trust domain. Since
the user has already got an identity security token in pharmacy trust domain, this request is granted.
The TES does not have to be there to finish the whole token exchange process. It can serve as a directory service that helps
each domain to find out where the specific token exchange related services are. Forwarding request back and forth is not
necessary when each domain already knows the specific service URLs. Two domains can communicate with each other
directly using SAML tokens as the standard language. This will dramatically increase the performance of inter-domain token
exchange.
4. Experimental System --- Federated Trust Healthcare Network
The key ideas showed in the previous sections are implemented in 3 components in our experimental system. Token
exchange service, security token service and trust authority. In this section we will explain the detail of these components.
4.1 Identity Federation Policies
In our system, the identity federation process is controlled by a set of policies files resides on various entities. We will
explain the details of each policy in this section.
4.1.1 Identity Federation Policy at Security Token Service
Each local domain has a set of identity federation related policies controlling what information to share, who to trust, and
how to federate user identities? These information are stored in two policy files.
4.1.1.1 TES registration
TES is the directory/broker that helps distribute each domain’s identity federation interface information and a trusted third
party endorsing and facilitating automatic trust establishment. Each domain’s local administrator has to explicitly register the
TES in this policy file to indicate this domain trusts information and services provided by this specific TES. “Domain”
element in this file corresponds to a particular TES. The information registered for each TES are: element “Name” as a
human readable string representation of the TES; element “Url” as the URL of the TES; element “WebAcceptingUrl” is the
service interface URL provided by TES to facilitate identity federation in the web environment that realize single sign on
between trust domains; element “TokenResolvingUrl” is another service interface URL that facilitate attribute assertions
exchange between two federated trust domain. See appendix for a detailed example.
4.1.1.2 Trusted domain registration, including User mapping and Trust Level mapping
The trusted domain registration policy file is the main control policy file that decides who and how to trust a federated
domain. This also gives information about what information is needed to create a local security token. The “Domain” element
corresponds to a federated trust domain; element “Url” is the base URL of the remote trust domain which also servers as the
unique identifier of this trust domain; element “Allowed” is a Boolean value that indicates whether this domain is trusted or
not; (element “DefaultHandler” is for future use); element “IDMappingSet” controls how user identities are mapped between
this trusted domain and the local domain. This element contains a number of “IDMapping” elements which corresponds to a
particular identity mapping configuration. The “RemoteUserID” and “LocalUserID” contains a user’s identity at these two
domains and creates a mapping between them. Note that the identity can be wildcard/”*” which means all the users from a
particular domain. This section will be dynamically modified by identity federation program to manage identity mappings on
the fly; element “TrustLevelMappingSet” is very similar to “IDMappingSet” which controls how trust levels are mapped
between two trust domains. Trust level is a numerical representation of the trustworthiness of user’s authentication method.
Sub-elements “RemoteTrustLevel” and “LocalTrustLevel” are string representations of trust levels which map to each other.
Sub-element “LocalTTL” is a numerical value of how long the mapped trust level is valid in the newly created local security
token. Note the trust level can also be wildcard/”*” which means any trust level in a particular domain. This makes it very
easy to express policies as regardless of the trust level a user has in remote trust domain assign the trust level of “Password”
to the user’s local identity trust level. The figure below showed a typical trust level mapping between two domains. Trust
level mapping is just an example of attribute mappings between trust domains. There could be other mappings and the
extension is as easy as adding another mapping section in the policy file.
Trust Levels
4
Fingerprint
Fingerprint
3
Signature
Signature
2.5
RF-ID
RF-ID
2
e-Token
e-Token
1 *******
Password
Password
Anonymous
Anonymous
0
???
Figure 2
4.1.2 Domain Registration at Token Exchange Service
Each trust domain should also register itself at the TES to initiate the trust relationship between this domain and the TES.
Also each domain should provide the identity federation interface information at registration time to facilitate future token
exchange.
4.1.2.1 Domain Registration
Similar to the TES registration at local trust domain, each domain registration at TES contains the human readable string
name of the domain in the “Name” element; the “Url” element as the starting URL of the domain and a unique identifier of
the domain; “WebAcceptingUrl” element contains the URL in the local domain that accepts remote trust domain web
requests, resolves identity and dispatches these requests; “TokenResolvingUrl” element contains the local domains security
token resolving and attribute service which is the main entry point for attribute assertion exchange.
4.1.2.2 Attribute Standard Names (could be replaced with SAML extension)
When requesting attribute assertions each domain must know what to ask for and what is asked for. Attribute Standard
Names serves this purpose. There is a similar standard name set used in Shibboleth that defines the standard Object Identifier
(OID) – attribute names. We have adopted and extended this name base to incorporate our new attributes. Also extending this
name base with new attribute names is very easy. This policy file is a simple list of each standard attribute name. Element
“Name” is the unique string identifier of the name and element “Type” is the attribute’s data type. Now the types are the
same as defined in the W3C XML specification. But it is also very easy to extend.
4.2 Token Exchange Service
TES provides two interfaces: one for web browser through an active web page and the other for applications through web
services. With these interfaces TES provides request forwarding, attribute resolving and directory lookup services.
4.2.1 Request forwarding
One of the services provided by TES is to forward source trust domain’s web request to its destination domain. This web
request comes with the source domain’s identifying information (usually the base URL), the requester’s security token
containing identity information at source domain and the requested resources in the destination domain. The TES is
responsible to look up its domain registration information to find out the destination domain’s corresponding web federation
interface URL and forwards this information to that URL. Request forwarding is not a must have with every inter-domain
request. It is useful when two domains communicate for the first time in a session or don’t have any caching service that can
cache remote domains’ interface information.
4.2.2 Attribute Resolving
Attribute resolving service is actually a wrapping service that works very similar to the request forwarding service. When this
web service is invoked by a trust domain to resolve another domain’s security token and asked for some particular attribute
information associated with that token. The TES looks up its domain registration information for the destination domain’s
token resolving service and invokes that service with original request and forwards the returned information to the original
requester. This service can also be bypassed to increase efficiency when previous attribute exchange between two domains
has already stored each domain’s token resolving service information into cache. While in the scenario that a particular
domain does not want its token resolving service to be public accessible (which is a security risk), this service can serve as a
firewall between the actual service and outside world.
4.2.3 Directory lookup
The above two features requires TES actively involves in the whole identity federation process. Directory lookup service is
provided for domains that do not want TES involved in every step to increase efficiency. The identity federation interface of
each domain can be queried with a domain’s identity and other domains can use this information to start federation with this
domain.
4.3 Security Token Service
Each trust domain has its own security token service that serves as the local authority that issues security token to its users.
This service is introduced in WS-Trust and WS-Federation. Their idea of STS not only issues tokens but also exchanges
tokens. But they do not specify how the trust is established and how the tokens’ could be read and attribute information
retrieved. Also there is no detailed information there for web single sign on support from STS. The extensions to support
identity federation in our scheme includes request forwarding service and token resolving service.
4.3.1 Request Forwarding
Request Forwarding is the working horse that accepts out-domain requests from TES or directly from trusted source domain.
This service has responsibilities such as: retrieve source domain’s identifying information, security token and requested
destination resource; evaluate the request against local federation policies and decides whether to accept this request and
initiate identity federation process; if yes, start the local identity creation process by contacting TES/source domain’s token
resolving service with the security token and standard attribute name(s) to request for necessary attribute assertions to create
a local identity; after the source domain evaluated the attribute assertion request against its own federation and privacy
policies it will return the corresponding attributes; local STS uses these attribute assertions to create a local identity based on
identity federation policies; the original request is forwarded to the destination and access control enforcement at the
destination will evaluate access control rules based on the newly created federated identity.
4.3.2 Token Resolving Service
Token resolving service is the interface to other trust domain’s STS where attribute assertion exchange occurs. This web
service accepts a local identity security token, an attribute standard name and returns the corresponding attribute assertion.
Since the security token is local, it can read the token and retrieve identity information from it. The TRS will first evaluate
the attribute request against local privacy policy to see whether disclosing this information is allowed, and possibly future
negotiation could happen here. If TRS decides to grant this request, it contacts local attribute service or directory service to
get the required attribute associated with the identity. Also according to privacy polices, TRS can mutate attribute
information right before returning to the requester to further help protect user privacy, such as return a pseudonym instead of
real local identity of a particular user.
4.4 Trust Authority
Each domain has its Trust Authority publishing its trust statements. These statements include domain information, Trust
Level definitions and other possible domain properties. Domain administration in one trust domain examines the published
trust statements by other trust domains and decides whether to trust those domains or not. Business relationship and
agreements are also a factor. The screenshot below showed the trust administration interface in our experimental system. The
local administrator input the URL of the remote trust domain’s domain information XML file. It retrieves and shows the
domain information alongside with local information. It also retrieves other trust statements pointed from the domain
information file, in this example the trust level definitions are retrieved and showed along side with the trust level definition
from local trust authority. Domain administrator examines and compares these trust statements and creates trust level
mappings which modifies trusted domain registration file on local STS and effectively established trust relationship.
Figure 3
4.5 Portal and Services
In this section we are going to show the different aspects of our experimental system that realized with our identity federation
system.
4.5.1 Authentication Service and Trust Levels
In this experimental system, we provide various authentication methods which include user name/password, finger print,
RFID, e-Token, signature. Because each authentication method has its own unique properties such as false positive rate, false
negative rate, possibility of counterfeit, possibility of loss and etc. We abstract these properties and propose a high level
concept of trust level. Trust level is a numerical representation of a particular authentication method’s trust worthiness which
is assigned by domain administrator based on the properties of the authentication method. Trust levels are numerical which
makes it comparable and possibly computable (if we find meaningful arithmetic for computing trust level for combined
authentication methods – “multiply” seems a candidate).
4.5.2 Alert Service via Inter-Domain Active Federation
Our system support alert which is a short message sent to a user when a particular event happens via a communication
channel chosen by the user himself. The types of alert the system supports are: email, telephone, MSN Messenger Alerts,
SMS and etc. Intra domain alert is when the event generating domain is the same as the domain where the alert’s target user
comes from. Because they are in the same domain, the service which generates the alert is trusted and can access the alert
service directly. Inter domain alert is when the event generating service’s domain is different from the domain where the
target user resides. The event generating service needs to have its own identity and trust from the alert target.
Using Federated Identity service between hospital domain and pharmacy domain, we extended our alert service to provide
inter-domain alerts when pharmacy fills a patient’s prescription. When this event occurs, the pharmacy alert service contacts
pharmacy STS to generate a local identity token for it, then it contacts hospital STS to request a hospital identity token with
the pharmacy identity token. Based on federation policies the hospital STS issues a hospital identity token for the pharmacy
service and then the pharmacy service contacts the alert service in hospital domain with the hospital identity token to issue an
alert.
4.5.3 Cross-Domain Single Sign-On via Passive Federation
Single sign-on between two trust domains is realized in our experimental system with identity federation. There is a MSN
(mock) portal which has its own user name/password authentication system and issues simple XML based identity tokens.
After user logon, the personalized MSN page contains a dynamically generated link to our hospital portal. This link will have
the local STS first intercept the out-domain request. The request will make a stop at a request forwarding page at local STS.
This page wraps the request with the MSN local identity token, URLs of the MSN portal and the hospital portal, and then
forwards this request to TES. The receiving page at TES examines the destination of the request and looks up domain
registrations for the out-domain request receiving point in the STS of hospital domain. The request is then forwarded to this
receiving point just found. At hospital domain, the STS look up in local policy files for trust relationship with the requesting
domain. If they have identity federation set up, which is the case in our system, the hospital STS begins identity federation by
asking the TES attribute resolving service for the incoming user’s identity in the MSN domain. TES looks up the domain
registration directory and find the attribute resolving service in MSN domain and then dispatches the attribute request there.
MSN’s attribute resolving service, which is part of the STS, examines the local identity token coming with the attribute
request and evaluates the request against local privacy policy. If the request is granted the MSN attribute service will return
the attribute requested to TES and TES returns to hospital portal. Based on the returned user identity in MSN, the hospital
STS looks up user mappings for MSN domain in local policy files. If a user mapping is found for the incoming user’s identity,
the hospital STS start requesting for additional attributes which are prescribed in federation policy file as necessary to create
a local identity token. These attribute request will be the same as the identity attribute request we have just discussed. If the
user mapping does not exist, which is the case when a user accesses hospital resources for the first time, the hospital STS will
show an identity mapping creation windows that propose the user to map his MSN identity to a local identity. This window
shows the MSN domain and the user’s identity in MSN domain which is retrieved by the attribute request process just
discussed, and a dialog box for the use to input a local identity for the mapping. The local identity is authenticated here for
the first time when creating the mapping to ensure that the user who requests this mapping is really the user who owns this
identity. After authentication both the local identity and the identity mapping are created. Then the hospital STS forwards the
request to the destination resource. Since the request now has the local identity token in its context, the hospital portal
recognizes it and automatically logs him in.
5. Conclusion and Future Work
In this paper we proposed an identity federation infrastructure that provides federated identity across autonomous domains.
Identity federation is a good way to alleviate identity crisis brought by numerous identity systems in heterogeneous
applications, networks and domains. It makes identity and related information available across domains which dramatically
reduces the overhead of inter-domain business transaction and provides better end user experience. We have implemented an
experimental healthcare system involves 3 autonomous domains which showed our design is flexible, maintainable and
powerful. User identity mapping and attribute mapping across domains is more flexible and realistic than establishing a
central identity provider. Token exchange service with web service interface is a practical way to exchange security
information while hiding the internal detail of each system. Trust authority is the starting point of providing fully automatic
trust establishment.
Our next step would be providing fully automatic trust establishment through trust negotiation based on the trust authority
infrastructure. Improving the attribute exchange process to provide better user privacy protection by evaluating domain
policies at run time and minimize user information exposure while requesting a token exchange. In the future we will also
incorporate SAML and other security standards other than Microsoft and IBM’s WS-X. We will experiment integrating our
system with other federation systems available the test the extensibility and standard interface of our system..
6. Acknowledgement
We gratefully acknowledge the multiple discussions and intellectual contributions of the other current members of our
research group (James Hu, James Van Dyke, Andrew Marshall, Brian Garback, Joseph Calandrino, Paul Bui) and the support
of our research sponsor, David Ladd at Microsoft Research.
7. References
[1] Heimbigner, D., “Infrastructure for Federated Software Environments,” NIST Presentation, March 1994.
[2] Heimbigner, D., and McLeod, D., “A Federated Architecture for Information Management,” ACM Transaction on office
Information Systems, 3 July 1985.
[3] Putman, J. and Strong, S. A federated virtual enterprise (VE) of partners creating a federated VE of systems in
Proceedings of Computer Software and Applications Conference, 1998. COMPSAC '98
[4] Mezzetti, N. Towards a model for trust relationships in virtual enterprises in Proceeding of 14th International Workshop
on Database and Expert Systems Applications, 2003 , 1-5 Sept. 2003 Pages:420 – 424
[5] Au, R.; Looi, M.; Ashley, P. Automated cross-organizational trust establishment on extranets Information Technology
for Virtual Enterprises, 2001. ITVE 2001. Proceedings. Workshop on , 29-30 Jan. 2001 Pages:3 – 11
[6] Microsoft .NET Passport Service Guide Kit Version 2.5
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/passport25/start_full.asp
[7] Liberty Alliance Project http://www.projectliberty.org
[8] Security in a Web Services World: A Proposed Architecture and Roadmap: A Joint White Paper from IBM Corporation
and Microsoft Corporation April 7, 2002
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwssecur/html/securitywhitepaper.asp
[9] Web Services Trust Language (WS-Trust) Version 1.1 May 2004
http://msdn.microsoft.com/webservices/understanding/specs/default.aspx?pull=/library/en-us/dnglobspec/html/ws-trust.a
sp
[10] Federation of Identities in a Web Services World (whitepaper), July 2003, International Business Machines Corporation
and Microsoft Corporation
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-federation-strategy.asp
[11] WS-Federation Language (WS-Federation) Specification, Version 1.0, July 2003, International Business Machines
Corporation, Microsoft Corporation, BEA Systems, Inc., RSA Security, Inc., and VeriSign, Inc.
http://msdn.microsoft.com/ws/2003/07/ws-federation/
[12] WS-Federation: Passive Requestor Profile Specification, Version 1.0, July 2003 Version 1.0, International Business
Machines Corporation, Microsoft Corporation, BEA Systems, Inc., RSA Security, Inc., and VeriSign, Inc.
http://msdn.microsoft.com/ws/2003/07/ws-passive-profile/
[13] Federated Identity Management Interoperability, WS-Federation Passive Requestor Profile Interoperability Workshop,
Microsoft Corporation, May 2004
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/wsfedinterop.asp
[14] Security Assertions Markup Language (SAML) Specification, November 2002, Version 1.0
http://www.oasis-open.org/specs/#samlv1.0
[15] W. Winsborough, K. E. Seamons, and V. Jones. Automated Trust Negotiation. DARPA Information Survivability
Conference and Exposition, Hilton Head, SC, January 2000. http://citeseer.ist.psu.edu/293546.html
[16] Ting Yu and Marianne Winslett and Kent E. Seamons, Interoperable strategies in automated trust negotiation, ACM
Conference on Computer and Communications Security, 146-155, 2001,
http://citeseer.ist.psu.edu/yu01interoperable.html
[17] Bertino and Ferrari and Squicciarini, Trust-chi: An {XML} Framework for Trust Negotiations, IFIP-TC6 TC11
International Conference, Communications and Multimedia Security (CMS), LNCS
[18] Skogsrud, H. Benatallah, B. and Casati, F. Model-driven trust negotiation for Web services Univ. of New South Wales,
Sydney, NSW, Australia This paper appears in: Internet Computing, IEEE
8. Appendix
8.1 Policy Files
8.1.1 TES Registration at Local STS
<?xml version="1.0" encoding="utf-8"?>
<TES>
<Domain>
<Name>MyTES</Name>
<Url>http://vsadev3.cs.virginia.edu/cs551project/TES</Url>
<WebAcceptingUrl>http://vsadev3.cs.virginia.edu/cs551project/TES/incoming.aspx</WebAcceptingUrl>
<TokenResolvingUrl>http://vsadev3.cs.virginia.edu/cs551project/TES/TESService.asmx</TokenResolvingUrl>
</Domain>
</TES>
8.1.2 Trusted Domain Registration at Local STS
<?xml version="1.0" encoding="utf-8"?>
<LocalPolicy>
<Domain>
<Url>http://vsadev3.cs.virginia.edu/cs551project/msn</Url>
<Allowed>true</Allowed>
<DefaultHandler>http://vsadev3.cs.virginia.edu/cs551project/portal/MapUserPopUp.aspx</DefaultHandler>
<IDMappingSet>
</IDMappingSet>
<TrustLevelMappingSet>
<TrustLevelMapping>
<RemoteTrustLevel>*</RemoteTrustLevel>
<LocalTrustLevel>Password</LocalTrustLevel>
</TrustLevelMapping>
</TrustLevelMappingSet>
</Domain>
<Domain>
<Url>http://vsadev3.cs.virginia.edu/CS551Project/PharmacyTrustLevelSTS/TrustLevelSTS.ashx</Url>
<Allowed>true</Allowed>
<DefaultHandler>
</DefaultHandler>
<IDMappingSet>
<IDMapping>
<RemoteUserID>*</RemoteUserID>
<LocalUserID>pharmacy</LocalUserID>
</IDMapping>
</IDMappingSet>
<TrustLevelMappingSet>
<TrustLevelMapping>
<RemoteTrustLevel>*</RemoteTrustLevel>
<LocalTrustLevel>Password</LocalTrustLevel>
<LocalTTL>1000</LocalTTL>
</TrustLevelMapping>
</TrustLevelMappingSet>
</Domain>
</LocalPolicy>
8.1.3 Domain Registration at TES
<?xml version="1.0" encoding="utf-8"?>
<DomainRegistration>
<Domain>
<Name>Medical Portal</Name>
<Url>http://vsadev3.cs.virginia.edu/cs551project/portal</Url>
<WebAcceptingUrl>http://vsadev3.cs.virginia.edu/cs551project/portal/incoming.aspx</WebAcceptingUrl>
<TokenResolvingUrl>http://vsadev3.cs.virginia.edu/cs551project/portal/TokenResolve.asmx</TokenResolvingUrl
>
</Domain>
<Domain>
<Name>MSN</Name>
<Url>http://vsadev3.cs.virginia.edu/cs551project/msn</Url>
<WebAcceptingUrl>http://vsadev3.cs.virginia.edu/cs551project/msn/incoming.aspx</WebAcceptingUrl>
<TokenResolvingUrl>http://vsadev3.cs.virginia.edu/cs551project/msn/TokenResolve.asmx</TokenResolvingUrl>
</Domain>
</DomainRegistration>
8.1.4 Standard Attribute Names at TES
<?xml version="1.0" encoding="utf-8" ?>
<TokenInfoItemSet xmlns="">
<TokenInfoItem>
<Name>User Name</Name>
<Type>string</Type>
</TokenInfoItem>
<TokenInfoItem>
<Name>Trust Level</Name>
<Type>string</Type>
</TokenInfoItem>
</TokenInfoItemSet>
Download