|
|||||||||||||||||||||||||||||
Security ManagementThis document describes an overview of the security capabilities provided by SIP Servlet Engine. Digest AuthenticationSIP Servlet Engine supports the digest authentication when receiving a request from an SIP client. This digest authentication provides the same behavior as the HTTP digest authentication. (Refer to http://www.ietf.org/rfc/rfc2617.txt, http://www.ietf.org/rfc/rfc3261.txt.) Security StructureBasic Structure and Process FlowThe security capabilities of SIP Servlet Engine are broadly divided into two processes : authentication and authorization. The following section describes each process flow. Overview of the Authentication and Authorization ProcessesThe following shows the structure and steps of the authentication and authorization processes when SIP Servlet Engine receives an SIP request.
These steps are all the authentication and authorization processes for the SIP request. Also, in the Authentication Manager provided by default, SPI are used. Overview of the User Authentication via WebSIP Servlet Engine supports the authentication for the users registered on SIP Servlet Engine using the FORM authentication through the authentication mechanism provided by each J2EE component. WebLogic Server 8.1 SP3 provides various types of security providers to use in SIP Servlet Engine for user authentication. Using these various security providers enables the authentication with the user information used by SIP Servlet Engine. Security Providers in WebLogicThe authenticated and authorized information in SIP Servlet Engine is passed to WebLogic Server by using the security providers in WebLogic. For more information about the WebLogic security architecture, see WebLogic Security Service Architecture. The following describes the security providers provided by SIP Servlet Engine. Authentication provider
Authorization provider
Roll Mapping Provider
Also, in order to authenticate the SIP message, the LoginConfig with the following settings is specified for "java.security.auth.login.config" system property. equips-sip { com.oki.sip.bea.wls81.security.authentication.EngineLoginModule required debug=true; }; This LoginModule is invoked from the Authentication Manager of SIP servlet engine and specifies user information and role information to Subject, using the SPI. Data StructureThe database used by SIP Servlet Engine contains the user information and the role information assigned to the user. The following shows the basic data structure. Data structure about the user information
In addition, each table contains the hash value used by the digest authentication, the number of times the user authentication failed, and so on. These data are used by Authentication Manager when authenticating the user. Data structure about the role information
Data structure about the role assigned to the user
These data about the role are used by Authorization Manager when granting the role to the authenticated user. To manipulate these data, use the SIP Servlet Engine management tool. (See sip-admin Users Guide.) APIs for Managing the RolesThe component for managing the roles is deployed as EJB. You can use the RoleMapper interface to add or remove the role and add or remove the user to/from the role. The following shows the APIs for managing the roles.
RoleMapper InterfaceThe interface for managing the roles. public interface RoleMapper extends EJBObject { boolean isUserInRole(SipURI subscriber, String role) throws RemoteException; void addRole(String role, String desc) throws RemoteException; void removeRole(String role) throws RemoteException; Set getAllRoles() throws RemoteException; void addMemberToRole(SipURI subscriber, String role) throws RemoteException; void removeMemberFromRole(SipURI subscriber, String role) throws RemoteException; Set getMembersRole(SipURI subscriber) throws RemoteException; } isUserInRole is the method to determine whether the user is included in the role or not. The argument subscriber specifies the SipURI of the target user and the argument role specifies the role name to determine. If the subscriber is included in the role, this method returns true. Otherwise, it returns false. addRole is the method to add the new role. The argument role specifies the name of the role to add and the argument desc specifies the description of the role. removeRole is the method to remove the role. The argument role specifies the name of the role to remove. getAllRoles is the method to get the Set which contains the information of all the roles. The returned Set includes the RoleMapInfo. addMemberToRle is the method to add the user to the role. The argument subscriber specifies the SipURI of the target user and the argument role specifies the role name. removeMemberFromRole is the method to remove the user from the role. The argument subscriber specifies the SipURI of the target user and the argument role specifies the role name. getMembersRole is the method to get the Set which contains the information of the role which includes the user. The argument subscriber specifies the SipURI of the target user. RoleMapInfo ClassThe class for containing the information about the roles. public class RoleMapInfo implements Serializable { public RoleMapInfo(String rolename, String desc); public String getRoleName(); public String getDesc(); public int hashCode(); public boolean equals(Object obj); public String toString(); } The argument rolename specifies the name of the role for the role information and the argument desc specifies the description for the role information. getRoleName can get the name of the role for the role information. getDesc can get the description for the role information. Limitations on UsingThere are two ways to use the user information managed by the existing application:
Each has its advantages and disadvantages:
Last Modified:Tue Dec 28 15:19:23 JST 2004 |
|||||||||||||||||||||||||||||
|