Let's take the following (very common) scenario:
* A user logs into the system;
* They request an operation that might require additional confirmation from
the user, at the system's discretion. The most common example would be
payment / money transfer, but could also be generating a statement or
showing card details or any other sensitive operation;
* The user is then directed to the AS where they are displayed operation
details, optionally pass additional authentication and confirm the
operation;
* The AS issues a one-time credential (let's call it "confirmation token")
that can be used to perform that particular operation only;
* Finally, the user performs the operation.

Is this case completely covered by the current standards? I believe it is
not, and here are my points:
1. "Confirmation token" looks very different from access token with regards
to its contents, purpose, scope, lifetime and lifecycle. I think it should
complement the access token rather than replace it, even temporarily. This
is why I believe this case is not covered by Step Up, where the access
token is replaced;
  1a. Step Up assumes upgrading the session's ACR; in the "confirmation"
scenario, ACR could remain unchanged;
2. No standard way for the RS to signal to the client that the requested
operation requires confirmation. That could optionally include
server-supplied nonce (similar to DPoP) to help enforce "confirmation
token"'s shorter lifetime and one-time use, but it is not clear how to
communicate that to the client;
3. No standard way for the client to request one-time "confirmation token"
from the AS;
4. No standard way for the AS to indicate that the returned token is
actually "confirmation token" and not a Bearer token;
5. No standard way for the RS to tell that the incoming token is actually a
"confirmation token" and requires special handling (one-time use, checking
against operation parameters etc.)
6. On a plus side, RAR can be used to communicate operation details to the
AS while initiating "confirmation".

3-5 could be probably done with a combination of scopes + RAR. What
concerns me most is the lack of complementary token semantics (1) and
inability for the RS to signal the confirmation requirement to the client
(2), which could include operation details and nonce.

Please correct me if I'm missing something and we have enough coverage by
the standards. But if we don't, would the WG welcome such a document?

Dmitry Telegin
Backbase / Keycloak
_______________________________________________
OAuth mailing list -- oauth@ietf.org
To unsubscribe send an email to oauth-le...@ietf.org

Reply via email to