It looks like your urban areas is a Boolean raster. If so, I would vectorize the raster as the simplest means of getting the urban area 'buffer' to match the 'jaggy sprawl'. You can then do a spatial join of the urban points data on your new polygons to provide the polygons with attributes.
If the raster is not Boolean and is in fact a grey scale, then you have a number of options. You could just 'Booleanize' it but you may want to take the opportunity to handle how parts of the urban sprawl merge into each other. To do this, you could perhaps set a threshold (your experience with the data is the best guide - I can't suggest a value fro the picture) above which, you treat the areas as urban and below which you ignore it. This would have your polygons match more closely to the points. Alternatively, you could categorize the raster by grey-scale value and you may be able to investigate the possibility of differentiating peri-urban/village vs urban vs down-town districts based on the grey-scale value. If the grey-scale is based on night-time illumination, this might not be shuch a bad option.