Plans for cordion authentication server

As discussed with Witold on 10/11/2017, here’s the current plan for Cordion authentication server for remote processing using MountainLab:

  • I am the admin of river (processing server).
  • I register with the cordion web site, asking for approval. my application is accepted. hurray!
  • I am given a private key associated with river. Only cordion and I know it.
  • Cordion adds ‘river’/’river-public-key’ to its public table of registered servers
  • Now I configure my server pasting ‘river’/’river-private-key’ into a configuration file and launch kulelepoller which tries to connect to kulele
  • Kulele gets the connection request which is signed using ‘river-private-key’, and then it verifies that it was properly signed by comparing with cordion’s public table. Kulele accepts the connection.
  • The browser (client) requests from cordion authorization for some@user on river (proving that some@user has authenticated with a service like google).
  • Cordion returns the authorization token signed using ‘river-private-key’
  • That token is sent along with all job requests to kulele
  • Kulele verifies the signature is valid for river (again by consulting cordion’s public table)
  • Kulele checks the request is consistent with the authorization and forwards the request to river
  • River trusts kulele and executes the processing job