Are there any FOSS Python Single-Sign-on Servers? : Python
This is a discussion on Are there any FOSS Python Single-Sign-on Servers? within the Python forums in Programming Languages category; Are there any FOSS Python Single-Sign-on Servers? We're looking to centralise the sign-on for our numerous "internal" webapps (across multiple servers, languages, and domains) to speed user management and application development. I've searched around but can only seem to find OpenID servers, which will probably be too "open" for our needs. Coding one up would possibly take more time than we have, and we'd prefer something maintained externally to cut dev costs....
![]() |
| | LinkBack | Thread Tools |
|
#1
| |||
| |||
| We're looking to centralise the sign-on for our numerous "internal" webapps (across multiple servers, languages, and domains) to speed user management and application development. I've searched around but can only seem to find OpenID servers, which will probably be too "open" for our needs. Coding one up would possibly take more time than we have, and we'd prefer something maintained externally to cut dev costs. |
|
#2
| |||
| |||
| Phillip B Oldham schrieb: > Are there any FOSS Python Single-Sign-on Servers? [snip] > I've searched around but can only seem to find OpenID servers, which > will probably be too "open" for our needs. So if it is not OpenID, which protocol are you going to implement? cheers Paul |
|
#3
| |||
| |||
| On Nov 11, 9:24 pm, paul <p...@subsignal.org> wrote: > Phillip B Oldham schrieb:> Are there any FOSS Python Single-Sign-on Servers? > > [snip] > > > I've searched around but can only seem to find OpenID servers, which > > will probably be too "open" for our needs. > > So if it is not OpenID, which protocol are you going to implement? In theory, we could use an OpenID server: our staff could register with something like MyOpenID, register with each of our individual webapps, and then gain access with a single sign-on. However, its not really getting round the problem we have: we need to give our staff access to all of our apps in one go, give them one place to sign on, and have the ability to disable their account at short notice. Doing this with openid would mean we have *no* access to the user account and therefore would still have the overhead of having to disable accounts with each webapp we provide. It also opens-up a security threat in that anyone could register to our "internal" apps with an OpenID account. Which is bad. Essentially, we need a SSO server with which we would register our *webapps* and then create user account, specifying which webapps that user has access to, and at what level. Essentially something like OpenSSO but python-based. |
|
#4
| |||
| |||
| Phillip B Oldham <phillip.oldham@gmail.com> writes: > I've searched around but can only seem to find OpenID servers, which > will probably be too "open" for our needs. Huh? I'm sure you use HTTP for transferring requests and responses, too, and that protocol is at least as as open. What does the openness of the protocol have to do with who can access it? Please, if you're going to be coding new systems, use established, standard, open protocols with actively maintained implementations. For single sign-on. OpenID is the one to choose. -- \ āI stayed up all night playing poker with tarot cards. I got a | `\ full house and four people died.ā āSteven Wright | _o__) | Ben Finney |
|
#5
| |||
| |||
| On Nov 11, 11:00 pm, Ben Finney <bignose+hates-s...@benfinney.id.au> wrote: > Phillip B Oldham <phillip.old...@gmail.com> writes: > > > I've searched around but can only seem to find OpenID servers, which > > will probably be too "open" for our needs. > > Please, if you're going to be coding new systems, use established, > standard, open protocols with actively maintained implementations. For > single sign-on. OpenID is the one to choose. I think maybe there's some misunderstanding. The protocol isn't the issue; I'm happy to use whatever (HTTP, LDAP, SOAP, XMPP, etc). The issue is that OpenID, by its name, is open. We don't want to allow anyone with an openid account to register with our webapps, we simply want to centralise registration and sign-on for our employees. |
|
#6
| |||
| |||
| Phillip B Oldham <phillip.oldham@gmail.com> writes: > I think maybe there's some misunderstanding. The protocol isn't the > issue; I'm happy to use whatever (HTTP, LDAP, SOAP, XMPP, etc). The > issue is that OpenID, by its name, is open. We don't want to allow > anyone with an openid account to register with our webapps Then don't do that. The OpenID protocol says nothing whatsoever about *which* OpenIDs your service will accept. > we simply want to centralise registration and sign-on for our > employees. Then you should reject any attempt to authenticate with an OpenID that you don't accept. This could be done by, as one possible example, only accepting OpenIDs of the form āhttp://example.com/openid/usernameā (or whatever URL path you deem useful), and ensuring that you control the OpenID provider that serves those OpenIDs. -- \ āHe who allows oppression, shares the crime.ā āErasmus Darwin, | `\ grandfather of Charles Darwin | _o__) | Ben Finney |
|
#7
| |||
| |||
| On Nov 11, 11:48 pm, Ben Finney <bignose+hates-s...@benfinney.id.au> wrote: > Phillip B Oldham <phillip.old...@gmail.com> writes: > > > I think maybe there's some misunderstanding. The protocol isn't the > > issue; I'm happy to use whatever (HTTP, LDAP, SOAP, XMPP, etc). The > > issue is that OpenID, by its name, is open. We don't want to allow > > anyone with an openid account to register with our webapps > > Then don't do that. The OpenID protocol says nothing whatsoever about > *which* OpenIDs your service will accept. > > > we simply want to centralise registration and sign-on for our > > employees. > > Then you should reject any attempt to authenticate with an OpenID that > you don't accept. Even with using OpenID in this way, it still doesn't resolve the issue we have: quick user registration & sign-on. The user will need to register an OpenID account then register with each service/webapp we provide. What we're looking for is the reverse: registering our webapps/services with a SSO service then (upon starting with the company) registering our new staff members with this service and specifying which webapps they have access to and what privileges they have with those apps. Please understand I have nothing against OpenID; I use it all the time and think its a great solution. I just don't think its a great solution for our particular problem. Keep in mind that OpenID is user- centric. While I don't mind registering my openid account with the various sites I use, our staff members will have a nightmare spending their first day initially trying to understand OpenID, then registering with each of our services, then waiting while the support team review their registrations and give them relevant permissions. Since the support team will have to do this, along-side setting up email accounts, it makes sense for them to have one interface to grant access & permissions to the various webapps and for our staff to have one place to sign-on. Since each staff-member already has a unique email address it again makes sense to use this rather than an openid- url which could be confusing. |
|
#8
| |||
| |||
| Phillip B Oldham <phillip.oldham@gmail.com> writes: > Even with using OpenID in this way, it still doesn't resolve the > issue we have: quick user registration & sign-on. The user will need > to register an OpenID account then register with each service/webapp > we provide. Why? You presumably have *existing* accounts for all these people; or at least, some other database of people for whom you want authentication credentials. why not cause the OpenID provider (the one that you manage under your control, that is) to provide OpenIDs for these existing accounts, and only those? OpenID is a means of *authentication*, it doesn't mandate any particular system of registration or account creation. You presumably already have solutions for those; use them, but de-couple the authentication process from those systems by using OpenID. > What we're looking for is the reverse: registering our > webapps/services with a SSO service If you write the web application to accept OpenIDs only if they match a specific pattern, you achieve the same effect; and you then have the option to later choose to allow some other OpenIDs without needing to change the authentication protocol. > then (upon starting with the company) registering our new staff > members with this service and specifying which webapps they have > access to and what privileges they have with those apps. That's quite a different thing from āsingle sign-onā. I recommend you use OpenID for the purpose of authentication (proving that the person's claim of identity is authentic), and implement whatever system of *authorisation* (determining what the authenticated person is authorised to do) is appropriate for each application. You can use the associated OAuth standard protocol to transfer information from a central provider about what authorisation information is recorded for a person; I'm given to understand this integrates well with OpenID. > Please understand I have nothing against OpenID; I use it all the > time and think its a great solution. I just don't think its a great > solution for our particular problem. OpenID is a solution for transporting authentication data, and managing the data in a central location under your control. It does well at that, because the protocol is mature (solving the transport problem) and there are many supported free-software implementations for providers and relying parties (allowing you to solve your specific centralisation needs). You later revealed that you *also* want a solution for transporting authorisation data, and managing it in a central manner. This is a separate issue, but OAuth is a similar solution: it is a standard transport protocol, with many free-software implementations for both ends of the conversation. > Keep in mind that OpenID is user- centric. If you mean āthe user has to do the set-up workā, that's entirely wrong. There exist *services* which *allow* people to set up a new OpenID, but that's entirely optional. Millions of users on, e.g. Flickr, AOL, and Yahoo, have now got OpenIDs provided without having to do anything additional at all. Your IT support team should be the ones setting up people's account information, and the systems should be automatically providing OpenIDs and OAuth profiles for any or all accounts as specified. The user only needs to be told how to log in, once all this is set up; and that's necessary no matter what authentication system you use. > While I don't mind registering my openid account with the various > sites I use, our staff members will have a nightmare spending their > first day initially trying to understand OpenID, then registering > with each of our services, then waiting while the support team > review their registrations and give them relevant permissions. Right, so you should be providing these OpenIDs and OAuth profiles as part of whatever other data collection and account set-up needs to be done. -- \ āIf you make people think they're thinking, they'll love you; | `\ but if you really make them think, they'll hate you.ā āDonald | _o__) Robert Perry Marquis | Ben Finney |
|
#9
| |||
| |||
| Phillip B Oldham wrote: > On Nov 11, 9:24 pm, paul <p...@subsignal.org> wrote: >> Phillip B Oldham schrieb:> Are there any FOSS Python Single-Sign-on Servers? >> >> [snip] >> >>> I've searched around but can only seem to find OpenID servers, which >>> will probably be too "open" for our needs. >> So if it is not OpenID, which protocol are you going to implement? > > In theory, we could use an OpenID server: our staff could register > with something like MyOpenID, register with each of our individual > webapps, and then gain access with a single sign-on. However, its not > really getting round the problem we have: we need to give our staff > access to all of our apps in one go, give them one place to sign on, > and have the ability to disable their account at short notice. Doing > this with openid would mean we have *no* access to the user account > and therefore would still have the overhead of having to disable > accounts with each webapp we provide. It also opens-up a security > threat in that anyone could register to our "internal" apps with an > OpenID account. Which is bad. > > Essentially, we need a SSO server with which we would register our > *webapps* and then create user account, specifying which webapps that > user has access to, and at what level. Essentially something like > OpenSSO but python-based. Why not just implement a private OpenID server and only accept identities from that domain? regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ |


