This could be generalized as hook on signins and signups, but for our initial use case, we could generalize this by associating information like which ToS version a user has agreed on.
The ToS document itself is provided through an URL.
ToS agreement needs to be facilitated by IAM.