EDR Server: "UserInputValidationError: 400 Bad Request: Invalid formatted data in 'first_name' field" When UTF-8 Characters in SSO Usernames
search cancel

EDR Server: "UserInputValidationError: 400 Bad Request: Invalid formatted data in 'first_name' field" When UTF-8 Characters in SSO Usernames

book

Article ID: 287365

calendar_today

Updated On:

Products

Carbon Black EDR (formerly Cb Response)

Issue/Introduction

  • Error is seen in /var/log/cb/coreservices/debug.log :
2022-06-07 10:28:19 [44649] <err> cb.api.user_management_api - The value '<username>' does not meet input validation rules for field 'first_name'.
2022-06-07 10:28:19 [44649] <err> cb.flask.blueprints.api_routes_saml - SSO assertion auth failure
Traceback (most recent call last):
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/flask/blueprints/api_routes_saml.py", line 562, in saml_assertion
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/flask/blueprints/api_routes_saml.py", line 342, in parse_response
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/api/user_management_api.py", line 107, in update_user
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/api/user_management_api.py", line 56, in validate_user_data
cb.utils.exceptions.UserInputValidationError: 400 Bad Request: Invalid formatted data in 'first_name' field
2022-06-07 10:28:19 [44649] <err> cb.flask.blueprints.api_routes_saml - SSO assertion auth failure
Traceback (most recent call last):
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/flask/blueprints/api_routes_saml.py", line 562, in saml_assertion
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/flask/blueprints/api_routes_saml.py", line 342, in parse_response
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/api/user_management_api.py", line 107, in update_user
File "/usr/share/cb/virtualenv/lib/python3.9/site-packages/cb/api/user_management_api.py", line 56, in validate_user_data
cb.utils.exceptions.UserInputValidationError: 400 Bad Request: Invalid formatted data in 'first_name' field

 

Environment

  • EDR Server: All Supported Versions

Cause

  • EDR does not understand UTF-8 characters as they pertain to SSO.

Resolution

  • Add in the following code block to the top of the /etc/sso/attr_map.py script to convert the utf-8 characters to ASCII:
import unicodedata

def normalize_characters(c):
    try:
        cname = unicodedata.name(c)
        cname = cname[:cname.index(' WITH')]
        return unicodedata.lookup(cname)
    except:
        return c

def normalize_user_info(user_info):
    return ''.join(normalize_characters(c) for c in user_info)