CloudServices/At a glance: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (Just project name.)
Line 1: Line 1:
= PROJECT NAME HERE =
= TOKEN SERVER =
== What does it do?  (two lines) ==
== What does it do? ==
Project Overview
This solution uses a token-based authentication system. When a user wants to connect to one of our service , they get an  access token  by asking a central server.
==Requirements==
==System Requirements==
* <i>List of requirements</i>
*The system needs to support multiple services (not necessarily centrally)
*The system needs to be able to assign users to different machines as a service scales out, or somehow distribute them
*The system should consistently send a user back to the same server once they’ve been assigned
*The system needs to give operations some level of control over how users are allocated
*The system should provide some recourse if a particular node dies
*The system that can handle exhaustion attacks. For example, I could set up an primary
*The system should auto-approve any username, then loop through users until all nodes were full.
* The system needs to support future developments like bucketed assignment
*system that scales infinitely.
==Assumptions==
*A Login Server detains the secret for all the Service Nodes for a given Service.
*Any given webhead in a cluster can receive calls to all service nodes in the cluster.
*The Login Server will support only BrowserID at first, but could support any authentication protocol in the future, as long as it can be done with a single call
*All servers are time-synced
*The expires value for a token is a fixed value per application. For example it could be 30 minutes for Sync and 2 hours for bipostal.
*The Login Server keeps a white list of domains for BID verifications


==Get Involved==
<i>Instructions on how one can contribute to the project</i>
== Points of Contact ==
=== [[CloudServices/Glossary#Product_manager|PM]]: ===
Name: contact@info
IRC - #channel
Group Email - TBD
=== [[CloudServices/Glossary#Technical_writer|Docs]]: ===
Name: contact@info
IRC - #channel
Group Email - TBD
=== [[CloudServices/Glossary#Software_developer|Dev]]: ===
Name: contact@info
IRC - #channel
Group Email - TBD
=== [[CloudServices/Glossary#Quality_engineer|QA]]: ===
Name: contact@info
IRC - #channel
Group Email - TBD
=== [[CloudServices/Glossary#Operations_engineer|Ops]]: ===
Engineer - Name contact@info
=== [[CloudServices/Glossary#Support_engineer|Support]]: ===
Name: contact@info


== Resources ==
== Resources ==
* Server https://github.com/mozilla-services/tokenserver
=== Specs and Docs: ===
=== Specs and Docs: ===
 
*[https://docs.services.mozilla.com/token/apis.html Token Server API v1.0]
=== Code: ===
*[https://docs.services.mozilla.com/token/user-flow.html User Flow]
 
*[https://docs.services.mozilla.com/token/history.html History]
=== Public channel(s): ===
 
=== Internal/confidential channel(s): ===
 
=== Scheduled meetings ===
 
=== Events/meetups: ===

Revision as of 10:42, 15 December 2015

TOKEN SERVER

What does it do?

This solution uses a token-based authentication system. When a user wants to connect to one of our service , they get an access token by asking a central server.

System Requirements

  • The system needs to support multiple services (not necessarily centrally)
  • The system needs to be able to assign users to different machines as a service scales out, or somehow distribute them
  • The system should consistently send a user back to the same server once they’ve been assigned
  • The system needs to give operations some level of control over how users are allocated
  • The system should provide some recourse if a particular node dies
  • The system that can handle exhaustion attacks. For example, I could set up an primary
  • The system should auto-approve any username, then loop through users until all nodes were full.
  • The system needs to support future developments like bucketed assignment
  • system that scales infinitely.

Assumptions

  • A Login Server detains the secret for all the Service Nodes for a given Service.
  • Any given webhead in a cluster can receive calls to all service nodes in the cluster.
  • The Login Server will support only BrowserID at first, but could support any authentication protocol in the future, as long as it can be done with a single call
  • All servers are time-synced
  • The expires value for a token is a fixed value per application. For example it could be 30 minutes for Sync and 2 hours for bipostal.
  • The Login Server keeps a white list of domains for BID verifications


Resources

Specs and Docs: