<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Stroom – administration</title>
    <link>/tags/administration/</link>
    <description>Recent content in administration on Stroom</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Wed, 29 Jul 2026 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="/tags/administration/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Signing Keys</title>
      <link>/docs/user-guide/security/signing-keys/</link>
      <pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate>
      
      <guid>/docs/user-guide/security/signing-keys/</guid>
      <description>
        
        
        &lt;p&gt;When Stroom acts as its own &lt;span class=&#34;glossary-link&#34;&gt;
    &lt;a href=&#34;../../docs/glossary/i/glossary-idp&#34;&gt;
      &lt;span&gt;Identity Provider (IDP)&lt;/span&gt;
      &lt;i class=&#34;glossary-link-icon fas fa-book fa-sm text-primary&#34;&gt;&lt;/i&gt;
    &lt;/a&gt;&lt;span class=&#34;glossary-tooltip&#34;&gt;
      &lt;span class=&#34;glossary-tooltip-title&#34;&gt;Identity Provider (IDP)&lt;/span&gt;
      &lt;span class=&#34;glossary-tooltip-summary&#34;&gt;An &lt;strong&gt;Id&lt;/strong&gt;entity &lt;strong&gt;P&lt;/strong&gt;rovider is a system or service that can authenticate a user and assert their identity. &lt;em&gt;Identity providers&lt;/em&gt; can support single sign on (SSO), which allows the user to sign in once to the &lt;em&gt;Identity Provider&lt;/em&gt; so they are then authenticated to all systems using that IDP.&lt;/span&gt;&lt;span class=&#34;glossary-tooltip-truncated&#34;&gt;Click to see more details...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; it signs the tokens it issues with a key that it creates and replaces by itself.
Nodes and Stroom-Proxy check that signature to satisfy themselves that a token really came from Stroom.&lt;/p&gt;
&lt;p&gt;This screen exists so that a key believed to have been exposed can be withdrawn.
It is not needed for day to day running, because keys are replaced automatically.&lt;/p&gt;

&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;Note&lt;/h4&gt;



    &lt;p&gt;This screen requires the &lt;code&gt;Administrator&lt;/code&gt; &lt;span class=&#34;glossary-link&#34;&gt;
&lt;a href=&#34;../../docs/glossary/a/glossary-application-permission&#34;&gt;
&lt;span&gt;Application permission&lt;/span&gt;
&lt;i class=&#34;glossary-link-icon fas fa-book fa-sm text-primary&#34;&gt;&lt;/i&gt;
&lt;/a&gt;&lt;span class=&#34;glossary-tooltip&#34;&gt;
&lt;span class=&#34;glossary-tooltip-title&#34;&gt;Application permission&lt;/span&gt;
&lt;span class=&#34;glossary-tooltip-summary&#34;&gt;This is a permission that is not specific to a single document. It applies to all documents or is not related to documents in any way.&lt;/span&gt;&lt;span class=&#34;glossary-tooltip-truncated&#34;&gt;Click to see more details…&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, rather than &lt;code&gt;Manage Users&lt;/code&gt; which is enough for most other security screens.
Withdrawing a signing key affects everybody using Stroom at once, so it is treated as an application wide action.&lt;/p&gt;


&lt;/div&gt;


&lt;p&gt;Reach the screen by selecting&lt;/p&gt;





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item &#34; &gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Security
      &lt;/div&gt;
        &lt;div class=&#34;stroom-menu-item-arrow&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Arrow right&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1427.7665&#34; height=&#34;1427.7665&#34; viewBox=&#34;0 0 1427.7665 1427.7665&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:167.567&#34;&gt;&lt;path d=&#34;m 415.05387,83.70929 c -39.92654,0.4303 -75.41463,48.3887 -40.0468,81.9121 C 567.552,348.69899 760.75555,531.15431 953.73208,713.82391 760.75555,896.49341 567.552,1078.9486 375.00707,1262.0262 c -46.19471,43.7855 28.48812,112.1966 76.0571,67.1681 195.93558,-185.823 392.95261,-370.82479 587.98693,-557.52749 5.6117,-4.8034 10.4633,-10.2473 14.4855,-16.1231 9.643,-12.4844 13.9638,-27.0796 13.6909,-41.7198 0.2729,-14.6402 -4.0479,-29.2354 -13.6909,-41.7198 -4.0222,-5.8758 -8.8738,-11.3198 -14.4855,-16.1231 C 844.01678,469.27821 646.99975,284.27629 451.06417,98.45319 439.91519,87.89979 427.27628,83.57749 415.05387,83.70929 Z&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 7px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Signing Keys
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;



&lt;p&gt;from the main menu.&lt;/p&gt;
&lt;h2 id=&#34;what-the-screen-shows&#34;&gt;What the Screen Shows&lt;/h2&gt;
&lt;p&gt;Each key is listed with its status and the date it was issued, and nothing else.
Nothing that identifies a key or describes its contents is shown, because the stored key includes the private half that produces signatures.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Active&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;New tokens are being signed with this key.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Retired&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;No longer signing new tokens, but still trusted so that tokens already issued keep working. Shown with the date that trust ends.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Expired&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;No longer trusted. Removed automatically shortly afterwards.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Revoked&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Withdrawn by an administrator. Anything signed with it is already refused.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The active key has no end date.
Keys here do not expire on a schedule.
Rotation replaces the active key when it is old enough, and only at that point does the key it replaced gain a date on which it stops being trusted.&lt;/p&gt;
&lt;h2 id=&#34;automatic-rotation&#34;&gt;Automatic Rotation&lt;/h2&gt;
&lt;p&gt;Stroom replaces the active signing key every &lt;code&gt;stroom.security.identity.token.jwkRotationInterval&lt;/code&gt;, which is thirty days by default.&lt;/p&gt;
&lt;p&gt;Rotation is invisible to users.
The key being replaced continues to be trusted for long enough that every token already signed with it expires naturally, so nobody is signed out and nothing needs to be restarted.&lt;/p&gt;
&lt;h2 id=&#34;revoking-a-key&#34;&gt;Revoking a Key&lt;/h2&gt;
&lt;p&gt;Revoking withdraws a key immediately.
Any token signed with it stops being accepted, and a replacement signing key is created at the same moment so that Stroom can carry on issuing tokens.&lt;/p&gt;
&lt;p&gt;There are two actions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Revoke&lt;/em&gt; withdraws the selected key.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Revoke all&lt;/em&gt; withdraws every key that is still trusted, for when a key is believed to have been exposed but it is not known which.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both actions ask for confirmation first, and the confirmation says what that particular key will cost, because the effect differs enormously between them.
Revoking a retired key usually affects a handful of people, while revoking the active key affects everyone.&lt;/p&gt;

&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;Warning&lt;/h4&gt;

    &lt;p&gt;Revoking cannot be undone.
There is no way to restore trust in a key that has been withdrawn.&lt;/p&gt;
&lt;p&gt;Revoke a key only if you believe it may have been exposed.
A key revoked by mistake costs everybody a fresh sign in, but no data is lost.&lt;/p&gt;


&lt;/div&gt;


&lt;h3 id=&#34;what-to-expect-after-revoking-the-active-key&#34;&gt;What to Expect after Revoking the Active Key&lt;/h3&gt;
&lt;p&gt;Everybody using Stroom is signed out and must authenticate again.
For people at a browser this is quick, and they will be signed back in as soon as they do so.&lt;/p&gt;
&lt;p&gt;Nodes and Stroom-Proxy hold their own tokens signed with the same key, and they replace those tokens as they expire rather than immediately.
Parts of the cluster may therefore be unable to talk to one another for up to ten minutes.
This resolves itself and needs no intervention, but it is worth expecting rather than being surprised by, and it is a good reason to reserve this action for a suspected compromise.&lt;/p&gt;
&lt;p&gt;Revoking a retired or expired key has no such effect, as nothing is signing with it.&lt;/p&gt;

&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;See Also&lt;/h4&gt;
&lt;div class=&#34;alert-content&#34;&gt;
  
  &lt;p&gt;&lt;a href=&#34;../../docs/user-guide/security/sessions-and-tokens/&#34;&gt;Sessions and Tokens&lt;/a&gt;
&lt;a href=&#34;../../docs/install-guide/setup/open-id/internal-idp/&#34;&gt;Internal IDP&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;


      </description>
    </item>
    
  </channel>
</rss>
