Monday Nov 17, 2008
*
Today's Page Hits: 138

Monday Nov 17, 2008
Well, the time has come to carry on. This is my last day at Sun Microsystems. I've taken a technical writing position at VMware.
I feel honored to have worked in identity management at Sun. Sun definitely does identity management right. Unfortunately, lately, Sun cannot say that about a lot of other products. However, identity management is quite a success story and it's only getting better. OpenSSO Enterprise 8.0 is the top dog in the web access management market and it's getting the attention it deserves, inside and outside of Sun.
OpenSSO has gotten more popular since it was open sourced and it's even making money. In fact, it's seen huge revenue increases. So, it's been an exciting product to work on. I feel equally excited to work on virtualization at VMware. I'll see how that works. So that sums it up. I wanted to say bye to those who read my blog. Otherwise, you might wonder why I suddenly stopped blogging. So, now you know. Thanks.
Friday Oct 31, 2008
I have included two images of flow charts in this blog entry that show how a request for a resource is processed: one image is web-agent specific and one is J2EE-agent specific.
These charts show the possible scenarios that can take place when an end user makes a request for a resource. Therefore, the end user points a browser to a URL. That URL is a resource, such as a JPEG image, HTML page, JSP page, etc. When an agent is configured to protect that resource ("protect" is not always the correct word, but the agent has a role to watch the resource anyway), it intervenes to varying degrees and checks the request. The situation might be that all requests are granted for that particular resource. Maybe then the request is logged and maybe it isn't logged. Hopefully, the flow charts reflect the key details.
Coming up with a flow chart that provides just the right level of detail is a tricky proposition: too much detail and the image is too complex; not enough detail and the image doesn't provide much useful info. Anyway, after getting much input from developers, this is what I came up with.
The flow chart that follows illustrates how a request for a resource
is handled by a web agent. Therefore, the web agent is protecting resources on a web server or web proxy server. The flow chart shows the processes the web agent goes through to protect such resources.
How a Resource Request is Processed by a Web Agent

The flow chart that follows illustrates how a request for a resource is handled by a J2EE agent. You can see that the J2EE security that is available in application servers (though J2EE agents often protect resources on portal severs, too) adds a layer of complexity to the chart. The J2EE agent flow chart also shows how the filter mode setting affects the processing of a request.
How a Resource Request is Processed by a J2EE Agent
11/01/08: The flow chart in the link that follows was updated today. The "Yes" lines coming out of the top right side were not aligned properly. The problem has now been fixed. However, the print was too small and difficult to read. Therefore the image has been split into two (see below). It should be easier to read.
To see the two images combined as one, see the following: Single Image.
------------------------------------------
11/06/08: The
following two flow charts were just updated today. The original chart has been split into two to allow the text to be larger. Hopefully, it's easier to read this way.


Saturday Oct 11, 2008
For the most up-to-date information about the use of wildcards for OpenSSO policy definitions, see the following page on the OpenSSO wiki:
http://wikis.sun.com/display/OpenSSO/openssowildcardsI've written a couple of blog entries on wildcards lately:
Christopher Nebergall left a comment on the "Wildcards for OpenSSO" entry saying the following:
"Would it make more sense for you to put doc entries like this blog post into one of the Sun wiki's instead of your blog? Then others like myself could help provide content and help keep it up to date."
I thought that was such a grand idea that I created the Wildcard Matching in OpenSSO wiki page.
Okay, so now, that should be the go-to place for wildcard information related to OpenSSO. So information on wildcards and their relationship to query strings and the like will be most up-to-date on that wiki page. I would venture to say that that page will end up being more current and comprehensive than the official documentation on the topic.
Friday Oct 10, 2008
If you want to learn a lot about OpenSSO as quickly and easily as possible, look no further than the free lab AM-3508-D. Training course developer, David Goldsmith, has really outdone himself here. He has put together a lab that can really change how training is done in the future for OpenSSO.
This type of training course has tremendous potential. This should really be able to serve the OpenSSO community. Lab AM-3508-D is described in several places, including the following:
Anyway, there was a lot of buzz on this lab when it first came out and I've continued to hear great buzz since. Like I said, the potential here is great. I finally got around to starting the lab. It looks great. You have the whole lab in a VMware virtual machine, all self contained and beautiful. It's just great! (Have I used the word "great" enough? Really, it's great!). You install and configure the OpenSSO related products. Your not watching someone do it. Your not reading about how to do it. You just do it. To borrow a phrase, "It just works!" You can jump forward or roll back anywhere along the way. This is really, really what training aspires to be. This kind of learning can really reach the community easily, too. Often classroom training is just not feasible.
To get the lab, I used the OpensSSO publication team's Windows laptop to download the free Sun Download Manager 2.0 for downloading large Sun downloads (downloading it and installing it took all of 3 minutes). Then I downloaded the free labs (thhis took a while because they're in a virtual machine which is a huge download). Then I downloaded the free VMware Player (downloading it and installing it took all of 7 minutes).
To be fair, I must explain that I first tried to downlaod VMware Server. You can create your own virtual machines with VMware server, but not VMware Player. However, I ran into problems with VMware Server. You need to provide the fully qualified domain name, so I issued ipconfig from a command window. It seemed like I had it figured out. I'm wondering if there was a permissions problem. I had a browser interface that was letting me control the VMware Server interface, I had the lab 3508-D virtual machine all loaded. Then, bam! I got an error that wouldn't let me continue. I uninstalled VMware Server, downloaded and installed VMware Player and all is goodness.
The lab is all on Solaris, so you'll do everything in a Solaris environment. You get to learn some pretty trick Solaris things along the way, such as the concepts of "zones" and "ZFS." You can stop and come back later to the same spot, or skip forward or fall back amongst labs. I'm just starting, so it's too early to say too much.
I thought that just getting the lab started might be an ordeal, but it wasn't. It's especially easy if one uses VMware Player, since it's so lightweight and simple.
Bottom Line: If you want to learn about how to use OpenSSO and Policy Agent 3.0 and a lot, lot more, do this free lab. Did I mention that it's free?
Tuesday Oct 07, 2008
NOTE ADDED 10/11/08: For the most up-to-date info on wildcards see the following link:
http://wikis.sun.com/display/OpenSSO/openssowildcardsIn my previous blog entry, Wildcards for OpenSSO, I provided the write up I plan to include for OpenSSO documentation. I got some feedback. One piece of feedback came in the form of a blog comment at the end of the entry. I responded to that comment with my own comment. The other piece of feedback had to do with query strings in URLs, and that comment came in the form of an email message through the following mailing list: users@opensso.dev.java.net. Obviously, I'm subscribed to that mailing list.
In fact, when I submit a new blog entry, I often send an email message to that mailing list. This is a great community approach that I picked up from other Sun bloggers. When it comes to feedback, I feel that comments on the blog are actually better because people who haven't subscribed to the mailing list still can see the comment. All the same, the mailing list is great. I feel that the OpenSSO community is really starting to gel. It's easier than ever to interact with the community now. Anyway, the following link is to various OpenSSO related mailing lists:
https://opensso.dev.java.net/servlets/ProjectMailingListList
The "users" mailing list has a lot of activity. To sign up to one of the mailing lists, you first need to register to the OpenSSO project. You can also do that from the link listed above.
All right then, for the the comment I received about query strings, I wrote up a couple of short paragraphs that I'll add to my wildcard write up. I've added those paragraphs below. Leave a comment if you have anything you can add or suggest for these two extra paragraphs.
Handling Resources That Contain Query Strings:
Some resources use
a query string, which is the part of a URL that contains data to be
passed to web applications. The following is a feasible example of a
URL that contains a query string: http://AgentHost/path/app?query-string. The question mark (?) is the separator. It is not part of the query string. Many scenarios exist in which query strings might be used. They can be used for personalization of the user's session. Sometimes an application might add some locale information for a page request. The following example demonstrates the use of such locale information:
http://AgentHost.com:8080/sampleapp/main.jsp?language=en&country=US.
Neither the multi-level wildcard (*) nor the one-level wildcard (-*-)
match the question mark. Therefore, to define a policy resource that
can handle the question mark, use the multi-level wildcard on both
sides of a question mark, as follows: *?* (asterisk-question mark-asterisk).
Sunday Oct 05, 2008
NOTE ADDED 10/11/08: For the most up-to-date info on wildcards see the following link:
http://wikis.sun.com/display/OpenSSO/openssowildcards
Earlier this year, Michael Teger blogged about wildcard use for our products as follows:
http://blogs.sun.com/docteger/entry/wildcard_matches_in_policy_agents
http://blogs.sun.com/docteger/entry/one_more_wildcard
I used this information to put together a write up for the OpenSSO Enterprise 8.0 and Policy Agent 3.0 documentation. I talked to a few developers to get some more info and to have them double check everything. So this should completely explain how you can use wildcards for policy-related situations when configuring OpenSSO or Policy Agent.
If anything looks unclear to you in this write up, please leave a comment.
Below is the write up about wildcard use in OpenSSO and Policy Agent.
The OpenSSO Enterprise policy service supports policy definitions that use either of the two following wildcards:
These wildcards can be used in policy related situations. For example, when using the OpenSSO Enterprise Console or the ssoadm utility to create policies or when configuring the Policy Agent property to set the not-enforced list.
Caution - When issuing the ssoadm command, if you include values that contain wildcards (* or -*-), then the name/value pair should be enclosed in double quotes to avoid substitution by the shell.
For creating a policy, the following are feasible examples of the wildcards in use: http://agentHost:8090/agentsample/* and http://agentHost:8090/agentsample/example-*-/example.html.
For the not-enforced list, the following are feasible examples of the wildcards in
use:
Web Agents:
http://agentHost:8090/agentsample.com/*.gif and http://agentHost:8090/agentsample/-*-/images
J2EE Agents:
/agentsample.com/*.gif and /agentsample.com/-*-/images
Note - A policy resource can have either the multi-level wildcard (*) or the one-level wildcard (-*-), but not both. Using both types of wildcards in the same policy resource is not supported.
The following list summarizes the behavior of the multi-level wildcard (the asterisk, *):
Matches zero or more occurrences of any character except for the question mark (?).
Spans across multiple levels in a URL
Cannot be escaped. Therefore, the backslash character (\) or other characters cannot be used to escape the asterisk, as such \*.
The following examples show the multi-level wildcard character when used with the forward slash (/) as the delimiter character:
The asterisk (*) matches zero or more characters, except the question mark, in the resource name, including the forward slash (/). For example, ...B-example/* matches ...B-example/b/c/d, but doesn't match ...B-example/?
Multiple consecutive forward slash characters (/) do not match with a single forward slash character (/). For example, ...B-example/*/A-example doesn't match ...B-example/A-example.
Any number of trailing forward slash characters (/) are not recognized as part of the resource name. For example, ...B-example/ or ...B-example// are treated the same as ...B-example.
|
Pattern |
Matches |
Does Not Match |
|---|---|---|
|
http://A-example.com:80/* |
http://A-example.com:80 http://A-example.com:80/ http://A-example.com:80/index.html http://A-example.com:80/x.gif |
http://B-example.com:80/ http://A-example.com:8080/index.html http://A-example.com:80/a?b=1 |
|
http://A-example.com:80/*.html |
http://A-example.com:80/index.html http://A-example.com:80/pub/ab.html http://A-example.com:80/pri/xy.html |
http://A-example.com/index.html http://A-example.com:80/x.gif http://B-example.com/index.html |
|
http://A-example.com:80/*/ab |
http://A-example.com:80/pri/xy/ab/xy/ab http://A-example.com:80/xy/ab |
http://A-example.com/ab http://A-example.com/ab.html http://B-example.com:80/ab |
|
http://A-example.com:80/ab/*/de |
http://A-example.com:80/ab/123/de http://A-example.com:80/ab/ab/de http://A-example.com:80/ab/de/ab/de http://A-example.com:80/ab//de |
http://A-example.com:80/ab/de http://A-example.com:80/ab/de http://B-example.com:80/ab/de/ab/de |
The one-level wildcard (-*-) matches only the defined level starting at the location of the one-level wildcard to the next delimiter boundary. The “defined level” refers to the area between delimiter boundaries. Many of the rules that apply to the multi—level wildcard also apply to the one-level wildcard.
The following list summarizes the behavior of hyphen-asterisk-hyphen (-*-) as a wildcard:
Matches zero or more occurrences of any character except for the forward slash and the question mark (?).
Does not span across multiple levels in a URL
Cannot be escaped. Therefore, the backslash character (\) or other characters cannot be used to escape the hyphen-asterisk-hyphen, as such \-*-.
The following examples show the one-level wildcard when used with the forward slash (/) as the delimiter character:
The one-level wildcard (-*-) matches zero or more characters (except for the forward slash and the question mark) in the resource name. For example, ...B-example/-*- doesn't match ...B-example/b/c/ or ...B-example/b?
Multiple consecutive forward slash characters (/) do not match with a single forward slash character (/). For example, ...B-example/-*-/A-example doesn't match ...B-example/A-example.
Any number of trailing forward slash characters (/) are not recognized as part of the resource name. For example, ...B-example/ or ...B-example// are treated the same as ...B-example.
|
Pattern |
Matches |
Does Not Match |
|---|---|---|
|
http://A-example.com:80/b/-*- |
http://A-example.com:80/b http://A-example.com:80/b/ http://A-example.com:80/b/cd/ |
http://A-example.com:80/b/c?d=e http://A-example.com:80/b/cd/e http://A-example.com:8080/b/ |
|
http://A-example.com:80/b/-*-/f |
http://A-example.com:80/b/c/f http://A-example.com:80/b/cde/f |
http://A-example.com:80/b/c/e/f http://A-example.com:80/f/ |
|
http://A-example.com:80/b/c-*-/f |
http://A-example.com:80/b/cde/f http://A-example.com:80/b/cd/f http://A-example.com:80/b/c/f |
http://A-example.com:80/b/c/e/f http://A-example.com:80/b/c/ http://A-example.com:80/b/c/fg |
Thursday Sep 11, 2008
This blog entry picks up where the last blog entry (GlassFish Instructions: domain1 for OpenSSO, domain 2 for Policy Agent) left off. This entry is all about setting up the sample application. The assumption is that you completed the tasks described in the previous entry.
YOU SHOULD INSTALL THE SAMPLE APPLICATION!!! I mean, unless you're
extremely familiar with J2EE agents, you'll learn most effectively and
efficiently by Installing the sample application and experimenting with
it. By working with the sample application, you can figure out how it
functions. It's invaluable.
| Map Key | Corresponding Map Value |
| agentsample |
/agentsample/logout |
| Map Key | Corresponding Map Value |
| agentsample |
/agentsample/authentication/accessdenied.html |
| New
User: Field |
Enter
the Following: |
| ID |
chris |
| FirstName: |
chris |
| Last
Name: |
chris |
| Full
Name: |
chris |
| Password: |
chris |
| Password
(confirm): |
chris |
| User
Status: |
Active |
| New
Group: Field |
Enter
the Following: |
| ID |
manager |
| New
Group: Field |
Enter
the Following: |
| ID |
employee |
AgentHost.example.com:33053/agentsample/| New
Rule Component |
Perform the Following |
| Name |
Enter: JSP Pages |
| Resource Name |
Enter: http://AgentHost.example.com:33053/agentsample/* |
| Action: GET |
Click GET with Allow
chosen |
| Action: POST |
Click POST with
Allow
chosen |
| New Subject Component | Perform the Following |
| Name | Enter: S1 |
| Exclusive | Nothing. Skip this. |
| Filter (Select
identity type) |
Select Group as the
identity type (Do not need use the field to the right). Click Search. |
| Available ->
Selected |
Click Add All to
move "employee" and "manager" from the Available column to the
Selected column. |
Logging Out of the Agent Sample Application
|
The logout page does
not have to exist for you to log out of the sample application. You can
type "logout" in the URL field after the string "agentsample/." For
example, http://AgentHost.example.com:33053/agentsample/logout.When the agent receives a request for the resource "...agentsample/logout," it invokes the logout feature. This logs the user out of the application. You can verify that the user is logged out by trying to access a protected page resource and seeing that you are again asked to login, indicating you have been logged out. An alternative way to verfiy logout is to go to the opensso UI console main page and click the Sessions tab which will list all active sessions and you will see that the user is no longer listed since you logged out of the aplication. |
AgentHost.example.com:33053/agentsample
Showing Request Information Including Headers, Cookies, and AttributesRequest Method: GET Request URI: /agentsample/jsp/showHttpHeaders.jsp Request Protocol: HTTP/1.1 Request Scheme: http Request Server Name: AgentHost.example.com Request Server Port: 33053 |
|
| Header Name | Header Value |
|---|---|
| host | AgentHost.example.com:33053 |
| user-agent | Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.1.4) Gecko/20070622 Firefox/2.0.0.4 |
| accept | text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 |
| accept-language | en-us,en;q=0.5 |
| accept-encoding | gzip,deflate |
| accept-charset | ISO-8859-1,utf-8;q=0.7,*;q=0.7 |
| keep-alive | 300 |
| connection | keep-alive |
| referer | http://AgentHost.example.com:33053/agentsample/public/urlpolicy.html |
| cookie | JSESSIONID=b6eb2151444c60fee7b61605c215; s_vi=[CS]v1|48B43B1200006FE8-A000B0400005553[CE]; amlbcookie=01; iPlanetDirectoryPro=AQIC5wM2LY4SfcxG/3VzZI+HWuNsJhQ5ESAh7OTM7qYv2uU=@AAJTSQACMDE=# |
| Request Attribute Name | Atribute Value |
| com.sun.enterprise.http.sessionTracker
|
org.apache.coyote.tomcat5.SessionTracker@1a9d205 |
glassfish-installer-v2ur2-b04-sunos.jar to the GlassFish installation directory you just created. As you know, I named it as follows: /GF_OSSO_PA
# java
-Xmx256m -jar glassfish-installer-v2ur2-b04-sunos.jar
A license agreements appears.glassfish directory with everything
inside. glassfish directory. For example:# cd
/GF_OSSO_PA/glassfish
# chmod -R +x
lib/ant/bin #
lib/ant/bin/ant -f setup.xml
glassfish/bin
directory. For example:
# cd /GF_OSSO_PA/glassfish/bin
./asadmin
start-domain domain1
http://OpenSSOhost.example.com:8080. because it
will host the OpenSSO server.http://OpenSSOhost.example.com:4848.| Changes to Make |
Lines
Before
Editing |
Lines
After
Editing |
| "client" to "server" |
<jvm-options>-client</jvm-options> | <jvm-options>-server</jvm-options> |
| "512 to "1024" |
<jvm-options>-Xmx512m</jvm-options> |
<jvm-options>-Xmx1024m</jvm-options> |
# /GF_OSSO_PA/glassfish/bin/asadmin
start-domain domain2
http://OpenSSOhost.example.com:6868.# /GF_OSSO_PA/glassfish/bin/asadmin
stop-domain domain2
If you don't shutdown the second domain before
creating the agent (later on), it will modify files.# /GF_OSSO_PA/glassfish/bin/asadmin
stop-domain domain1https://opensso.dev.java.net/public/use/index.html
A more specific location on the above page, for periodic builds, is
here:
https://opensso.dev.java.net/public/use/index.html#periodic
The above URL brings you to the table named Periodic OpenSSO and Client
SDK Builds. You could navigate to that table and right click the "opensso.zip" link. Or you could just right click it here: "opensso.zip". Then you can choose the option that controls where the download is saved within
your directory system.
At the time I performed this task, the latest build was September 10th.
When
I install the GlassFish agent (described later in this blog entry), I
also use the September 10th build.
Be aware that there's a risk-reward relationship involved with using
periodic builds. The reward is that you might be able to see the newest
features and behaviors. The risk is that the chances of the build
failing or acting oddly are greater than when you use a stable buld. At
least, you know the September 10th build is stable enough to handle all
the tasks described in this blog entry.
If you want to install the same build that I did (since you know it's
relatively stable) but at a point in time in which the Sept 10th build
is no longer available from the Periodic OpenSSO and Client SDK Builds
table, then you can pick it up at this link: http://download.java.net/general/opensso/nightly/20080910.1/opensso/
You can go to that page and right click the openso.zip
link or you can right click it here: opensso.zip. Then you can control which directory the file is downloaded to.
OpenssoHost.example.com:8080/opensso
| Field |
Example
Value |
| Name |
glassfishagent |
| Password |
agent456 |
| Re-enter Password |
agent456 |
| Configuration |
Centralized |
| Server URL | http://OpenssoHost.example.com:8080/opensso |
| Agent URL |
http://AgentHost.example.com:33053/agentapp |
GF_OSSO_PA/glassfish/bin/asadmin
start-domain domain1)# ./agentadmin
--installGF_OSSO_PA/glassfish/domains/domain2/configOpenssoHost.example.com:8080/openssoAgentHost.example.com:33053/agentappThere are a few ways to deploy applications on GlassFish. This task
shows the method
I used. I deployed two applications at the same time. The agentapp.war file
is used for housekeeping tasks, and it required for the notification
mechanism to function. The agentsample.ear
file is the J2EE agent sample application, which gives you the
opportunity to
practice protecting an application with the agent. Therefore, you can
create policies
and perform other tasks that control access to the application and then
you can test those policies. I'll be configuring the sample
application in the next task, so I decided to deploy it at the same
time that I'm deploying the agent application.
Deploying the sample application (e.g agentsample.ear)
the way I do below (without building my own sample application)
is possible because the agentsample.ear
file is already built for me with the assumption
that I used the default realm, "opensso" when
installing the OpenSSO server. Well, good, I really did use the
"opensso" realm, so I didn't have to change the
realm information and rebuild the sample application myself. By the
way,
such details are explained in the sample application readme.txt file:
(e.g. /GF_OSSO_PA/j2ee_agents/appserver_v9_agent/sampleapp/readme.txt)

# /GF_OSSO_PA/glassfish/bin/asadmin
start-domain domain2
adminadmin
GlassFishHost.example.com:6868
Wednesday Jul 23, 2008
When it comes to OpenSSO, the idea of Centralized Agents is a big deal. That's one of the ease-of-use features that's coming with OpenSSO. There have been a lot of little niceties made along the way that make the centralization of the agents even easier for customers. As the OpenSSO builds continue, configuring the agents in the OpenSSO Console has become simpler (step by step) for customers.
If you have installed earlier builds along the way, you've seen some of the improvements. I have included a couple of screenshots of the OpenSSO Console, showing the Policy Agent property views. These properties are map constructs. A map property is a property where a value is mapped to a key. In earlier builds, you had to enter more complicated information in a field. Now, the more complicated stuff is handled behind the scenes. You just enter a map key in one field and it's value in the other.
Hopefully, the inline help gives you enough information to understand what to enter for the map key and value. The inline help has become more thorough also, build by build.
Furthermore, if you need more detailed info then is available in Help, you'll be able to find it as I continue to work on the Policy Agent 3.0 Properties wiki. For example, the J2EE agent property listed below, Agent Filter Mode, is pretty involved. However, there's a description on the wiki for it now: http://wikis.sun.com/display/OpenSSO/j2eeagentfiltermode
Such descriptions are a work in progress. They can be continually improved upon as various deployment scenarios bring up new questions about a property.
A Web Agent Map Property
A J2EE Agent Map Property

The Agent Filter Mode property above is interesting because it highlights the global option, which applies to some J2EE map properties. Some J2EE map properties can apply to specific applications on the application server or globally to all the applications on the application server. The inline instructions above describe how to apply the property globally to all applications or individually to specific applications.
Lots of people are abuzz today about OpenSSO Express and what it means to customers using Sun Access Manager:
Daniel Raskin: http://blogs.sun.com/raskin/entry/sun_announces_opensso_express
The Identity Management Buzz Blog: http://blogs.sun.com/idmbuzz/entry/announcing_sun_s_opensso_express
Michael Teger: http://blogs.sun.com/docteger/entry/here_comes_the_express_opensso
Rajesh R: http://blogs.sun.com/rajeshr/entry/sun_announces_opensso_express_support
The Aquarium Blog: http://blogs.sun.com/theaquarium/entry/opensso_express_sun_support_for
If you can't find enough info about OpenSSO Express in the links above, I'd imagine that such info just doesn't exist.
Monday Jul 21, 2008
This entry describes how to install GlassFish as a container for content to be protected by Policy Agent 3.0 (Agent for Application Server 9.0) on a Solaris 10 (SPARC) machine. I also provide the instructions for installing the agent and performing some preliminary agent configuration. These instructions are related to the instructions I already provided in the following entry: http://blogs.sun.com/JohnD/entry/how_to_install_tomcat_6.
NOTE TO READER: If you see anything that isn't clear or is outright incorrect, don't hesitate to leave a comment. I'll try to straighten it out.
Also, in this blog, you can bring up a list of blog entries with instructions for this deployment. This deployment is all on one machine (on Solaris 10) and inlcudes OpenSSO server on Tomcat 6.x with the Application Server 9.0 agent on GlassFish server. This will probably include other configurations, too, such as deploying the sample application and more. Click the following link:
Blog entires related to the deployment: Tomcat for OpenSSO & GlassFish for GlassFish agent
Just know, that for my instructions, all the URLs are served from the same machine, even though the host name is shown differently.
glassfish-installer-v2ur2-b04-sunos.jar
from
# java
-Xmx256m -jar glassfish-installer-v2ur2-b04-sunos.jar
A license agreements appears.glassfish directory with everything
inside. glassfish directory.
# chmod -R +x
lib/ant/bin #
lib/ant/bin/ant -f setup.xml
glassfish/bin
directory. For example:
# cd pa3gf/glassfish/bin
:
# ./asadmin
start-domain domain1
http://AgentHost.domain:8090.
AgentHost because it
will host the GlassFish agent.https://AgentHost.domain:4848.OpenssoHost.example.com:8080/openssoFamHost.example.com:8080/fam| Field |
Example
Value |
| Name |
glassfishagent |
| Password |
agent123 |
| Re-enter Password |
agent123 |
| Configuration |
Centralized |
| Server URL | http://OpenssoHost.example.com:8080/opensso |
| Agent URL |
http://AgentHost.example.com:8090/agentapp |
# glassfish/bin/asadmin
stop-domain domain1
If you don't shutdown the domain before
creating the agent, it will modify files.# ./agentadmin
--installOpenssoHost.example.com:8080/openssoAgentHost.example.com:8090/agentappOpenssoHost.example.com:8080/opensso/AgentHost.example.com:8090/agentappThere are a few ways to deploy applications on GlassFish. This task shows the method
I used. I deployed two applications at the same time. The agentapp.war file
is used for housekeeping tasks. The agentsample.ear
file is the J2EE agent sample application, which gives you the opportunity to
practice protecting an application with the agent. Therefore, you can create policies
and perform other tasks that control access to the application. I
plan to add a blog entry in the future about using the sample
application, so I've decided to deploy it now.

#
pa3gf/glassfish/bin/asadmin
start-domain domain1
GlassFishHost.example.com:4848
Wednesday Jul 16, 2008
You can find links for Access Manager
Policy Agent 2.2 for Microsoft Internet Information Services 6.0 With Outlook Web Access 2007/SharePoint 2007, both
the download and the document, on my Policy Agent 2.2 Documentation and Downloads
page. This agent is a 2.2-01 agent.
For a while now, the IIS 6.0 agent could be used to protect Microsoft Office SharePoint & Outlook Web Access, but previously that only applied to Outlook Web Access 2003/SharePoint 2003.
So we've all got this going for us anyway!
Tuesday Jul 15, 2008
Policy Agent 3.0 is coming out soon enough and the properties are still complicated. You can set them in the Federated Access Manager Console now, which is good, but it's still complicated. It's the details that are difficult to get. And yet, some times you just gotta have the details.
What would you like to see in terms of property descriptions? Yes, YOU! Please tell us what you need to know, what you want to know.
The property details need to be filled in, so let us know which properties you would like described. We might as well start providing details for properties that the community wants. More on this later (see Questions)
Let me exaplain. In an effort to capture all the details that come in for Policy Agent properties starting with Policy Agent 3.0, I'm putting together the following wiki page:
Policy Agent 3.0 Property Page
I'm just getting this Policy Agent 3.0 properties wiki put together now. However, if you perform an Internet search (using Google or whatever) by a specific Policy Agent property name, the search results will probably include this wiki (and relatively high in the results, too) as such: "agent3properties - OpenSSO - wikis.sun.com." This wiki should soon become THE place to go for reference info on Policy Agent 3.0 properties.
Policy Agent developer, Sean Brydon, has been instrumental in getting this wiki going. The problem in the past has been that even when a property description seems clear, which they often are not, other details can come in later about how the property interacts with other agent properties, or how certain settings affect how the agent interacts with Federated Access Manager, or a myriad of other details.
Clearly, it would be best if the property descriptions could be living descriptions that can be updated by a variety of stakeholders, especially those right in there working with the properties. That is the type of structure I hope to provide with the agent property wiki.
By following the link to the Policy Agent 3.0 Property Page, you'll notice that the wiki lays out the Policy Agent 3.0 properties in the same manner they are presented in the Federated Access Manager Console. Below is a snapshot of the Console, specifically showing a view of a J2EE agent. The snapshot shows the first few J2EE agent properties in the Global tab. Those first few properties are all in the Profile category:

The table that follows shows how the Policy Agent wiki lists the properties in the following category (Notice that the Details links in the table are live):
J2EE agent > Global > Profile
Profile (Global J2EE agent properties)
| Property Label | Property Name | Online Help | More Details |
|---|---|---|---|
| Group | N/A | Help | Details |
| Password | N/A | Help | Details |
| Password (confirm) | N/A | Help | Details |
| Status | N/A | Help | Details |
| Agent Notification URL | com.sun.identity.client.notification.url | Help | Details |
| Location of Agent Configuration Repository | N/A | Help | Details |
| Configuration Reload Interval | com.sun.identity.agents.config.load.interval | Help | Details |
| Agent Configuration Change Notification | com.sun.identity.agents.config.change.notification.enable | Help | Details |
The table that follows shows how the Policy Agent wiki lists the properties in the following category (Notice that the Details links in the table are live):
Profile (Global web agent properties)
| Property Label | Property Name | Online Help | More Details |
|---|---|---|---|
| Group | N/A | Help | Details |
| Password | N/A | Help | Details |
| Password (confirm) | N/A | Help | Details |
| Status | N/A | Help | Details |
| Location of Agent Configuration Repository | N/A | Help | Details |
| Agent Configuration Change Notification | com.sun.identity.agents.config.change.notification.enable | Help | Details |
| Enable Notifcations | com.sun.identity.agents.config.notification.enable | Help | Details |
| Agent Notifcation URL | com.sun.identity.client.notification.url | Help | Details |
| Agent Deploymet URI Prefix | com.sun.identity.agents.config.agenturi.prefix | Help | Details |
| Configuration Reload Interval | com.sun.identity.agents.config.polling.interval | Help | Details |
| Configuration Cleanup Interval | com.sun.identity.agents.config.cleanup.interval | Help | Details |
I'd like to get comments from the OpenSSO community on the property descriptions. At this point, in the Policy Agent 3.0 wiki, not too many of the Details links are filled in. However, for both web agents and J2EE agents, I've filled in all the properties in the Profile category. In the properties wiki, you have to click the Details link and look at each property description one by one. That will probably suit folks who are looking up info on a specific property.
Since I'd like to get community feedback on the property descriptions, I've listed the properties for the Profile category in the table below, so you can see them all in one shot. I've copied the descriptions exactly as they are in the Details links and pasted them in the table. However, since the properties in the Profile category don't align perfectly between web agents and J2EE agents, I've moved the J2EE properties around slightly in the table, so they now align.
Here are some questions to consider when you look at the property descriptions and when you look at the Policy Agent properties wiki in general:
| Web
Agents |
J2EE Agent |
|
Property Label: |
Property
Label: Group Property Name: N/A Description: The "group" property is available starting with Sun Federated Access Manager Policy Agent 3.0. The property allows you to assign an individual J2EE agent to a previously configured J2EE agent group. The individual J2EE agent can then inherit selected properties from the group. |
| Property
Label: Password Property Name: N/A Description: The value for the "Password" property was set when the agent was created using the Federated Access Manager Console or the famadm utility. It was also the password that was in the agent profile password file when the agentadmin program was issued to install the agent. You can change the password at any time in the future. |
Property
Label: Password Property Name: N/A Description: The value for the "Password" property was set when the agent was created using the Federated Access Manager Console or the famadm utility. It was also the password that was in the agent profile password file when the agentadmin program was issued to install the agent. You can change the password at any time in the future. |
| Property
Label: Password (confirm) Property Name: N/A Description: The value for the "Password(confirm)" property must match the "Password" property. If you change the "Password" property you must also change the "Password(confirm)" property. |
Property
Label: Password (confirm) Property Name: N/A Description: The value for the "Password(confirm)" property must match the "Password" property. If you change the "Password" property you must also change the "Password(confirm)" property. |
| Property
Label: Status Property Name: N/A Description: This property is set to Active by default. When set to Active, the agent is able to authenticate to and communicate with Federated Access Manager. When set to Inactive, the agent is not able to authenticate to Federated Access Manager. |
Property
Label: Status Property Name: N/A Description: This property is set to Active by default. When set to Active, the agent is able to authenticate to and communicate with Federated Access Manager. When set to Inactive, the agent is not able to authenticate to Federated Access Manager. |
| Property
Label: Location of Agent Configuration Repository Property Name: N/A Description: The value for this property is originally set when the agent profile is created. If desired, change the configuration location to whichever of the two options is available: centralized or local. The centralized location allows you to control the configuration in a centralized manner, such as from the Console. The local option is provided for backward compatibility purposes. If the local configuration option is selected, the agent will use its local configuration in the FAMAgentConfiguration.properites file in the agent installation directory. In addition, the Console will only display the following properties: Password |
Property
Label: Location of Agent Configuration Repository Property Name: N/A Description: The value for this property is originally set when the agent profile is created. If desired, change the configuration location to whichever of the two options is available: centralized or local. The centralized location allows you to control the configuration in a centralized manner, such as from the Console. The local option is provided for backward compatibility
purposes. If
the local configuration option is selected, the agent will use its
local configuration in the FAMAgentConfiguration.properites file in the
agent installation directory.
In addition, the Console will only display the following properties: Password
|
| Property
Label: Agent Configuration Change Notification Property Name: com.sun.identity.agents.config.change.notification.enable Description: When this property is enabled, the agent receives notification messages from the Federated Access Manager server about configuration changes. |
Property
Label: Agent Configuration Change Notification Property Name: com.sun.identity.agents.config.change.notification.enable Description: When this property is enabled, the agent receives notification messages from the Federated Access Manager server about configuration changes. |
| Property
Label: Enable Notifcations Property Name: com.sun.identity.agents.config.notification.enable Description: When this property is enabled, notifications help maintain the following agent caches: SSO, policy, and configuration. |
N/A |
| Property
Label: Agent Notifcation URL Property Name: com.sun.identity.client.notification.url Description: The value for this property is the URL used by the agent to register notification listeners. |
Property
Label: Agent Notification URL Property Name: com.sun.identity.client.notification.url Description: The value for this property is the URL used by the agent to register notification listeners. |
| Property
Label: Agent Deploymet URI Prefix Property Name: com.sun.identity.agents.config.agenturi.prefix Description: The value for this property is the value of the Universal Resource Identifier (URI). The default value is /amagent. |
N/A |
| Property
Label: Configuration Reload Interval Property Name: com.sun.identity.agents.config.polling.interval Description: The value for this property is the interval in minutes to fetch the agent configuration from Federated Access Manager. |
Property
Label: Configuration Reload Interval Property Name: com.sun.identity.agents.config.load.interval Description: The value for this property is the interval in seconds between configuration reloads. Setting this property to 0 disables the hot-swap mechanism. |
| Property
Label: Configuration Cleanup Interval Property Name: com.sun.identity.agents.config.cleanup.interval Description: The value for this property is the interval in minutes to cleanup old agent configuration entries. |
N/A |
That sums things up. If you ever have any questions about a property, ask me here. I'll try to get the answer, and if applicable, I'll add the information to the Policy Agent 3.0 properties wiki.
Sunday Jun 29, 2008
The following tasks are described in this blog entry:
NOTE TO READER: If you see anything that isn't clear or is outright incorrect, don't hesitate to leave a comment. I'll try to straighten it out.I installed these two software pieces on a Solaris 10 SPARC machine. It doesn't matter much what operating system you install on as long as the system has a relatively new JDK version installed. I had JDK 1.5.
Also, in this blog, you can bring up a list of blog entries with instructions for this deployment. This deployment is all on one machine (on Solaris 10) and inlcudes OpenSSO server on Tomcat 6.x with the Application Server 9.0 agent on GlassFish server. This will probably include other configurations, too, such as deploying the sample application and more. Click the following link:
Blog entires related to the deployment: Tomcat for OpenSSO & GlassFish for GlassFish agent
Tomcat 6.x1. Do NOT use Tomcat 6.0.16 as it does not work with OpenSSO Build 4 2. Increase JVM option -Xmx to 1024M |
Friday Jun 27, 2008
This agent was developed through the OpenSSO project.