title: Public keys in OpenID Connect
body: <p>I'm currently trying to use IdentityServer4 to build a single-signon experience for my users across different apps I have. They are all hosted in the same local network and no third-party apps authenticate with it. The client apps are still Katana/Owin-based.</p>
  
  <p>I'm using the implicit workflow.</p>
  
  <p>At the moment I still use a certificate randomly generated at runtime to sign tokens.</p>
  
  <p>I wonder</p>
  
  <ul>
  <li>whether I actually need more and what the implications are of leaving it as it is and</li>
  <li>how the signature is actually validated by clients.</li>
  </ul>
  
  <p>To the second question I found this piece in the openidconnect spec:</p>
  
  <blockquote>
    <p>The OP advertises its public keys via its Discovery document, or may
    supply this information by other means. The RP declares its public
    keys via its Dynamic Registration request, or may communicate this
    information by other means.</p>
  </blockquote>
  
  <p>So does that mean Katana is actually getting the public keys from IdentityServer4 and validates accordingly? And if so, would it matter if it the certificate changes? The time between issuing and validating a token is always very small, correct? So why would I need a proper, rarely-changing certificate?</p>