code: def _populate_input_for_name_id(self, config, record, context, data):
          
          user_id = ""
          user_id_from_attrs = config['user_id_from_attrs']
          for attr in user_id_from_attrs:
              if attr in record["attributes"]:
                  value = record["attributes"][attr]
                  if isinstance(value, list):
                      # Use a default sort to ensure some predictability since the
                      # LDAP directory server may return multi-valued attributes
                      # in any order.
                      value.sort()
                      user_id += "".join(value)
                      satosa_logging(
                          logger,
                          logging.DEBUG,
                          "Added attribute {} with values {} to input for NameID".format(attr, value),
                          context.state
                          )
                  else:
                      user_id += value
                      satosa_logging(
                          logger,
                          logging.DEBUG,
                          "Added attribute {} with value {} to input for NameID".format(attr, value),
                          context.state
                          )
          if not user_id:
              satosa_logging(
                  logger,
                  logging.WARNING,
                  "Input for NameID is empty so not overriding default",
                  context.state
                  )
          else:
              data.subject_id = user_id
              satosa_logging(
                  logger,
                  logging.DEBUG,
                  "Input for NameID is {}".format(data.subject_id),
                  context.state
                  )
docs: Use a record found in LDAP to populate input for
          NameID generation.