Durante el desarrollo, agregamos a los registros de errores los detalles de las solicitudes http, incluidos los encabezados, para comprender mejor la investigación de errores. Nuestro arquitecto señaló que no debemos colocar información confidencial en los registros. Mi pregunta fue si deberíamos considerar el token de portador como información altamente sensible teniendo en cuenta que el token de acceso es un objeto de corta duración.
Las recomendaciones de El marco de autorización de OAuth 2.0: uso del token de portador :
Si se pasan tokens de portador en las URL de la página, los atacantes podrían ser capaces de robarlos de los datos históricos, registros u otras ubicaciones no seguras.
Supongo que tampoco se recomienda registrar los tokens en los registros de errores.
Sin embargo, Asp.Net Core genera mensajes de información, que incluyen el token de soporte (ambos codificados y en JSON)
2017-09-15 08: 32: 42.571 +00: 00 [Información] Error al validar el simbólico "eyJ0eXAiOiJKV1QiLCJhb (he truncado el token pero el token completo se puede decodificar en JWT.io) ". Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10501: Falló la validación de la firma. No se puede hacer coincidir 'niño': 'HHByKU-0DqAxxx', token: '{"alg": "RS256", "typ": "JWT", "x5t": "HHByKU-0DqAxxx", "kid": "HHByKU-0DqAxxx"}. {"aud": "
enlace ", "iss": " enlace ", "iat": 1505464062, "nbf": 1505464062, "exp": 1505467962, "acr": "1", "aio": "ASQAxxx", "amr": ["pwd", "appid": "cc9aa533 -xxx "," appidacr ":" 1 "," e_exp ": 262800," family_name ":" Freidgeim "," given_name ":" Michael "," groups ": [xxx]", "2d62738a-xxx"], "in_corp": "true", "ipaddr": "121.1.1.1", "name": "Michael Freidgeim "," oid ":" 138f5eca-xxx "," onprem_sid ":" S-1-5-21-xxx "," roles ": [" UATAdmin "]," scp ":" user_impersonation "," sub " : "vTFBQRxxx", "tid": "5de0e68c-xxx", "unique_name": "Michael.Freidgeim@xxx", "upn": "Michael.Freidgeim@xxx", "ver": "1.0"} '. a System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature (String token, TokenValidationParameters validationParameters) en System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateToken (String token, TokenValidationParameters validationParameters, SecurityToken & validadoToken) en Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler. < HandleAuthenticateAsync > d__1.MoveNext ()
¿Significa que el riesgo no es tan grande porque Microsoft considera aceptable incluirlo en los registros?
¿O deberíamos excluir Microsoft / System Information LogLevel de los registros? Será bastante restrictivo, ya que estamos utilizando los registros de información para la investigación, así como para algunos monitores / estadísticas (como el número de inicios de sesión).
¿Cuál es el enfoque recomendado con respecto al almacenamiento de tokens en registros si queremos satisfacer los requisitos de seguridad e investigación?