Forgot your password?
typodupeerror
Programming IT Technology

Single Sign-On for Integrated Open-Source Apps? 28

Posted by Cliff
from the single-user-mode dept.
maiden_taiwan asks: "We're constructing a free groupware application by integrating well-known open source components: apache webserver, inn news server, ircd chat, scp for file transfer, etc. Unfortunately, each app has its own incompatible concept of a 'user identity.' Apache has the htpasswd module, IRC has nicknames, scp has public keys, NetNews has the poster's email address, and so forth. Has anyone managed to integrate a similar suite of apps using a single sign-on model, where a user has a single identity that is understood and carried through all these apps?"
This discussion has been archived. No new comments can be posted.

Single Sign-On for Integrated Open-Source Apps?

Comments Filter:
  • Try this combo: (Score:3, Interesting)

    by forsetti (158019) on Friday November 15, 2002 @01:16PM (#4678615)
    LDAP+Kerberos (via GSS-API)

    OpenLDAP supports GSS-API natively
    iPlanet / Sun One Directory supports GSS-API with a plugin.

    Do a couple searches on google. Lotsa good info on this arangement.
  • by iosphere (14517)
    I haven't done it before, but I'm sure you could come up with something centered around LDAP that would accomplish what you're describing. I'm pretty sure there's an apache module for ldap, and I'm betting you'd be able to toss in the public keys for scp and modify the ldap schema with an extra field for irc.

    Just a thought...
  • by edbarrett (150317) on Friday November 15, 2002 @01:23PM (#4678678)
    It might help if you were clear about what you were trying to do. Might the phpGroupWare [phpgroupware.org] project be something to base your project on?
    • I thought he was very clear.

      I don't see how phpGroupWare (which is a great project, by the way) solves the single sign on problem. It only adds another thing you have to sign on to.
  • by Anonymous Coward
    Recent post to developers@dotgnu.info from Peter Minten:

    a lot is unclear about the DotGNU Common Virtual Identity System (DCVIS or
    simply VIS). And with the current amount of active auth coders that's not likely
    to change soon. The VIS needs however to be integrated into the DotGNU System. I
    therefore propose the following:

    * We should create a specification of the VIS.
    * These specifications should be used to implement a minimal feature reference
    VIS server.

    The way I see things there are a number of things to be put into the VIS spec:
    * How the VIS server communicates with a webservice
    * How a Virtual Identity must be structured (note that this only applies to the
    VI send over the connection with the webservice, the VIS server's internal
    structure of a VI is unspecified).
    * What fields of a VI are mandatory (a field like name should be in all VI's)

    After the VIS spec is put up a very basic reference implementation can be
    created. The reference implementation can then be used as a testing aid for the
    Arch and Auth coders.
  • by PhaseBurn (44685) <PhaseBurn@PhaseBurn.net> on Friday November 15, 2002 @01:41PM (#4678834) Homepage
    We have a MySQL database that is used for e-mail, RADIUS, and FTP logins, and all those records are kept in MySQL... I'm not familiar with LDAP enough to suggest it, but it is there if you'd like to try... From what I've seen, and what we're doing, here's what I know is possible...

    Apache has a mod_auth_mysql which will auth based on a MySQL database already... (http://sourceforge.net/projects/modauthmysql/)

    That's trivial... They have a pam_mysql module as well that we use - it works... (http://sourceforge.net/projects/pam-mysql)...

    Next on your list is inn, which I have no experience with. You'd most likely need to hack some form of parsing by e-mail address or IP (or password on a secured server) to verify/force identity...

    ircd would be very easy to do... Shell account running a slightly modded "dircproxy" (http://www.dircproxy.net) would force identity based on a password, and would "proxy" the connection to the server transparantly.

    Scp, if you're not using keys, could just use regular pam, with pam_mysql. Anyway, hope this helps.

    LDAP may be a better solution, but I know for a fact this is possible (we're using these tools across apache, proftpd, scp, Courier-pop3/imap, and Exim for an MTA... we run a full ISP off these tools. Best of luck!
  • LDAP (Score:3, Interesting)

    by photon317 (208409) on Friday November 15, 2002 @01:46PM (#4678878)

    virtually everything you mentioned can be plugged up with LDAP one way or another.
  • Yes... (Score:1, Funny)

    by Anonymous Coward
    Someone has... They are called Microsoft and its called Passport authentication.... If you ask nice, you can probably get their specs. They are usually pretty good about sharing their code. ;-)
  • by stefanlasiewski (63134) <.slashdot. .at. .stefanco.com.> on Friday November 15, 2002 @01:58PM (#4678990) Homepage Journal
    My former organization (an NGO) attempted an single signon project for inn, rsync, & Apache 2 years ago. This was to be: a newsserver server, a webfrontend of the newsserver, web publishing, authoring tools, etc. We decide that LDAP was probably the best solution for a single signon.

    Unfortunately back then, the software wasn't up to snuff, we had limited development experience to improve the existing tools, and we went bankrupt, and handed the project off to some other NGOs.

    I've been recently laid off (Different company), and have been researching this project again. I'm amazed at the amount of progress that has been made since 2 years ago. It seems like LDAP is a good solution for single signon projects.

    Apache 2.0 has added native support [apache.org] for LDAP, ldap; and there are several low-profile INN+LDAP projects out there (No large formal projects). I hear it's a good solution for remote-transfer users, like your 'scp' project.

    Definately check out LDAP.
  • that's what it's for.
  • Kerberos+LDAP, as others have mentioned, is the best way to do it today, but if you'd like to hack on these projects to add single-signon capability, you might want to check out the Liberty Alliance [projectliberty.org]. This is an industry group founded to combat Microsoft's Passport power-play. Being backed by big business, it might be what actually becomes a viable market solution, even if LDAP+Kerberos is more elegant.

    Lots of people will sing songs about you if you contribute Liberty Alliance support to all those projects.
  • Don't forget about (Score:3, Interesting)

    by biohazard99 (114288) <jdholl1NO@SPAMhotmail.com> on Friday November 15, 2002 @02:34PM (#4679301) Homepage Journal
    Horde [horde.org]. The only hole they have for your project is for IRC, but I'm bet it could be integrated from Jabber [jabber.org] readily.
  • by velkro (11) on Friday November 15, 2002 @02:57PM (#4679460) Homepage
    Today's solution is to use LDAP.

    I have, right now, the following systems integrated using LDAP for authentication:

    Linux (anything that uses PAM - ssh, ftp, X)
    AIX 5.1
    Apache (mod_ldap)
    IBM HTTP Server (mod_ibm_ldap)
    Several internal apps (PHP, Perl, C/C++)
    MS Active Directory & Exchange
    Lotus SameTime, and Lotus QuickPlace
    Nortel Contivity VPN systems

    And probably one or two things I've forgotten. So it's probably simple enough to add in the bits (IRC mainly) for the rest.

  • by DrSkwid (118965) on Friday November 15, 2002 @03:15PM (#4679602) Homepage Journal
    The Fourth Edition of Plan 9 includes a substantially reworked security architecture, described in the USENIX Security 2002 conference paper [bell-labs.com] by Russ Cox, Eric Grosse, Rob Pike, Dave Presotto, and Sean Quinlan.

    One particular aspect that other operating systems may wish to adopt is our single-signon solution. A process called factotum is used to hold credentials like passwords and public/private keypairs and perform cryptographic operations. Factotum allows clients to speak a variety of cryptographic protocols and therefore legacy application servers can participate in our single-signon system without change and without even knowing it exists.

    The factotum has no direct permanent storage, but rather fetches credentials at startup from a secstore server on the network. To authenticate safely with the secstore, Password Authenticated Key-exchange is used; this implies that the user just has to remember and type one password and passive eavsdroppers or even active malicious intermediaries can not launch even a dictionary attack against the system. The credentials are encrypted for storage on secstore, so even an administrator there would have difficulty reading them.

    To see the code for all this, download the Plan 9 distribution and look in /sys/src/cmd/auth, particularly subdirectories factotum and secstore. The libraries /sys/src/libmp and /sys/src/libsec may also interest you.

    Queries to ehg@lucent.com.
    Copyright © 2002 Lucent Technologies. All rights reserved.

  • Unfortunately, each app has its own incompatible concept of a 'user identity.'
    Is this not the exact problem PAM was designed to fix? Most applications today can be made PAM-aware, then you can any method you want to store security information (names passwords, priviladges, etc.)
  • Kerberos.
    • and the WebISO group has a web front for Kerberos. The implementation our school uses is called Pubcookie. It's flexible and easy to tie in, because it acts as another HTTP authentication method.
  • by dago (25724)
    That's it. [kernel.org]

    Already integrated into solaris and linux.
    Lots of apps supports it.
    It also support many scheme of authentication, from simple passwd file to NT logon / SecureID / biometrics (ugh).

  • by Zach Garner (74342) on Friday November 15, 2002 @04:34PM (#4680314)
    Just a quick note:

    Single Sign On refers to a system that allows a user to log in once and then have access to a number of subsystems. For instance, I'm an intern at UAB's Academic Computing department. Currently, we have our Bug management system (bugzilla), a CMS (phpWebSite) and a Task management system that all can be used by only logging in once. All applications except the simplest will need modifications to use Pubcookie.

    The software we are using is called PubCookie and is developed by the University of Washington. Pubcookie is one of the tools being reviewed by the NSF's Middleware Initiative.

    Single Sign On is a very popular and difficult problem right now, especially inter-realm SSO.

    On the otherhand, if all you need is a unified username/password for your systems, you are in better luck. Many systems do support LDAP for authentication. Bugzilla has some beta LDAP support, PAM provides LDAP authentication for logging in, some CMS systems are starting to support it. Aside from that I am not sure what your options are.
  • You can use PKIX (X.509 certificates) with much of this infrastructure - Apache + mod_ssl, innd, ldap, postgresql and mysql, etc. The main hassle is that the different applications don't (yet) have the same view of how certs should work... and many don't yet require checking full certificate chains because the non-crypto core developers don't want to drive away users without a full PKIX intrastructure.

    Now if only ssh would use conventional certs....
  • Right now, at my company we are using OpenLDAP for these applications:

    Sendmail >>> e-mail routing
    maildap >>> E-mail group expansion
    Cyrus >>> IMAP mail/news servers
    SAMBA >>> Windows File sharing
    Netatalk >>> Apple File sharing
    FreeRADIUS >>> RAS and VPN authentication
    BackupPC >>> End-user workstation backups
    Apache >>> Intranet

Truth is free, but information costs.

Working...