A cloud-based identity and access management service for securing user authentication and resource access
The reason signature verification fails for Access Token is the 'nonce' field in its JWT header. It should be represented as an SHA256 hash. Before signature verification, the SHA256 hash of current value of 'nonce' should be calculated and be replaced with that: header.nonce = sha256(header.nonce).
C# code example can be found at Stack Overflow: https://stackoverflow.com/a/71588115/2659770
On the other hand, Access Token is not designed to be validated by you or shared to someone else (e.g. your server side), its audience is the Graph API, validation, signatuer verification etc. is done by Graph API.