taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 1b404c2d1f5ec16dbca30e245d51a91e136ddcc6
parent 522eb3d1a7f02adfa610b5916f42c223deb4811e
Author: Antoine A <>
Date:   Fri, 15 Dec 2023 19:37:57 +0000

[dd 52] add Q / A

Diffstat:
Mdesign-documents/052-libeufin-bank-2fa.rst | 20+++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/design-documents/052-libeufin-bank-2fa.rst b/design-documents/052-libeufin-bank-2fa.rst @@ -17,7 +17,7 @@ Requirements ============ * Support future TAN channels (YubiKey, trusted devices, etc) without API-breaking changes -* Support mulitple TAN channels per user +* Support multiple TAN channels per user Proposed Solutions ================== @@ -30,8 +30,6 @@ We have two kinds of operations we would like to protect: * state-machine operations that already have a ``pending`` and ``confirmed`` status and require multiple endpoint calls to complete (cashout and withdrawal). * one-shot operations that are currently completed using a single endpoint call (transaction, account reconfiguration and account deletion). -We could choose different designs for each kind of operation, as they have different implementation challenges. - Fine-grained or coarse-grained authentification ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -121,3 +119,18 @@ The bad - Having a short-term token in addition to a long-term refreshable token can be confusing for clients. - We still keep the pending state of one-shot operations at the client level. - Coarse-grained authorization, one token for any operation for a short amount of time. + +Q / A +===== + +* Q: Where do we want to handle TAN challenges logic and error handling, in each operation API or a TAN-specific API? + + * In each operation means fewer API calls and TAN-specific means more API calls but better/cleaner logic separation. + +* Q: Where do we want to store pending states for oneshot transactions in the client or the backend database? + + * In the client makes things simpler for the backend but is incompatible with coarse-grained authorization. + +* Q: Do we need coarse-grained authorization or fine-grained is enough? + + * Coarse-grained authorization requires that we store pending states for operations even for the ones that are currently oneshot. We could use a different strategy for each kind. +\ No newline at end of file