Wednesday, October 12, 2011

Question about Integrating Oracle E-Business Suite with Oracle Access Manager 11g


I am seeking Oracle expert's suggestions in the following integration steps:


For OAM 11.1.1.5 and EBS 12.1.3 SSO implementation as per the below Oracle guidelines, one of the pre-installation step is to integrate eBusiness Suite with OID. 


https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=BULLETIN&id=1309013.1


- Is OID a mandatory component in the Oracle eBusiness Suite with OAM SSO implementation. Can ODSEE or OVD be used in place of OID.

I am really not sure, why do we need OID in this integration, if the OAM is able to use ODSEE or OVD as it's user store. And I believe starting from release 11.1.1.5 OAM supports ODSEE and OVD as it's user stores. I am very curious to know the role of OID in this integration.

My OAM-EBS integartion environment comprises of

1. Oracle Access Manager 11.1.1.5
2. Oracle eBusiness Suite 12.1.3
3. Oracle Directory Server EE 11.1.1.5
4. Oracle Virtual Directory 11.1.1.5

OVD sits on top of the ODSEE and used as user store for OAM.

Thanks
Ashok

Tuesday, June 14, 2011

Identity and Access Management Glossary


ACL An access control list is a list that specifies which subjects can access which objects.

Administrative Detective Control Policy or rule that detects when something has occurred by using auditing or performance reviews to see the actions that subjects have taken.

Asynchronized Device A token device which uses a challenge-response approach to generate a password.


Authentication A system for validating that the subject or object is really who or what they say or appear to be.

Authentication Service The part of the KDC that actually authenticates the subjects and objects.
Authorization Creep Accidentally giving a subject access to objects that are not intended for them to have access to.

Biometrics The most expensive and secure authentication type which uses physical characteristics to authenticate a person. Biometrics use characteristics such as retina and iris scans, fingerprint and handprint characteristics, voice patterns, keystroke patterns, and signatures to authenticate a subject.

Brute Force An attack that attempts to gain access many times using different input types. Examples of brute force attacks are password guessing and war dialing.

CER Crossover Error Rate is the value or system based upon the point at which the FRR and the FAR cross if it were graphed. The CER allows two different biometric methods to be compared.

Centralized Authentication Authentication type where a single identity controls all access to certain objects. It is a strict control with a single point of failure that allows for easy administration.

Control A safeguard that lessens risk once a high probability of a loss has been realized.

DAC Discretionary Access Control is an identity-based access control. This means that the user must be authenticated as a specific user, and, based on those privileges, can specify who else can access that object. DAC gives the owner the ability to specify access restrictions.

Decentralized Authentication An authentication type in which administrative access is handled closer to the objects that are being controlled, such as multiple machines with information like a security domain.

Dictionary Attack A selective attack where a dictionary of common words, identification credentials, or frequently used user IDs are submitted to the authentication device.

DoS Attack A Denial of Service attack attempts to stop a network by flooding it with useless traffic. A DoS system is used as a master to communicate with, and host hacking tools from the Internet allowing the hacker to send out attacks using a single command.

Domain A group of computers on a network that share a Security Accounts Manager database and security policies.

FAR False Acceptance Rate is the rate at which a biometrics system accepts an invalid subject.

FRR False Rejection Rate is the rate at which a biometrics system would reject a valid subject.

Hacker Also referred to as a cracker, a hacker is a person who is well skilled in a programming language and often considered an expert on the subject. Can be a complimentary or derogatory term.

Honeypot A monitoring process that segments an area or entire machine onto a portion of the network, opening ports to entice a hacker to find and attack the machine.

Hybrid Model A combination of centralized and decentralized authentication.

IDS An intrusion detection system inspects all network activity and identifies any suspicious patterns indicative of an attack.Identification A claim to be a valid subject.

KDC Key Distribution Center is a component of the Kerberos system which holds all cryptographic keys. The KDC must be communicated with at every phase in order to initiate any type of authentication.

Kerberos A product developed by MIT that provides authentication and message protection using one key to encrypt a message on one side and the same key to decrypt the message on the other side.

Least Privilege A concept that grants subjects only enough access for objects to perform the required tasks. The goal is to limit authorization creep.

Object An entity that contains or controls data.

MAC Mandatory Access Control is a mandatory set of rules that everyone must abide by. It is a rule-based access control in which data owners are granted access based upon rules.

Man-in-the-Middle Attack A network attack where the hacker intercepts a public key exchange and substitutes his own public key for the requested one, thus enabling him to intercept messages from both sides of the communication.

Non-Discretionary Control A role-based access control in which access is granted based upon the subject’s role instead of identity. This type of control is common in an environment with frequent personnel changes.

Penetration Testing A legal hacking process of pretending to be a hacker, scanning and probing the systems to see if it can be accessed. A coordinated set of attacks to judge the vulnerability of a system.

Physical Access Controls Controls which limit physical access to hardware.

Physical Preventative Control A control, such as a badge or access card, which stops something before it occurs.

RADIUS Remote Authentication Dial-In User Server is a centralized authentication protocol that authenticates and authorizes users, generally through dial-up access, and provides the authentication mechanism that allows dial-up subjects to access objects.

SESAME Secure European System for Applications in a Multivendor Environment is an authentication service for use in Europe. SESAME uses public key cryptography to distribute secret keys and a Privilege Attribute Certificate mechanism which contains key information and the necessary authentication packet to pass authentication.

SSO Single Sign-On is a method that allows the users to have a domain of control. SSO simplifies the authentication process by allowing the users to authenticate themselves into an entry point of a domain which signs them into every component of the domain.

Security Label A concept that assigns a classification level to objects.

Shoulder Surfing An observation technique in which information is obtained by looking over someone’s shoulder.

Spoofing A technique used by hackers to gain entry to a system by modifying packet headers so as to appear as a trusted host.

Synchronized Device A token device that generates time-based passwords to correspond with a central server.

TACACS Terminal Access Controller Access Control System is a centralized authentication type that provides single factor authentication and authorization for direct access. The TACACS+ version implements two-factor authentication.

Ticket A multiple component message that is sent back and forth in Kerberos. The message contains the ticket and an authentication message specifying that the subject is authenticated or that a subject has been authenticated and is valid to access a specific object.

Token Device A small device that generates passwords based on synchronous or asynchronous query to a centralized server. An example would be a smart card.

War Dialer A computer program built to seek modems by dialing continuous phone numbers. War Dialers are built to find vulnerable computer systems.

Sunday, April 3, 2011

Error 500--Internal Server Error


I have a struts Application which was deployed in BEA Weblogic Server instance and was working as expected. This Application is using some of the external API’s as well.

As part of enhancement, I modified some of the java files and replaced the external API’s with the re-written API’s and built the application (WAR/JAR) using ecplise-Ant and deployed it on the BEA Weblogic Server instance. Unfortunately it had thrown the “Error 500--Internal Server Error” as below.

==================================================================
Error 500--Internal Server Error
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:163)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:138)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:278)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused by: java.lang.NullPointerException
at java.util.Hashtable.get(Hashtable.java:333)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:233)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
at com.abc.wam.base.BaseAction.(BaseAction.java:30)
... 24 more



I was 100% sure; this was not the application issue and something to do with the Java classpath. The issue is i didn’t install JAVA JDK on the desktop where I built the application instead I placed the installed version of java jdk & jre folders from other desktop since i didn't have the admin privileges to install the software. And I had set the classpath & javahome variables. This setup was working for all the other applications but not for this application. It was a strange issue and tried the following and resolved this.

If your are getting the above exception try the following possibilities, one of them could solve your issues.


  • Check your application's build path - verify lib jar file locations.
  • Try to build the same application on the other system.
  • Verify the java version and its compatibility with your application.

JBoss service shutdown issue

I recently installed Jboss-5.0.0.GA version on my Linux environment and configured the Application server to run as a service as per the below guidelines.


Jboss Run the Application Server as a Service


I was able to start the jboss application server by using the service but i couldn't stop the service. It was throwing the following exception while stopping jboss service.


hostname018:/opt/jboss-5.0.0.GA/bin # /etc/init.d/jboss_eap stop
JBOSS_CMD_START = cd /opt/jboss-5.0.0.GA/bin; /opt/jboss-5.0.0.GA/bin/run_custom.sh
Exception in thread "main" javax.naming.CommunicationException: Could not obtain connection to any of these urls: hostname018.domain.com:1099 [Root exception is javax.naming.CommunicationException: Failed to connect to server hostname018.domain.com:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server hostname018.domain.com:1099 [Root exception is java.net.ConnectException: Connection refused]]]
        at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1727)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:680)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:673)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at org.jboss.Shutdown.main(Shutdown.java:219)
Caused by: javax.naming.CommunicationException: Failed to connect to server hostname018.domain.com:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server hostname018.domain.com:1099 [Root exception is java.net.ConnectException: Connection refused]]
        at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:311)
        at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1698)
        ... 4 more
Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server hostname018.domain.com:1099 [Root exception is java.net.ConnectException: Connection refused]
        at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:281)
        ... 5 more
Caused by: java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:97)
        at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:82)
        at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:277)
        ... 5 more
hostname018:/opt/jboss-5.0.0.GA/bin #


I found the interesting solution for this issue after enough investigation. This might save some of your precious time during your installation/configuration.

I made sure that this exception is nothing to do with the service configuration. I was getting this exception even though i use the shutdown_custom.sh command to stop the service. Then i tried the following telnet command to make sure that my service is listening to port which is used for shutdown process. 

hostname018:~# telnet hostname018.domain.com 1099

Then I found the weired thing that it first tried to map it to the some unknown IP address and then connects to the it's own IP address as below.

hostname018:~# telnet hostname018.domain.com 1099
Trying 192.168.4.88...
telnet: connect to address 192.168.4.88: Connection refused
Trying 152.141.186.188...
Connected to hostname018.domain.com.
Escape character is '^]'.


Then i got a clue and verified the host file entry. Found the interesting thing here, this domain name was mapped to some irrelevant IP address 192.168.4.88 in the host file. 

Jboss service shutdown service is working as expected without any issues after removing the irrelevant host file entry.