The OpenSSO server offers web access management and single sign-on (SSO) capabilities. OpenSSO protects your web applications and services through a core set of access controls based on authentication and policy services. You can prevent unauthorized access to your application first by installing OpenSSO Policy Agents (Web agents or Java EE agents) on the web containers or application containers that host your application, then by defining authentication and authorization policy configurations on the OpenSSO server. This article explains how to configure the OpenSSO server and Policy Agents to use IP/Resource/Environment-based authentication. This feature provides a flexible mechanism to define customized policies and greatly improved user experience for access control using OpenSSO. Although it is not elsewhere mentioned in this article, the
IP/Resource/Environment-based authentication feature also works with
the Distributed Authentication service and the authentication client
SDK ( This article assumes that you are familiar with the basics of OpenSSO services (especially Authentication and Policy services) and Policy Agents, and that you have installed them on your system. ContentsOverviewOpenSSO Policy Agents (Web or Java EE agents) use a two-phase process for restricting access to web resources. The first phase is authentication. In this phase, OpenSSO Policy Agents redirect application users to OpenSSO for a default authentication scheme defined in the OpenSSO server's authentication configuration. This phase obtains the first valid SSOToken from the OpenSSO server. The second phase is authorization, which occurs after authentication. In the authorization phase, OpenSSO agents contact the OpenSSO server to determine whether or not the user is entitled to access the protected resource. The OpenSSO server's Policy service makes its decision based on two sources of information: policies, which are a set of rules that are defined for the protected resource, and user context (known as policy subject). Additional policy conditions such as the authentication scheme and environment settings (IP address, time of day, and so on) contribute to decision making. If these authorization conditions are not satisfied, policy conditions are delivered to the OpenSSO agents as policy advices. Because enforcing access to web resources is a two-stage process, two passwords may be required for a user to access a protected resource. Consider an example in which the default authentication scheme for the OpenSSO server is LDAP, and the policy condition defined for accessing a web application is Safeword. In this example, the user is first prompted for the LDAP password in order to pass the authentication phase, then is prompted for the Safeword password in order to pass the authorization phase. User experience would be enhanced by having only one password that satisfied both the authentication and authorization requirements. An existing solution to the problem uses a separate Gateway servlet for resource authentication. The Gateway servlet is not integrated with the authentication endpoint (the Login servlet). This solution has some other limitations such as limited policy condition support, inability to work with a distributed authentication component, and inability to handle federation use cases. An IP/Resource/Environment-based authentication design solves the problem while overcoming the limitations of the Gateway servlet approach. With this design, a login servlet is the integrated single entry point for all types of authentication. The user is prompted for all authentication credentials in the first phase. The design also provides policy condition and advice support for various client environment parameters such as client IP address, client locale, and so on. Downloads and InstallationYou can download OpenSSO server and Policy Agent software from the following URLs. Installation instructions accompany the downloads.
ArchitectureFigure 1 illustrates the resource authentication architecture and information flow.
Figure 1: Resource Authentication Architecture and Information Flow The numbered paragraphs in the following discussion refer to the numbered flows in Figure 1.
The sequence of events is summarized in the diagram of Figure 2.
Figure 2: Resource Authentication Sequence Diagram Figures 1 and 2 illustrate that, in cases where IP/Resource/Environment-based authentication is used, the authentication service depends on the policy service to determine the required authentication type. When invoking the policy service, the authentication service passes down the resource name and client environment variables that have been defined in the HTTP request parameters and request headers. The OpenSSO policy service evaluates the configured policy condition(s) and returns the condition decision in the form of a message (allow, deny, or advice) to indicate which authentication type to call. The user is then prompted for credentials for the required authentication type and, if successful, continues with rest of the authentication process. As part of the implementation, a new authentication type named RESOURCE has been added, parallel to the level/role/service/user/realm-based authentication type. With the RESOURCE type, the required authentication type is not fixed; rather, the type can vary based on the IP, resource, and environment setting. Because resource authentication is based on environment variables, the RESOURCE type ultimately runs one of the other configured authentication types rather than running a fixed authentication process of its own.
The invocation of the IP/Resource/Environment-based authentication could be dynamic.
The client can pass down the query parameter
Creating Policies for Protected ResourcesTo use resource authentication, you need to create a policy for the protected resource. The policy must specify a Resource/Environment/IP address condition that defines the authentication process for various client environment parameters. If there is no policy defined for the protected resource, the user is prompted from the default authentication process defined for the realm. A new policy condition plug-in implementation named Resource/Environment/IP Address has been designed to define IP/Environment conditions and authentication type advice. This new policy condition can be added to any policy definition, as described below. Adding a Policy Condition to a Policy DefinitionTo add the Resource/Environment/IP Address policy condition to a policy definition, follow these steps:
|
| |||||||||||
Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.
|
| ||||||||||||