migrate ResourceAuthenticator into here from separate package
[squeep-authentication-module] / README.md
index 6b4400ea56b2285729fd59e3c6fcf307d71a89d4..c4234f651480faa38a3891313b64593e588d0973 100644 (file)
--- a/README.md
+++ b/README.md
@@ -41,6 +41,21 @@ Class providing service handler functions for rendering and processing session l
 
 - `sessionNavLinks` call from app templates to populate navLinks for account settings and logout
 
+### ResourceAuthenticator
+
+Class which fetches and validates resource identifiers and their secrets from database.
+
+Resources are assumed to be other services making API calls.
+
+This is just a time-gated pre-shared-secret HMAC Bearer token scheme.
+
+Default token format is a ':'-separated concatenation of:
+
+- resource identifier, which is a UUID, encoded as 24 bytes in base64url
+- current epoch, encoded as base10 string
+- salt value, randomness encoded as 28 bytes in base64url
+- sha256 HMAC digest of previous data, encoded in base64url
+
 ### Other Notes
 
 For the moment, this imposes a web structure of /admin/* for authentication management paths.