You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-user@portals.apache.org by Jignesh Badani <jb...@mmsa.com> on 2004/03/16 03:07:37 UTC

SSO with JetSpeed using 3rd party product...

Hi, am just a week into Jetspeed. We have a SSO (Single Sign On) 
infrastructure using SiteMinder (Netegrity) and would like to integrate 
Jetspeed into the same.Currently running JetSpeed 1.4
 
I looked at JetSpeedResources.properties and came across this line:
 
#   topnav.user_login.enable - Display login prompts on navigation bar.  
If false then login nust be via login portlet    
 
I searched the source and the Jar but did not find any Login Portlet. 
However I found 2 files of interest:
 
org.apache.jetspeed.services.JetspeedAuthentication and org.apache.jetspeed.modules.actions.JLoginUser
 
 
JLoginUser doPerform() method, which I believe gets invoked on the user clicking the 
Login button,  references the login() method of class JetSpeedSecurity which then invokes
login() method of class JetspeedAuthentication.
 
Now I could put in my code in the login method of JetSpeedAuthentication to achieve SSO here but:
 
1. Modifying the JetspeedAuthentication class, is it recommended ? 
 
2. If yes, how do I invoke this class/code when some user (already 
authenticated by 3rd party) clicks on the Portal link http://xyz.com/JetSpeed/Portal
 
3. Or is there a better way to achieve SSO ? Is there a Login Portlet or 
due in the next release ?
 
I have a follow-up questions on automatic registration and 
role-assignments of first time users, but I guess, I will wait for some 
help on this one first.
 
Thanks and appreciate all the hard work put in by open-source developers. 
-Jignesh


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-user-help@jakarta.apache.org


Re: SSO with JetSpeed using 3rd party product...

Posted by Yohanes Santoso <ys...@jenny-gnome.dyndns.org>.
Jignesh Badani <jb...@mmsa.com> writes:

> Hi, am just a week into Jetspeed. We have a SSO (Single Sign On) 
> infrastructure using SiteMinder (Netegrity) and would like to integrate 
> Jetspeed into the same.Currently running JetSpeed 1.4

The problem looks simple, but it is not.

1. User information. Don't you want to re-use user information from
   SiteMinder? Then you have to somehow serve and/or fill-up instances
   of JetspeedUser to Jetspeed. Depending on your need, this may
   require you to extend JetspeedUser, and also override default
   authentication code.

2. User's role & group information. The role and group information is
   exclusive to Jetspeed. Somehow you must make an association that
   user A has role B,C,D and is in group E.


3. Depending on how you override the default security service, you may
   need to implement Permission Management: assigning previleges to
   each role.

Sounds complex? It is not. 

Simply go to
http://jakarta.apache.org/jetspeed/site/security.html

and implements the needed interfaces (from your description, at least
the following interfaces must be implemented: PortalAuthentication,
and UserManagement).

And if you need to extend JetspeedUser, that page also tells you a
common way to do it.


> Now I could put in my code in the login method of JetSpeedAuthentication to achieve SSO here but:
>  
> 1. Modifying the JetspeedAuthentication class, is it recommended ? 

Don't. JetspeedAuthentication will call your implementation of
PortalAuthentication interface.

> 2. If yes, how do I invoke this class/code when some user (already 
> authenticated by 3rd party) clicks on the Portal link http://xyz.com/JetSpeed/Portal

Parameterise your call. The default login code expect the parameters
"username" and "password", e.g.:
http://xyz.com/jetspeed/portal/portal?action=JLoginUser&username=xxx&password=xxx
(for your case, password is an optional parameter).

> 3. Or is there a better way to achieve SSO ? Is there a Login Portlet or 
> due in the next release ?

I think what they mean by 'Login portlet' is simply a {Velocity,JSP,HTML}portlet that is
basically contain something like:

  <DIV ALIGN="left">
   <form method="POST" 
    action="$link"
    enctype="application/x-www-form-urlencoded">
    <INPUT NAME="$jlink.ActionKey" TYPE="hidden" VALUE="$config.getString("action.login")" />

     <TABLE>
      <TR>
       <TD>User ID:</TD>
              <td>
                <input value="" name="username" maxlength="25" type="text" tabindex="1" style="font-size:10">
              </td>
      </TR>
       <TR>
        <TD>Password:</TD>
              <td>
                <input value="" name="password" maxlength="25" type="password" tabindex="2" style="font-size:10">
              </td>
       </TR>
     </TABLE>
     </FORM>
  </DIV>

The above snipped is using Velocity (thus must be in VelocityPortlet).


Hope this helps you,
YS.

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-user-help@jakarta.apache.org