title: Signing documents with a Cloud Identity
body: <p>So I have a document shared between two or more users.  Call them Alice and Bob.</p>
  <p>When editing this document, Alice is signed in using OAuth with office 365 or google gsuite; I'll call that an identity provider.</p>
  <p>When I pass this document to Bob, I want to be able for Bob to have confidence that the content written by Alice was indeed written by someone with the ability to sign in the identity provider as Alice.</p>
  <p>The obvious way to do this is for Alice to digitally sign the changes in the document with a public/private key pair, and then connect the public key to her own identity.</p>
  <p>This will require that Bob can get at that public part of the key through a way they can reasonably verify required that Alice put that public key there.</p>
  <p>Also, I want the file's current location/storage/transmission to not be required to prove the identity of Alice in any way.  And, ideally, I'd like Alice to be able to authenticate, disconnect from the internet, and continue to be able to make provably-authored edits on her document.</p>
  <ol>
  <li><p>I'm afraid I'm reinventing the wheel, but I cannot find any evidence that there are pre-existing APIs for doing this.  This seems like a really basic set of operations; being able to sign data with identity, and verify it was that identity that signed it.  I was somewhat surprised when I couldn't find an API to do this.</p>
  </li>
  <li><p>Embedding a link to a shared document that Alice has on her cloud storage, and having Bob go and fetch it to verify the signature, is one thing I'm considering; is there a way to have a stable URL with both of those storage providers that can be traced back to being connected to Alice?</p>
  </li>
  <li><p>Is there a better approach?</p>
  </li>
  </ol>