PageSourceSearch

https://www.biscuitsec.org/docs/why-biscuit/

html biscuitsec.org collected 2026-10-03 22:14:05 UTC 12,938 bytes, 454 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head>
4<meta charset="utf-8">
5<meta http-equiv="x-ua-compatible" content="ie=edge">
6<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
7
8  <link rel="preload" as="font" href="https://www.biscuitsec.org/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
9  <link rel="preload" as="font" href="https://www.biscuitsec.org/fonts/vendor/jost/jost-v4-latin-700.woff2"  type="font/woff2" crossorigin>
10
11
12<link rel="stylesheet" href="https://www.biscuitsec.org/main.css">
13
14
15
16  
17  
18    
19  
20
21  
22  
23    
24    
25  
26  
27  
28    
29  
30  
31  
32  
33    
34  
35  
36  
37
38
39  <meta name="robots" content="index, follow">
40  <meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
41  <meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
42
43
44	
45
46
47	
48
49<title>Why biscuit | Biscuit</title>
50<meta name="description" content="Learn more">
51<link rel="canonical" href="https://www.biscuitsec.org/docs/why-biscuit/">
52
53
54
55
56
57
58
59
60
61
62<script type="application/ld+json">
63  {
64    "@context": "http://schema.org",
65    "@type": "BreadcrumbList",
66    
67      
68      
69        
70        
71        
72        
73        
74        
75        
76        
77          {
78            "@type": "ListItem",
79            "position":  1 ,
80            "name": "Home",
81            "item": "https://www.biscuitsec.org/"
82          },
83          
84          
85          {
86            "@type": "ListItem",
87            "position":  2 ,
88            "name": "Docs",
89            "item": "https://www.biscuitsec.org/docs/"
90          },
91        
92      
93        
94        
95        
96        
97        
98        
99        
100        
101        
102        
103        
104          
105          
106          {
107            "@type": "ListItem",
108            "position":  3 ,
109            "name": "Why Biscuit",
110            "item": "https://www.biscuitsec.org/docs/why-biscuit/"
111          },
112        
113      
114    
115  }
116</script>
116
117
118
119
120
121  <meta name="theme-color" content="#fff">
122  <link rel="apple-touch-icon" sizes="180x180" href="https://www.biscuitsec.org/apple-touch-icon.png">
123  <link rel="icon" type="image/png" sizes="32x32" href="https://www.biscuitsec.org/favicon-32x32.png">
124  <link rel="icon" type="image/png" sizes="16x16" href="https://www.biscuitsec.org/favicon-16x16.png">
125  
126    <link rel="manifest" href="https://www.biscuitsec.org/site.webmanifest">
127  
128
129
130  
131
132<script type="module" src="/index.js"></script>
132
133
134  <link rel="alternate" type="application/rss+xml" title="RSS" href="https://www.biscuitsec.org/blog/atom.xml">
135
136
137
138  <meta property="og:image" content="/img/thumbnail.png" />
139
140</head>
141
142  
143
144<body class="docs single">
145  
146  
147  
148  
149<div class="header-bar fixed-top"></div>
150<header class="navbar fixed-top navbar-expand-md navbar-light">
151	<div class="container">
152		<input class="menu-btn order-0" type="checkbox" id="menu-btn">
153		<label class="menu-icon d-md-none" for="menu-btn"><span class="navicon"></span></label>
154		<a class="navbar-brand order-1 order-md-0 me-auto" href="https://www.biscuitsec.org">Biscuit</a>
155		<ul class="navbar-nav fork-me order-3 order-md-5">
156			
157				
158					<li class="nav-item">
159						<a class="nav-link" href="https://github.com/eclipse-biscuit/biscuit"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77  5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.4 4 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg><span class="ms-2 visually-hidden">GitHub</span></a>
160					</li>
161				
162			
163		</ul>
164		<div class="collapse navbar-collapse order-4 order-md-1">
165			<ul class="navbar-nav main-nav me-auto order-5 order-md-2">
166				
167				<li class="nav-item">
168					<a class="nav-link" href="https://doc.biscuitsec.org">Docs</a>
169				</li>
170				<li class="nav-item">
171					<a class="nav-link" href="https://www.biscuitsec.org/blog/">Blog</a>
172				</li>
173				<li class="nav-item">
174					<a class="nav-link" href="https://www.biscuitsec.org/docs/tooling/">Online tooling</a>
175				</li>
176				<li class="nav-item">
177					<a class="nav-link" href="https://www.biscuitsec.org/docs/why-biscuit/">Learn more</a>
178				</li>
179				
180			</ul>
181			<div class="break order-6 d-md-none"></div>
182			
183				<form class="navbar-form flex-grow-1 order-7 order-md-3">
184					<input id="userinput" class="form-control is-search" type="search" placeholder="Search docs..."
185						aria-label="Search docs..." autocomplete="off">
186					<div id="suggestions" class="shadow bg-white rounded"></div>
187				</form>
188			
189		</div>
190	</div>
191</header>
192
193
194
195  
196<div class="wrap container" role="document">
197  <div class="content">
198    <div class="row flex-xl-nowrap">
199	  
200<div class="col-lg-5 col-xl-4 docs-sidebar">
201	<nav class="docs-links" aria-label="Main navigation">
202			
203			
204			
205					<h3>Biscuit</h3>
206					<ul class="list-unstyled">
207					                           
208							<li><a class="docs-link active" href="https://www.biscuitsec.org/docs/why-biscuit/">Why biscuit</a></li>
209					
210					</ul>
211			
212			
213					
214					
215					
216							<h3>Recipes</h3>
217							<ul class="list-unstyled">
218							                           
219									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/guides/microservices/">Delegation in microservices</a></li>
220							                           
221									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/guides/revocation/">Revocation</a></li>
222							
223					</ul>
224					
225					
226					
227					
228							<h3>Online Tooling</h3>
229							<ul class="list-unstyled">
230							                           
231									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/tooling/snapshot-inspector/">Snapshot inspector</a></li>
232							                           
233									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/tooling/token-inspector/">Token inspector</a></li>
234							                           
235									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/tooling/token-generator/">Token generator</a></li>
236							                           
237									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/tooling/token-attenuator/">Token attenuator</a></li>
238							                           
239									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/tooling/datalog-playground/">Datalog playground</a></li>
240							
241					</ul>
242					
243					
244					
245					
246							<h3>Reference</h3>
247							<ul class="list-unstyled">
248							                           
249									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/reference/cryptography/">Cryptography</a></li>
250							                           
251									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/reference/datalog/">Datalog</a></li>
252							
253					</ul>
254					
255					
256					
257					
258							<h3>Contributing</h3>
259							<ul class="list-unstyled">
260							                           
261									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/contributing/how-to-contribute/">
261How to Contribute</a></li>
262							                           
263									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/contributing/code-of-conduct/">Code of Conduct</a></li>
264							                           
265									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/contributing/contributors/">Eclipse Biscuit contributors</a></li>
266							
267					</ul>
268					
269					
270					
271					
272							<h3>Help</h3>
273							<ul class="list-unstyled">
274							                           
275									<li><a class="docs-link" href="https://www.biscuitsec.org/docs/help/faq/">FAQ</a></li>
276							
277					</ul>
278					
279					
280			
281	</nav>
282</div>
283
284	  
285  
286  <nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation">
287  	<div class="page-links">
288  			<h3>On this page</h3>
289  			<nav id="TableOfContents">
290  					<ul>
291  							
292  							<li><a href="https://www.biscuitsec.org/docs/why-biscuit/#goals">Goals</a></li>
293  							
294  							
295  							<li><a href="https://www.biscuitsec.org/docs/why-biscuit/#non-goals">Non goals</a></li>
296  							
297  									<ul>
298  											
299  											<li><a href="https://www.biscuitsec.org/docs/why-biscuit/#authentication">Authentication</a></li>
300  											
301  											<li><a href="https://www.biscuitsec.org/docs/why-biscuit/#revocation">Revocation</a></li>
302  											
303  									</ul>
304  							
305  							
306  					</ul>
307  			</nav>
308  	</div>
309  </nav>
310  
311
312      <main class="docs-content col-lg-11 col-xl-9">
313        <h1>Why biscuit</h1>
314        
315        <p>Eclipse Biscuit has been created in the context of distributed systems where centralized authorization is not possible. As such, it is particulary suited for microservices architecture, even though it could also be used in more centralized systems.</p>
316<h2 id="goals">Goals</h2>
317<p>Eclipse Biscuit is an authorization token with the following properties:</p>
318<ul>
319<li>distributed authorization: any node is able validate a token only with public information;</li>
320<li>offline attenuation: a new, valid token can be created from another one by attenuating its rights, by its holder, without communicating with anyone;</li>
321<li>capabilities based: the token itself can carry rights information, instead of being tied to an identity that provides it;</li>
322<li>flexible rights managements: the token uses a logic language to specify attenuation and to add bounds on ambient data, it can model from small rules like expiration dates, to more flexible architectures like hierarchical roles and user delegation;</li>
323<li>small enough to fit anywhere (cookies, etc).</li>
324</ul>
325<h2 id="non-goals">Non goals</h2>
326<h3 id="authentication">Authentication</h3>
327<p>This is not a new authentication protocol. Biscuit tokens can be used as opaque tokens delivered by other systems such as OAuth. Authentication data can be carried within a token, but biscuit does not specify anything related to authentication.</p>
328<h3 id="revocation">Revocation</h3>
329<p>Biscuit generates unique revocation identifiers for each token, and can provide expiration dates as well, but revocation requires external state management (revocation lists, databases, etc) that is out of the scope of the biscuit specification.</p>
330<p>Revocation systems and strategies are covered on this website: <a href="/docs/guides/revocation/">revocation recipes</a>.</p>
331
332        
333        
334<div class="docs-navigation d-flex justify-content-between">
335  
336  
337  
338  
339  
340    
341    
342    
343    
344      
345        
346        
347          
348        
349      
350        
351        
352          
353            
354              
355              <a href="https:&#x2F;&#x2F;www.biscuitsec.org&#x2F;authors&#x2F;clementd&#x2F;">
356                <div class="card my-1">
357                  <div class="card-body py-2">
358                    &larr; Clément Delafargue
359                  </div>
360                </div>
361              </a>
362            
363            
364            
365          
366        
367      
368        
369        
370          
371        
372      
373        
374        
375          
376        
377      
378    
379  
380
381  
382  
383  
384  
385  
386    
387    
388    
389      
390      
391        
392      
393    
394      
395      
396        
397      
398    
399      
400      
401        
402      
403    
404      
405      
406        
407      
408    
409  
410</div>
411
412      </main>
413    </div>
414  </div>
415</div>
416
417
418  
419    
420<footer class="footer text-muted">
421	<div class="container">
422		<div class="row">
423			<div class="col-lg-8 order-last order-lg-first">
424				<ul class="list-inline">
425					
426						<li class="list-inline-item">Powered by <a href="https://www.netlify.com/">Netlify</a>,  <a href="https://www.getzola.org/">Zola</a>, and <a href="https://github.com/aaranxu/adidoks">AdiDoks</a>, domain name donated by <a href="https://twitter.com/fimbault">Fabien Imbault</a>
427 </li>
428
429					
430					<li><a rel="me" href="https://hachyderm.io/@biscuitauth">Mastodon</a></li>
431				</ul>
432			</div>
433			<div class="col-lg-8 order-first order-lg-last text-lg-end">
434				<ul class="list-inline">
435					
436				</ul>
437			</div>
438		</div>
439	</div>
440</footer>
441
442  
443
444  
445<script src="https://www.biscuitsec.org/js/main.js" defer></script>
445
446
447  
447<script src="https://www.biscuitsec.org/plugins/elasticlunr.min.js" defer></script>
447
448  
448<script src="https://www.biscuitsec.org/search_index.en.js" defer></script>
448
449  
449<script src="https://www.biscuitsec.org/js/search.js" defer></script>
449
450
451  
452<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"fe6adfaef939433a96070451faf731fb","r":1,"spa":2}' crossorigin="anonymous"></script>
452
453</body>
454</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.