Tenemos el siguiente requisito para crear un token en .NET que se usará para proporcionar un token de desafío y un token de autenticación (auth) real. El token de autenticación se utilizará para autenticar la transacción anterior junto con la autenticación basada en certificados. Eche un vistazo y compruebe si la solución que se muestra a continuación parece correcta en función de estos requisitos.
Requisito
- Longitud mínima de 128 bits
- generado aleatoriamente
- Impredecible / no se puede adivinar (es decir, asegúrese de que la selección del generador de números aleatorios sea buena),
- Único durante su período de validez,
- No debe contener ninguna información significativa (solo datos aleatorios).
Solución
-
Genere el token utilizando rngcryptoserviceprovider y almacénelo como un binario de 16 bytes. También vi una publicación relacionada ( autenticación basada en token - Asegurar el token ) para copiar el token en la base de datos, pero me han dicho que esto no es necesario por ahora, así que estaba pensando en cuál debería ser el tamaño de la columna de mi base de datos. binario (16) es un poco corto.
-
(# 2, # 3, # 5). Usando rngcryptoserviceprovider para generar una cadena aleatoria enlace )
-
(# 4) la columna de la tabla no tiene una restricción única, pero se actualizará según el tiempo de creación en caso de que, en el improbable caso de que ocurra un duplicado.