Based on a discussion from RelationalDatabaseTableRowsHaveNoIntrinsicObjectIdentity:
In reality if actual identity is very important, one often looks at multiple attributes to assertain identity and there is no 100% that it will be right. It is an art, not a science. Example: looking at scratch marks on vintage museum artifacts (and good forgers may be able to duplicate scratches to the resolution of the reference photographs). X-raying paintings to verify their authenticity. You are pretending the world is well-known.
I used to work at a place where automobile identification was a big issue. Because VIN and license numbers can be switched or mistyped, there were often problems identifying cars. The accuracy was a function of time and effort. In the real world, there is no true identity, only probabilistic statements. Physics has not defined matter in a 100% accurate way yet. HeisenbergUncertaintyPrinciple may imply we can never observe something with 100% certainty that it is not being altered or swapped without our knowledge. Because your cells change every second, you are not the same person you were yesterday. In computers we use discrete ID's because it simplifies our model, not because it better reflects reality. RealityHasNoCertainIdentity and AllAbstractionsLie. Governments and computers issue ID's as a UsefulLie.
Counterpoint -- Reality Does, Too, Have Certain Identity
There are plenty of certain, deductive identities within the real world. Using them just requires a different approach to viewing the world than is typical among humans. E.g. if I talk about "the bookshelf on the west wall of my bedroom", and if I'm constrained to at most one bedroom and at most one bookshelf per wall at any given moment, then that's a certain, unambiguous identity that will work for all time. However, if I move the bookshelf currently associated with that expression to the east wall, then "the bookshelf on the west wall of my bedroom" no longer exists. To reiterate: "The bookshelf on the west wall of my bedroom" cannot be moved to the east wall because attempting to do so makes "the bookshelf on the west wall of my bedroom" cease to exist.
In OOPL languages we also use addresses, or addresses + types, just like my bookshelf. Instead of "the bookshelf on the west wall", you have "the C++ 'bookshelf' object located at 0x00f36f40." Once again, this object cannot be moved so long as you identify it by its address; attempting to move it makes it simply cease to exist.
It's when you utilize inductive identification of objects that you will suffer uncertainty and potential ambiguity. This is true in any situation, whether it be reality with human observers or a mathematical universe with abstract observers. It's quite possible to create a mathematical universe where useful objects would usually need to be identified inductively.
As humans, what we typically associate with 'object-identity' involves the duo origin+history. Supposing reality has any 'truth' at all, these are deductive qualities (whether we know them or not). E.g. 'that bookshelf' is the same bookshelf one that was built in the factory, and it shall continue to be the same bookshelf whether we move it, repair it, damage it, etc. until it falls to pieces to never be repaired again. Even if we don't recognize the bookshelf we'd generally say it is the same one (e.g. "I almost didn't recognize my bookshelf after it fell out of my truck and crashed down the ravine" or "That used to be my bookshelf".) It also doesn't matter to us whether we 'know'' the whole history and origin, or even whether we can trace it; it only matters that an origin and history 'exist'.
Of course, we cannot use origin+history to actually recognize the objects. We can't look at an object and just observe those properties. To identify an object, we instead use an inductive approach -- shape, color, location, and other properties... and we use these to inductively ascertain a potentially remembered object-identity with some margin of error. We recognize the possibility for error when we realize that we've mistaken an identity. The potential for mistaken identity exists as a weakness in our ability to observe reality. The potential for mistaken identity does not mean that identity, itself, is uncertain. It means that we are uncertain and imperfect. We generally consider reality a bit more 'objective' than ourselves.
On the other hand, it is not possible to prove deductively that objects or matter exists. It is not possible to deductively prove that what we observe as 'reality' is real -- any such argument will necessarily be circular. Thus, we cannot prove that reality has any identity, certain or otherwise. We can only note that we perceive, and perform inductive proofs about the nature of our perceptions.
But, supposing that 'reality' and our conceptions of 'history' and 'origin' are, indeed, real, then it is true that not only does reality have certain identity; we typically utilize it... potential for error notwithstanding.
ALL abstractions fit reality if we allow "potential for error". The practical issues are generally in managing that error.