code: func (c *IdentityConfig) loadIdentityConfigEntities() error {
  	configEntity := identityConfigEntity{}
  
  	err := c.backend.UnmarshalKey("client", &configEntity.Client)
  	logger.Debugf("Client is: %+v", configEntity.Client)
  	if err != nil {
  		return errors.WithMessage(err, "failed to parse 'client' config item to identityConfigEntity.Client type")
  	}
  
  	err = c.backend.UnmarshalKey("organizations", &configEntity.Organizations)
  	logger.Debugf("organizations are: %+v", configEntity.Organizations)
  	if err != nil {
  		return errors.WithMessage(err, "failed to parse 'organizations' config item to identityConfigEntity.Organizations type")
  	}
  
  	err = c.backend.UnmarshalKey("certificateAuthorities", &configEntity.CertificateAuthorities)
  	logger.Debugf("certificateAuthorities are: %+v", configEntity.CertificateAuthorities)
  	if err != nil {
  		return errors.WithMessage(err, "failed to parse 'certificateAuthorities' config item to identityConfigEntity.CertificateAuthorities type")
  	}
  
  	//compile CA matchers
  	err = c.compileMatchers()
  	if err != nil {
  		return errors.WithMessage(err, "failed to compile certificate authority matchers")
  	}
  
  	err = c.loadClientTLSConfig(&configEntity)
  	if err != nil {
  		return errors.WithMessage(err, "failed to load client TLSConfig ")
  	}
  
  	err = c.loadCATLSConfig(&configEntity)
  	if err != nil {
  		return errors.WithMessage(err, "failed to load CA TLSConfig ")
  	}
  
  	err = c.loadAllCAConfigs(&configEntity)
  	if err != nil {
  		return errors.WithMessage(err, "failed to load all CA configs ")
  	}
  
  	c.caKeyStorePath = pathvar.Subst(c.backend.GetString("client.credentialStore.cryptoStore.path"))
  	c.credentialStorePath = pathvar.Subst(c.backend.GetString("client.credentialStore.path"))
  
  	return nil
  }
docs: //loadIdentityConfigEntities loads config entities and dictionaries for searches