Quick guide to Oracle IRM 11g: Server configuration
By Simon Thorpe on Jun 14, 2010
Welcome to the second article in this quick quide to Oracle IRM 11g. Hopefully you've just finished the first article which takes you through deploying the software onto a Linux server. This article walks you through the configuration of this new service and contains a subset of information from the official documentation and is focused on installing the server on Oracle Enterprise Linux. If you are planning to deploy on a non-Linux platform, you will need to reference the documentation for platform specific information.
In the previous article the database was prepared, the WebLogic Application Server installed and the files required for an IRM server installed. But we don't actually have a configured system yet. We need to now create a WebLogic Domain in which the IRM server will run, then configure some of the settings and crypography so that we can create a context and be ready to seal some content and test it all works. This article doesn't cover the configuration of SSL communication from client to server. This is quite a big topic and a separate article has been dedicated for this area.
In these articles I also use the hostname, irm.company.internal to reference the IRM server and later on use the hostname irm.company.com in reference to the public facing service.
|First step is creating the WebLogic domain, in a console switch to the newly created IRM installation folder as shown below and we will run the domain configuration wizard.
Note: A common mistake when installing on a Windows platform is to run the config.cmd from the "Start- All Programs" in Windows. This is not the same utility as config.cmd under ECM_HOME\common\bin.
[oracle@irm /]$ cd /oracle/middleware/Oracle_IRM/common/bin
[oracle@irm bin]$ ./config.sh
First thing the wizard will ask is if you wish to create a new or extend an existing domain. This guide is creating a standalone system so you should select to create a new domain.
|<><> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> >
Next step is to choose what technologies from the Oracle ECM Suite you wish this domain to host. You are only interested in selecting the option "Oracle Information Rights Management". When you select this check box you will notice that it also selects "Oracle Enterprise Manager" and "Oracle JRF" as these are dependencies of the IRM server.
You then need to specify where you wish to place the domain files. I usually just change the domain name from base_domain or irm_domain and leave the others with their defaults.
Now the domain will have a single user initially and by default this user is called "weblogic". I usually change this account name to "sysadmin" or "administrator", but in this guide lets just accept the default.
With respects to the next dialog, again for eval or dev reasons, leave the server startup mode as development. The JDK should also be automatically detected.
We now need to provide details of the database. This guide is using the Oracle 11gR2 database and the settings I used can be seen in the image to the right.
There is a lot of configuration that can now be done for the admin server, any managed servers and where the deployments reside. In this guide I am leaving all of these to their defaults so do not check any of the boxes. However I will on this blog be detailing later how you can go back and setup things such as automated startup of an IRM server which require changes to these default settings. But for now, lets leave it all alone and just click next.
Now we are ready to install. Note that from this dialog you can scroll the left window and see there are going to be two servers created from the defaults. The AdminServer which is where you modify settings for the WebLogic Server and also hosts the Oracle Enterprise Manager for IRM which allows to monitor the IRM service performance and also make service related settings (which we shortly do below) and the IRM_server1 which hosts the actual IRM services themselves. So go right ahead and hit create, the process is pretty quick and usually under 10 minutes.
When the domain creation ends, it will give you the URL to the admin server. It's worth noting this down and the URL is usually;
|First thing to do is to start the WebLogic Admin server and review the initial IRM server settings. In this guide we are going to run the Admin server and IRM server in console windows, in another article I will discuss running these as background services. So for now, start a console and run the Admin server by doing the following.
Wait for the server to start, you are looking for the following line to be reported in the console window.
<BEA-00360><Server started in RUNNING mode>
|First step is configuring the IRM service via Enterprise Manager. Now that the Admin server is running you can point a browser at http://irm.company.internal:7001/em. Login with the username and password you supplied when you created the domain.
|In Enterprise Manager the IRM service administrator is able to make server wide configuration. However finding where to access the pages with these settings can be a bit of a challenge. After logging in on the left you'll see a tree containing elements of the Enterprise Manager farm Farm_irm_domain. Open up Content Management, then Information Rights Management and finally select the IRM node. On the right then select the IRM menu item, navigate to the Administration section and now we have four options, for now, we are just going to look at General Settings. The image on the right proves that a picture is worth a thousand words (or 113 in this case).
|The General Settings page allows you to set the cryptographic algorithms used for protecting sealed content. Unless you have a burning need to increase the key lengths or you need to comply to a regulation or government mandate, AES192 is a good start. You can change this later on without worry. The most important setting here we need to make is the Server URL. In this blog article I go over why this URL is so important, basically every single piece of content you protect with Oracle IRM is going to have this URL embedded in it, so if it's wrong or unresolvable, then nobody can open the secured documents. Note that in our environment we have yet to do any SSL configuration of the service. If you intend to build a server without SSL, then use http as the protocol instead of https. But I would recommend using SSL and setting this up is described in the next article.
I would also probably up the device count from 1 to 3. This means that any user can retrieve rights to access content onto 3 computers at any one time. The default of 1 doesn't really make sense in development, evaluation nor even production environments and my experience is that 3 is a better number.
|Next step is to create the keystore for the IRM server. When a classification (called a context) is created, Oracle IRM generates a unique set of symmetric keys which are used to secure the content itself. These keys are then encrypted with a set of "wrapper" asymmetric cryptography keys which are stored externally to the server either in a Java Key Store or a HSM. These keys need to be generated and the following shows my commands and the resulting output.
One common error here is using the wrong keytool. In my guide I am using Oracle Enterprise Linux (Basically RedHat EL) and by default it ships with a GNU version of Java and a keytool that doesn't work as well. Make sure you are using the keytool in the right Java distribution. Check this with the command;
[oracle@irm ~]$ which java
Don't use the keytool that ships with Linux, its in /usr/bin/
I have greyed out the responses from the commands so you can see the input a little easier.
[oracle@irm ~]$ cd /oracle/middleware/wlserver_10.3/server/bin/
[oracle@irm bin]$ ./setWLSEnv.sh
Your environment has been set.
[oracle@irm bin]$ cd /oracle/middleware/user_projects/domains/irm_domain/config/fmwconfig/
[oracle@irm fmwconfig]$ keytool -genkeypair -alias oracle.irm.wrap -keyalg RSA -keysize 2048 -keystore irm.jks
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: Simon Thorpe
What is the name of your organizational unit?
What is the name of your organization?
What is the name of your City or Locality?
[Unknown]: San Francisco
What is the name of your State or Province?
What is the two-letter country code for this unit?
Is CN=Simon Thorpe, OU=Oracle, O=Oracle, L=San Francisco, ST=CA, C=US correct?
Enter key password for
(RETURN if same as keystore password):
At this point we now have an irm.jks in the directory /oracle/middleware/user_projects/domains/irm_domain/config/fmwconfig. The reason we store it here is this folder would be backed up as part of a domain backup. As with any cryptographic technology, DO NOT LOSE THESE KEYS OR THIS KEY STORE. Once you've sealed content against a context, the keys will be wrapped with these keys, lose these keys, and you can't get access to any secured content, pretty important.
and hit Apply.
|The final step with regards to the key store is we need to tell the server what the password is for the Java Key Store so that it can be opened and the keys accessed. Once more fire up a console window and run these commands (again i've greyed out the clutter to see the commands easier). You will see dummy passed into the commands, this is because the command asks for a username, but in this instance we don't use one, hence the value dummy is passed and it isn't used.
[oracle@irm fmwconfig]$ cd /oracle/middleware/Oracle_IRM/common/bin/
[oracle@irm bin]$ ./wlst.sh
... lots of settings fly by...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Connecting to t3://irm.oracle.internal:7001 with userid weblogic ...
Successfully connected to Admin Server 'AdminServer' that belongs to domain
Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire
security, the SSL port or Admin port should be used instead.
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean
as the root.
For more help, use help(domainRuntime)
Already in Domain Runtime Tree
|At last we are now ready to fire up the IRM server itself. The domain creation created a managed server called IRM_server1 and we need to start this, use the following commands in a new console window.
|This will start up the server in the console, unlike the Admin server, you need to provide the username and password for the service to start. Enter in your weblogic username and password when prompted. You can change this behavior by putting the password into a boot.properties file, read more about this in the WebLogic Server documentation. Once running, wait until you see the line;
At this point we can now login to the Oracle IRM Management Website at the URL.
<Notice><WebLogicServer><BEA-000360><Server started in RUNNING mode>
The server is just configured for HTTP at the moment, no SSL involved. Just want to ensure we can get a working system up and running. You should now see a login like the image on the right and you can now login using your weblogic username and password.
The next article in this guide goes over adding SSL and now testing your server by actually adding a few users, sealing some content and opening this content as a user.