:All

I'm currently working on FIDO2 implementation and the FIDO2 device
registration process as follows.

   1. The relying party(IS) send a challenge and a request Id to the
   client(browser). This challenge and the request Id is cached at the server.
   2. Authenticator generates a new key-value pair and signs the challenge.
   3. Client again sends the created credentials along with the request Id
   received at step 01 to the relying party.
   4. Relying party extracts the challenge and the request Id from the
   received response and validates it against the cached value.


FIDO2 authentication follows a similar mechanism and uses cached values to
validate the response from the client. Since we cannot maintain HTTP
sessions to store these data in a multi-node setup we have to use some
mechanism to maintain those interim data being used in device registration
and authentication.

Currently, we have SessionDataStore that can be used to store session
related data while authentication is going on. Since in FIDO2, the cache is
used in device registration in addition to authentication we cannot use
Session Data Store.

Furthermore, there can be more instances in future where we need to store
interim data and AFAIK there is no general service(+table) to deal with
such scenarios. Asking a customer to create a table for each connector(for
the sole purpose of storing interim data) is not a practical solution.

Appreciate your feedback on the $subject.

Best Regards
Isuranga Perera
-- 
*Isuranga Perera* | Software Engineer | WSO2 Inc.
 +94 71 735 7034 | isura...@wso2.com <isu...@wso2.com>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to