janta.mdwn 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. **Janta** is a project whose goal is to allow web services and systems to share
  2. their user databases, instead of having their own separate lists. The benefits
  3. from this are:
  4. - People don't need to remember/keep many passwords for the various services
  5. they use
  6. - Services make themselves open for access by many people without effort, by
  7. trusting an existing user list
  8. - A web of trust allows the user list to grow without centralized control,
  9. building a strong community with power to the people
  10. "Janta" means "people" in Hindi, at least according to Wiktionary. See there
  11. for the precise spelling of the word.
  12. The very first step is currently planned to be an attempt to share a user
  13. database between two separate services. Currently I'd like to try sharing the
  14. user database of [[Freepost|http://freepo.st]] with this wiki, so that any user
  15. registered there can make web edits here. This plan may change, depending on
  16. ikiwiki's support for the access method which will be chosen.
  17. Right now it seems the user DB there is stored in a MySQL database. The schema
  18. is
  19. [[here|https://notabug.org/zPlus/freepost/src/master/freepo.st-web/php-include/src/AppBundle/Resources/config/doctrine/User.orm.yml]].
  20. I could research LDAP, or just have that database configured to give this wiki
  21. read access. It's also possible to give it global read access, but that could
  22. cause spam and denial of service. For an initial experiment, it's unnecessary.
  23. I couldn't find any info about using an SQL query to authenticate users. Maybe,
  24. if it's not too complicated, I can write a plugin for that. A modified version
  25. of the default `passworsauth` plugin, which uses an SQL query to verify user
  26. and password match if they can't be found in the local userdb.
  27. Ideas and next steps:
  28. - See if a MySQL plugin for ikiwiki can be written
  29. - Read about ways to share users: SQL, NoSQL, LDAP, WebDAV, OpenID, Persona
  30. - Exactly how does OpenID work? What's special about it?
  31. - Same, for Mozilla Persona
  32. - Think about "novel" ways, such as synchronizing the userdb between all the
  33. servers using it, in a distributed manner
  34. - Run an initial plan, e.g. an LDAP server with basic user info, and access
  35. management (e.g. maybe some service needs just user/pass and should access
  36. people's e-mail addresses, which another service does need e-mail)