1*7f2fe78bSCy Schubert 2*7f2fe78bSCy Schubert<!DOCTYPE html> 3*7f2fe78bSCy Schubert 4*7f2fe78bSCy Schubert<html> 5*7f2fe78bSCy Schubert <head> 6*7f2fe78bSCy Schubert <meta charset="utf-8" /> 7*7f2fe78bSCy Schubert <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" /> 8*7f2fe78bSCy Schubert 9*7f2fe78bSCy Schubert <title>Credential cache — MIT Kerberos Documentation</title> 10*7f2fe78bSCy Schubert <link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> 11*7f2fe78bSCy Schubert <link rel="stylesheet" type="text/css" href="../_static/agogo.css" /> 12*7f2fe78bSCy Schubert <link rel="stylesheet" type="text/css" href="../_static/kerb.css" /> 13*7f2fe78bSCy Schubert <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> 14*7f2fe78bSCy Schubert <script src="../_static/jquery.js"></script> 15*7f2fe78bSCy Schubert <script src="../_static/underscore.js"></script> 16*7f2fe78bSCy Schubert <script src="../_static/doctools.js"></script> 17*7f2fe78bSCy Schubert <link rel="author" title="About these documents" href="../about.html" /> 18*7f2fe78bSCy Schubert <link rel="index" title="Index" href="../genindex.html" /> 19*7f2fe78bSCy Schubert <link rel="search" title="Search" href="../search.html" /> 20*7f2fe78bSCy Schubert <link rel="copyright" title="Copyright" href="../copyright.html" /> 21*7f2fe78bSCy Schubert <link rel="next" title="keytab" href="keytab_def.html" /> 22*7f2fe78bSCy Schubert <link rel="prev" title="Kerberos V5 concepts" href="index.html" /> 23*7f2fe78bSCy Schubert </head><body> 24*7f2fe78bSCy Schubert <div class="header-wrapper"> 25*7f2fe78bSCy Schubert <div class="header"> 26*7f2fe78bSCy Schubert 27*7f2fe78bSCy Schubert 28*7f2fe78bSCy Schubert <h1><a href="../index.html">MIT Kerberos Documentation</a></h1> 29*7f2fe78bSCy Schubert 30*7f2fe78bSCy Schubert <div class="rel"> 31*7f2fe78bSCy Schubert 32*7f2fe78bSCy Schubert <a href="../index.html" title="Full Table of Contents" 33*7f2fe78bSCy Schubert accesskey="C">Contents</a> | 34*7f2fe78bSCy Schubert <a href="index.html" title="Kerberos V5 concepts" 35*7f2fe78bSCy Schubert accesskey="P">previous</a> | 36*7f2fe78bSCy Schubert <a href="keytab_def.html" title="keytab" 37*7f2fe78bSCy Schubert accesskey="N">next</a> | 38*7f2fe78bSCy Schubert <a href="../genindex.html" title="General Index" 39*7f2fe78bSCy Schubert accesskey="I">index</a> | 40*7f2fe78bSCy Schubert <a href="../search.html" title="Enter search criteria" 41*7f2fe78bSCy Schubert accesskey="S">Search</a> | 42*7f2fe78bSCy Schubert <a href="mailto:krb5-bugs@mit.edu?subject=Documentation__Credential cache">feedback</a> 43*7f2fe78bSCy Schubert </div> 44*7f2fe78bSCy Schubert </div> 45*7f2fe78bSCy Schubert </div> 46*7f2fe78bSCy Schubert 47*7f2fe78bSCy Schubert <div class="content-wrapper"> 48*7f2fe78bSCy Schubert <div class="content"> 49*7f2fe78bSCy Schubert <div class="document"> 50*7f2fe78bSCy Schubert 51*7f2fe78bSCy Schubert <div class="documentwrapper"> 52*7f2fe78bSCy Schubert <div class="bodywrapper"> 53*7f2fe78bSCy Schubert <div class="body" role="main"> 54*7f2fe78bSCy Schubert 55*7f2fe78bSCy Schubert <section id="credential-cache"> 56*7f2fe78bSCy Schubert<span id="ccache-definition"></span><h1>Credential cache<a class="headerlink" href="#credential-cache" title="Permalink to this headline">¶</a></h1> 57*7f2fe78bSCy Schubert<p>A credential cache (or “ccache”) holds Kerberos credentials while they 58*7f2fe78bSCy Schubertremain valid and, generally, while the user’s session lasts, so that 59*7f2fe78bSCy Schubertauthenticating to a service multiple times (e.g., connecting to a web 60*7f2fe78bSCy Schubertor mail server more than once) doesn’t require contacting the KDC 61*7f2fe78bSCy Schubertevery time.</p> 62*7f2fe78bSCy Schubert<p>A credential cache usually contains one initial ticket which is 63*7f2fe78bSCy Schubertobtained using a password or another form of identity verification. 64*7f2fe78bSCy SchubertIf this ticket is a ticket-granting ticket, it can be used to obtain 65*7f2fe78bSCy Schubertadditional credentials without the password. Because the credential 66*7f2fe78bSCy Schubertcache does not store the password, less long-term damage can be done 67*7f2fe78bSCy Schubertto the user’s account if the machine is compromised.</p> 68*7f2fe78bSCy Schubert<p>A credentials cache stores a default client principal name, set when 69*7f2fe78bSCy Schubertthe cache is created. This is the name shown at the top of the 70*7f2fe78bSCy Schubert<a class="reference internal" href="../user/user_commands/klist.html#klist-1"><span class="std std-ref">klist</span></a> <em>-A</em> output.</p> 71*7f2fe78bSCy Schubert<p>Each normal cache entry includes a service principal name, a client 72*7f2fe78bSCy Schubertprincipal name (which, in some ccache types, need not be the same as 73*7f2fe78bSCy Schubertthe default), lifetime information, and flags, along with the 74*7f2fe78bSCy Schubertcredential itself. There are also other entries, indicated by special 75*7f2fe78bSCy Schubertnames, that store additional information.</p> 76*7f2fe78bSCy Schubert<section id="ccache-types"> 77*7f2fe78bSCy Schubert<h2>ccache types<a class="headerlink" href="#ccache-types" title="Permalink to this headline">¶</a></h2> 78*7f2fe78bSCy Schubert<p>The credential cache interface, like the <a class="reference internal" href="keytab_def.html#keytab-definition"><span class="std std-ref">keytab</span></a> and 79*7f2fe78bSCy Schubert<a class="reference internal" href="rcache_def.html#rcache-definition"><span class="std std-ref">replay cache</span></a> interfaces, uses <cite>TYPE:value</cite> strings to 80*7f2fe78bSCy Schubertindicate the type of credential cache and any associated cache naming 81*7f2fe78bSCy Schubertdata to use.</p> 82*7f2fe78bSCy Schubert<p>There are several kinds of credentials cache supported in the MIT 83*7f2fe78bSCy SchubertKerberos library. Not all are supported on every platform. In most 84*7f2fe78bSCy Schubertcases, it should be correct to use the default type built into the 85*7f2fe78bSCy Schubertlibrary.</p> 86*7f2fe78bSCy Schubert<ol class="arabic"> 87*7f2fe78bSCy Schubert<li><p><strong>API</strong> is only implemented on Windows. It communicates with a 88*7f2fe78bSCy Schubertserver process that holds the credentials in memory for the user, 89*7f2fe78bSCy Schubertrather than writing them to disk.</p></li> 90*7f2fe78bSCy Schubert<li><p><strong>DIR</strong> points to the storage location of the collection of the 91*7f2fe78bSCy Schubertcredential caches in <em>FILE:</em> format. It is most useful when dealing 92*7f2fe78bSCy Schubertwith multiple Kerberos realms and KDCs. For release 1.10 the 93*7f2fe78bSCy Schubertdirectory must already exist. In post-1.10 releases the 94*7f2fe78bSCy Schubertrequirement is for parent directory to exist and the current 95*7f2fe78bSCy Schubertprocess must have permissions to create the directory if it does 96*7f2fe78bSCy Schubertnot exist. See <a class="reference internal" href="#col-ccache"><span class="std std-ref">Collections of caches</span></a> for details. New in release 1.10. 97*7f2fe78bSCy SchubertThe following residual forms are supported:</p> 98*7f2fe78bSCy Schubert<ul class="simple"> 99*7f2fe78bSCy Schubert<li><p>DIR:dirname</p></li> 100*7f2fe78bSCy Schubert<li><p>DIR::dirpath/filename - a single cache within the directory</p></li> 101*7f2fe78bSCy Schubert</ul> 102*7f2fe78bSCy Schubert<p>Switching to a ccache of the latter type causes it to become the 103*7f2fe78bSCy Schubertprimary for the directory.</p> 104*7f2fe78bSCy Schubert</li> 105*7f2fe78bSCy Schubert<li><p><strong>FILE</strong> caches are the simplest and most portable. A simple flat 106*7f2fe78bSCy Schubertfile format is used to store one credential after another. This is 107*7f2fe78bSCy Schubertthe default ccache type if no type is specified in a ccache name.</p></li> 108*7f2fe78bSCy Schubert<li><p><strong>KCM</strong> caches work by contacting a daemon process called <code class="docutils literal notranslate"><span class="pre">kcm</span></code> 109*7f2fe78bSCy Schubertto perform cache operations. If the cache name is just <code class="docutils literal notranslate"><span class="pre">KCM:</span></code>, 110*7f2fe78bSCy Schubertthe default cache as determined by the KCM daemon will be used. 111*7f2fe78bSCy SchubertNewly created caches must generally be named <code class="docutils literal notranslate"><span class="pre">KCM:uid:name</span></code>, 112*7f2fe78bSCy Schubertwhere <em>uid</em> is the effective user ID of the running process.</p> 113*7f2fe78bSCy Schubert<p>KCM client support is new in release 1.13. A KCM daemon has not 114*7f2fe78bSCy Schubertyet been implemented in MIT krb5, but the client will interoperate 115*7f2fe78bSCy Schubertwith the KCM daemon implemented by Heimdal. macOS 10.7 and higher 116*7f2fe78bSCy Schubertprovides a KCM daemon as part of the operating system, and the 117*7f2fe78bSCy Schubert<strong>KCM</strong> cache type is used as the default cache on that platform in 118*7f2fe78bSCy Schuberta default build.</p> 119*7f2fe78bSCy Schubert</li> 120*7f2fe78bSCy Schubert<li><p><strong>KEYRING</strong> is Linux-specific, and uses the kernel keyring support 121*7f2fe78bSCy Schubertto store credential data in unswappable kernel memory where only 122*7f2fe78bSCy Schubertthe current user should be able to access it. The following 123*7f2fe78bSCy Schubertresidual forms are supported:</p> 124*7f2fe78bSCy Schubert<ul class="simple"> 125*7f2fe78bSCy Schubert<li><p>KEYRING:name</p></li> 126*7f2fe78bSCy Schubert<li><p>KEYRING:process:name - process keyring</p></li> 127*7f2fe78bSCy Schubert<li><p>KEYRING:thread:name - thread keyring</p></li> 128*7f2fe78bSCy Schubert</ul> 129*7f2fe78bSCy Schubert<p>Starting with release 1.12 the <em>KEYRING</em> type supports collections. 130*7f2fe78bSCy SchubertThe following new residual forms were added:</p> 131*7f2fe78bSCy Schubert<ul class="simple"> 132*7f2fe78bSCy Schubert<li><p>KEYRING:session:name - session keyring</p></li> 133*7f2fe78bSCy Schubert<li><p>KEYRING:user:name - user keyring</p></li> 134*7f2fe78bSCy Schubert<li><p>KEYRING:persistent:uidnumber - persistent per-UID collection. 135*7f2fe78bSCy SchubertUnlike the user keyring, this collection survives after the user 136*7f2fe78bSCy Schubertlogs out, until the cache credentials expire. This type of 137*7f2fe78bSCy Schubertccache requires support from the kernel; otherwise, it will fall 138*7f2fe78bSCy Schubertback to the user keyring.</p></li> 139*7f2fe78bSCy Schubert</ul> 140*7f2fe78bSCy Schubert<p>See <a class="reference internal" href="#col-ccache"><span class="std std-ref">Collections of caches</span></a> for details.</p> 141*7f2fe78bSCy Schubert</li> 142*7f2fe78bSCy Schubert<li><p><strong>MEMORY</strong> caches are for storage of credentials that don’t need to 143*7f2fe78bSCy Schubertbe made available outside of the current process. For example, a 144*7f2fe78bSCy Schubertmemory ccache is used by <a class="reference internal" href="../admin/admin_commands/kadmin_local.html#kadmin-1"><span class="std std-ref">kadmin</span></a> to store the 145*7f2fe78bSCy Schubertadministrative ticket used to contact the admin server. Memory 146*7f2fe78bSCy Schubertccaches are faster than file ccaches and are automatically 147*7f2fe78bSCy Schubertdestroyed when the process exits.</p></li> 148*7f2fe78bSCy Schubert<li><p><strong>MSLSA</strong> is a Windows-specific cache type that accesses the 149*7f2fe78bSCy SchubertWindows credential store.</p></li> 150*7f2fe78bSCy Schubert</ol> 151*7f2fe78bSCy Schubert</section> 152*7f2fe78bSCy Schubert<section id="collections-of-caches"> 153*7f2fe78bSCy Schubert<span id="col-ccache"></span><h2>Collections of caches<a class="headerlink" href="#collections-of-caches" title="Permalink to this headline">¶</a></h2> 154*7f2fe78bSCy Schubert<p>Some credential cache types can support collections of multiple 155*7f2fe78bSCy Schubertcaches. One of the caches in the collection is designated as the 156*7f2fe78bSCy Schubert<em>primary</em> and will be used when the collection is resolved as a cache. 157*7f2fe78bSCy SchubertWhen a collection-enabled cache type is the default cache for a 158*7f2fe78bSCy Schubertprocess, applications can search the specified collection for a 159*7f2fe78bSCy Schubertspecific client principal, and GSSAPI applications will automatically 160*7f2fe78bSCy Schubertselect between the caches in the collection based on criteria such as 161*7f2fe78bSCy Schubertthe target service realm.</p> 162*7f2fe78bSCy Schubert<p>Credential cache collections are new in release 1.10, with support 163*7f2fe78bSCy Schubertfrom the <strong>DIR</strong> and <strong>API</strong> ccache types. Starting in release 1.12, 164*7f2fe78bSCy Schubertcollections are also supported by the <strong>KEYRING</strong> ccache type. 165*7f2fe78bSCy SchubertCollections are supported by the <strong>KCM</strong> ccache type in release 1.13.</p> 166*7f2fe78bSCy Schubert<section id="tool-alterations-to-use-cache-collection"> 167*7f2fe78bSCy Schubert<h3>Tool alterations to use cache collection<a class="headerlink" href="#tool-alterations-to-use-cache-collection" title="Permalink to this headline">¶</a></h3> 168*7f2fe78bSCy Schubert<ul class="simple"> 169*7f2fe78bSCy Schubert<li><p><a class="reference internal" href="../user/user_commands/kdestroy.html#kdestroy-1"><span class="std std-ref">kdestroy</span></a> <em>-A</em> will destroy all caches in the collection.</p></li> 170*7f2fe78bSCy Schubert<li><p>If the default cache type supports switching, <a class="reference internal" href="../user/user_commands/kinit.html#kinit-1"><span class="std std-ref">kinit</span></a> 171*7f2fe78bSCy Schubert<em>princname</em> will search the collection for a matching cache and 172*7f2fe78bSCy Schubertstore credentials there, or will store credentials in a new unique 173*7f2fe78bSCy Schubertcache of the default type if no existing cache for the principal 174*7f2fe78bSCy Schubertexists. Either way, kinit will switch to the selected cache.</p></li> 175*7f2fe78bSCy Schubert<li><p><a class="reference internal" href="../user/user_commands/klist.html#klist-1"><span class="std std-ref">klist</span></a> <em>-l</em> will list the caches in the collection.</p></li> 176*7f2fe78bSCy Schubert<li><p><a class="reference internal" href="../user/user_commands/klist.html#klist-1"><span class="std std-ref">klist</span></a> <em>-A</em> will show the content of all caches in the 177*7f2fe78bSCy Schubertcollection.</p></li> 178*7f2fe78bSCy Schubert<li><p><a class="reference internal" href="../user/user_commands/kswitch.html#kswitch-1"><span class="std std-ref">kswitch</span></a> <em>-p princname</em> will search the collection for a 179*7f2fe78bSCy Schubertmatching cache and switch to it.</p></li> 180*7f2fe78bSCy Schubert<li><p><a class="reference internal" href="../user/user_commands/kswitch.html#kswitch-1"><span class="std std-ref">kswitch</span></a> <em>-c cachename</em> will switch to a specified cache.</p></li> 181*7f2fe78bSCy Schubert</ul> 182*7f2fe78bSCy Schubert</section> 183*7f2fe78bSCy Schubert</section> 184*7f2fe78bSCy Schubert<section id="default-ccache-name"> 185*7f2fe78bSCy Schubert<h2>Default ccache name<a class="headerlink" href="#default-ccache-name" title="Permalink to this headline">¶</a></h2> 186*7f2fe78bSCy Schubert<p>The default credential cache name is determined by the following, in 187*7f2fe78bSCy Schubertdescending order of priority:</p> 188*7f2fe78bSCy Schubert<ol class="arabic simple"> 189*7f2fe78bSCy Schubert<li><p>The <strong>KRB5CCNAME</strong> environment variable. For example, 190*7f2fe78bSCy Schubert<code class="docutils literal notranslate"><span class="pre">KRB5CCNAME=DIR:/mydir/</span></code>.</p></li> 191*7f2fe78bSCy Schubert<li><p>The <strong>default_ccache_name</strong> profile variable in <a class="reference internal" href="../admin/conf_files/krb5_conf.html#libdefaults"><span class="std std-ref">[libdefaults]</span></a>.</p></li> 192*7f2fe78bSCy Schubert<li><p>The hardcoded default, <a class="reference internal" href="../mitK5defaults.html#paths"><span class="std std-ref">DEFCCNAME</span></a>.</p></li> 193*7f2fe78bSCy Schubert</ol> 194*7f2fe78bSCy Schubert</section> 195*7f2fe78bSCy Schubert</section> 196*7f2fe78bSCy Schubert 197*7f2fe78bSCy Schubert 198*7f2fe78bSCy Schubert <div class="clearer"></div> 199*7f2fe78bSCy Schubert </div> 200*7f2fe78bSCy Schubert </div> 201*7f2fe78bSCy Schubert </div> 202*7f2fe78bSCy Schubert </div> 203*7f2fe78bSCy Schubert <div class="sidebar"> 204*7f2fe78bSCy Schubert 205*7f2fe78bSCy Schubert <h2>On this page</h2> 206*7f2fe78bSCy Schubert <ul> 207*7f2fe78bSCy Schubert<li><a class="reference internal" href="#">Credential cache</a><ul> 208*7f2fe78bSCy Schubert<li><a class="reference internal" href="#ccache-types">ccache types</a></li> 209*7f2fe78bSCy Schubert<li><a class="reference internal" href="#collections-of-caches">Collections of caches</a><ul> 210*7f2fe78bSCy Schubert<li><a class="reference internal" href="#tool-alterations-to-use-cache-collection">Tool alterations to use cache collection</a></li> 211*7f2fe78bSCy Schubert</ul> 212*7f2fe78bSCy Schubert</li> 213*7f2fe78bSCy Schubert<li><a class="reference internal" href="#default-ccache-name">Default ccache name</a></li> 214*7f2fe78bSCy Schubert</ul> 215*7f2fe78bSCy Schubert</li> 216*7f2fe78bSCy Schubert</ul> 217*7f2fe78bSCy Schubert 218*7f2fe78bSCy Schubert <br/> 219*7f2fe78bSCy Schubert <h2>Table of contents</h2> 220*7f2fe78bSCy Schubert <ul class="current"> 221*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../user/index.html">For users</a></li> 222*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../admin/index.html">For administrators</a></li> 223*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../appdev/index.html">For application developers</a></li> 224*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../plugindev/index.html">For plugin module developers</a></li> 225*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../build/index.html">Building Kerberos V5</a></li> 226*7f2fe78bSCy Schubert<li class="toctree-l1 current"><a class="reference internal" href="index.html">Kerberos V5 concepts</a><ul class="current"> 227*7f2fe78bSCy Schubert<li class="toctree-l2 current"><a class="current reference internal" href="#">Credential cache</a></li> 228*7f2fe78bSCy Schubert<li class="toctree-l2"><a class="reference internal" href="keytab_def.html">keytab</a></li> 229*7f2fe78bSCy Schubert<li class="toctree-l2"><a class="reference internal" href="rcache_def.html">replay cache</a></li> 230*7f2fe78bSCy Schubert<li class="toctree-l2"><a class="reference internal" href="stash_file_def.html">stash file</a></li> 231*7f2fe78bSCy Schubert<li class="toctree-l2"><a class="reference internal" href="date_format.html">Supported date and time formats</a></li> 232*7f2fe78bSCy Schubert</ul> 233*7f2fe78bSCy Schubert</li> 234*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../formats/index.html">Protocols and file formats</a></li> 235*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../mitK5features.html">MIT Kerberos features</a></li> 236*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../build_this.html">How to build this documentation from the source</a></li> 237*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../about.html">Contributing to the MIT Kerberos Documentation</a></li> 238*7f2fe78bSCy Schubert<li class="toctree-l1"><a class="reference internal" href="../resources.html">Resources</a></li> 239*7f2fe78bSCy Schubert</ul> 240*7f2fe78bSCy Schubert 241*7f2fe78bSCy Schubert <br/> 242*7f2fe78bSCy Schubert <h4><a href="../index.html">Full Table of Contents</a></h4> 243*7f2fe78bSCy Schubert <h4>Search</h4> 244*7f2fe78bSCy Schubert <form class="search" action="../search.html" method="get"> 245*7f2fe78bSCy Schubert <input type="text" name="q" size="18" /> 246*7f2fe78bSCy Schubert <input type="submit" value="Go" /> 247*7f2fe78bSCy Schubert <input type="hidden" name="check_keywords" value="yes" /> 248*7f2fe78bSCy Schubert <input type="hidden" name="area" value="default" /> 249*7f2fe78bSCy Schubert </form> 250*7f2fe78bSCy Schubert 251*7f2fe78bSCy Schubert </div> 252*7f2fe78bSCy Schubert <div class="clearer"></div> 253*7f2fe78bSCy Schubert </div> 254*7f2fe78bSCy Schubert </div> 255*7f2fe78bSCy Schubert 256*7f2fe78bSCy Schubert <div class="footer-wrapper"> 257*7f2fe78bSCy Schubert <div class="footer" > 258*7f2fe78bSCy Schubert <div class="right" ><i>Release: 1.21.3</i><br /> 259*7f2fe78bSCy Schubert © <a href="../copyright.html">Copyright</a> 1985-2024, MIT. 260*7f2fe78bSCy Schubert </div> 261*7f2fe78bSCy Schubert <div class="left"> 262*7f2fe78bSCy Schubert 263*7f2fe78bSCy Schubert <a href="../index.html" title="Full Table of Contents" 264*7f2fe78bSCy Schubert >Contents</a> | 265*7f2fe78bSCy Schubert <a href="index.html" title="Kerberos V5 concepts" 266*7f2fe78bSCy Schubert >previous</a> | 267*7f2fe78bSCy Schubert <a href="keytab_def.html" title="keytab" 268*7f2fe78bSCy Schubert >next</a> | 269*7f2fe78bSCy Schubert <a href="../genindex.html" title="General Index" 270*7f2fe78bSCy Schubert >index</a> | 271*7f2fe78bSCy Schubert <a href="../search.html" title="Enter search criteria" 272*7f2fe78bSCy Schubert >Search</a> | 273*7f2fe78bSCy Schubert <a href="mailto:krb5-bugs@mit.edu?subject=Documentation__Credential cache">feedback</a> 274*7f2fe78bSCy Schubert </div> 275*7f2fe78bSCy Schubert </div> 276*7f2fe78bSCy Schubert </div> 277*7f2fe78bSCy Schubert 278*7f2fe78bSCy Schubert </body> 279*7f2fe78bSCy Schubert</html>