<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kajan</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kajan"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Kajan"/>
		<updated>2026-05-27T03:57:53Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=The_General_HTTP_Authentication_Framework&amp;diff=252127</id>
		<title>The General HTTP Authentication Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=The_General_HTTP_Authentication_Framework&amp;diff=252127"/>
				<updated>2019-06-05T17:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: include the page in `Web Application Authentication Schemes` category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
HTTP provides a general framework for access control and authentication, through an extensible set of challenge-response authentication schemes, that can be used by a server to challenge a client request and by a client to provide information about the client.&lt;br /&gt;
==Authentication flow==&lt;br /&gt;
[[File:00-general-http-authentication-flow.png|frameless|General HTTP authentication flow]]&lt;br /&gt;
&lt;br /&gt;
1. A client requests the server to access an authorized resource.&lt;br /&gt;
:Client is anything that requests a resource. Example: Browser, web service&lt;br /&gt;
:Server is an application that serves the client's request.&lt;br /&gt;
:Resource can be any data/information. Example: HTML document, media files&lt;br /&gt;
2. The server requests the client to authenticate first.&lt;br /&gt;
:The server responds to the client with a 401 (Unauthorized) response status and provides information on how to authenticate with a WWW-Authenticate response header containing at least one challenge.&lt;br /&gt;
3. The client prepares for the authentication.&lt;br /&gt;
:The client checks the response status code and understands he needs to authenticate first.&lt;br /&gt;
:Usually, the client presents a password prompt to the user to get the credentials.&lt;br /&gt;
:Some modern applications hide/prevents the default password prompt using client-side JavaScript and show a login form to provide a rich user experience.&lt;br /&gt;
:The client masks/transforms the credentials based on the HTTP authentication scheme it chose/programmed to.&lt;br /&gt;
4. The client sends the (processed)credentials to the server.&lt;br /&gt;
:The client then issues the request to the server with an Authorization request-header field with the HTTP authentication scheme being used and the masked credentials.&lt;br /&gt;
5. The server validates the received credentials.&lt;br /&gt;
:The validation process/algorithm depends on the HTTP authentication scheme being used.&lt;br /&gt;
6. The server informs the client about the authorization status.&lt;br /&gt;
:If the validation succeeds then the server checks if the authenticated entity has the privilege to access the resource&lt;br /&gt;
==Authentication schemes that are based on the general HTTP authentication framework==&lt;br /&gt;
#Basic [[http://www.iana.org/go/rfc7617 RFC7617]]&lt;br /&gt;
#Bearer[[http://www.iana.org/go/rfc6750 RFC6750]]&lt;br /&gt;
#Digest[[http://www.iana.org/go/rfc7616 RFC7616]]&lt;br /&gt;
#HOBA [[http://www.iana.org/go/rfc7486 RFC7486, Section 3]]&lt;br /&gt;
#Mutual [[http://www.iana.org/go/rfc8120 RFC8120]]&lt;br /&gt;
#Negotiate [[http://www.iana.org/go/rfc4559 RFC4559, Section 3]]&lt;br /&gt;
#OAuth [[http://www.iana.org/go/rfc7617 RFC5849, Section 3.5.1]]&lt;br /&gt;
#SCRAM-SHA-1 [[http://www.iana.org/go/rfc7804 RFC7804]]&lt;br /&gt;
#SCRAM-SHA-256 [[http://www.iana.org/go/rfc7804 RFC7804]]&lt;br /&gt;
#Vapid [[http://www.iana.org/go/rfc8292 RFC8292]]&lt;br /&gt;
==References==&lt;br /&gt;
[https://tools.ietf.org/html/rfc7235 RFC7235]&lt;br /&gt;
&lt;br /&gt;
[https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication MDN: The general HTTP authentication framework]&lt;br /&gt;
&lt;br /&gt;
[https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml IANA Authentication Scheme Registry]&lt;br /&gt;
&lt;br /&gt;
[[Category:Web Application Authentication Schemes]]&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=The_General_HTTP_Authentication_Framework&amp;diff=252126</id>
		<title>The General HTTP Authentication Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=The_General_HTTP_Authentication_Framework&amp;diff=252126"/>
				<updated>2019-06-05T17:08:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: Create `General HTTP Authentication Framework` page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
HTTP provides a general framework for access control and authentication, through an extensible set of challenge-response authentication schemes, that can be used by a server to challenge a client request and by a client to provide information about the client.&lt;br /&gt;
==Authentication flow==&lt;br /&gt;
[[File:00-general-http-authentication-flow.png|frameless|General HTTP authentication flow]]&lt;br /&gt;
&lt;br /&gt;
1. A client requests the server to access an authorized resource.&lt;br /&gt;
:Client is anything that requests a resource. Example: Browser, web service&lt;br /&gt;
:Server is an application that serves the client's request.&lt;br /&gt;
:Resource can be any data/information. Example: HTML document, media files&lt;br /&gt;
2. The server requests the client to authenticate first.&lt;br /&gt;
:The server responds to the client with a 401 (Unauthorized) response status and provides information on how to authenticate with a WWW-Authenticate response header containing at least one challenge.&lt;br /&gt;
3. The client prepares for the authentication.&lt;br /&gt;
:The client checks the response status code and understands he needs to authenticate first.&lt;br /&gt;
:Usually, the client presents a password prompt to the user to get the credentials.&lt;br /&gt;
:Some modern applications hide/prevents the default password prompt using client-side JavaScript and show a login form to provide a rich user experience.&lt;br /&gt;
:The client masks/transforms the credentials based on the HTTP authentication scheme it chose/programmed to.&lt;br /&gt;
4. The client sends the (processed)credentials to the server.&lt;br /&gt;
:The client then issues the request to the server with an Authorization request-header field with the HTTP authentication scheme being used and the masked credentials.&lt;br /&gt;
5. The server validates the received credentials.&lt;br /&gt;
:The validation process/algorithm depends on the HTTP authentication scheme being used.&lt;br /&gt;
6. The server informs the client about the authorization status.&lt;br /&gt;
:If the validation succeeds then the server checks if the authenticated entity has the privilege to access the resource&lt;br /&gt;
==Authentication schemes that are based on the general HTTP authentication framework==&lt;br /&gt;
#Basic [[http://www.iana.org/go/rfc7617 RFC7617]]&lt;br /&gt;
#Bearer[[http://www.iana.org/go/rfc6750 RFC6750]]&lt;br /&gt;
#Digest[[http://www.iana.org/go/rfc7616 RFC7616]]&lt;br /&gt;
#HOBA [[http://www.iana.org/go/rfc7486 RFC7486, Section 3]]&lt;br /&gt;
#Mutual [[http://www.iana.org/go/rfc8120 RFC8120]]&lt;br /&gt;
#Negotiate [[http://www.iana.org/go/rfc4559 RFC4559, Section 3]]&lt;br /&gt;
#OAuth [[http://www.iana.org/go/rfc7617 RFC5849, Section 3.5.1]]&lt;br /&gt;
#SCRAM-SHA-1 [[http://www.iana.org/go/rfc7804 RFC7804]]&lt;br /&gt;
#SCRAM-SHA-256 [[http://www.iana.org/go/rfc7804 RFC7804]]&lt;br /&gt;
#Vapid [[http://www.iana.org/go/rfc8292 RFC8292]]&lt;br /&gt;
==References==&lt;br /&gt;
[https://tools.ietf.org/html/rfc7235 RFC7235]&lt;br /&gt;
&lt;br /&gt;
[https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication MDN: The general HTTP authentication framework]&lt;br /&gt;
&lt;br /&gt;
[https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml IANA Authentication Scheme Registry]&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:00-general-http-authentication-flow.png&amp;diff=252125</id>
		<title>File:00-general-http-authentication-flow.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:00-general-http-authentication-flow.png&amp;diff=252125"/>
				<updated>2019-06-05T16:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Illustrates the main steps in a general HTTP authentication process.&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:HTTP_Authentication_Framework.jpg&amp;diff=243400</id>
		<title>File:HTTP Authentication Framework.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:HTTP_Authentication_Framework.jpg&amp;diff=243400"/>
				<updated>2018-09-14T11:11:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The general flow of HTTP authentication schemes&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243391</id>
		<title>Category:Web Application Authentication Schemes</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243391"/>
				<updated>2018-09-14T03:10:19Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category is used to mark articles that describe authentication schemes and frameworks.&lt;br /&gt;
&lt;br /&gt;
In authentication, one entity proves it is the one which it claims to be by demonstrating the knowledge of an agreed secret. It is different from ''identification'' in which an entity is identified but not verified. The entity in this context can be a person, a system or a service call.&lt;br /&gt;
&lt;br /&gt;
The secret can be one or more of the following. &lt;br /&gt;
* some secret that you know(e.g. password)&lt;br /&gt;
* something that only you have(e.g. a smart card)&lt;br /&gt;
* something you are(e.g. fingerprint) &lt;br /&gt;
* somewhere you are(particular IP address)&lt;br /&gt;
&lt;br /&gt;
Each of them has its strengths and weaknesses. So there is a question of what to choose. We have more questions.&lt;br /&gt;
* How to verify if an entity is already authenticated or not?&lt;br /&gt;
* How to inform an entity that it needs to authenticate first?&lt;br /&gt;
* How are credentials transferred from one to other?&lt;br /&gt;
* How are credentials verified?&lt;br /&gt;
* How to inform an entity that it is successfully authenticated?&lt;br /&gt;
* How can we avoid replay attacks?&lt;br /&gt;
* How to ensure that we don't expose the plain credentials?&lt;br /&gt;
* How do we achieve mutual authentication?&lt;br /&gt;
* Are we going to ask the user to have different credentials to each system in the enterprise?&lt;br /&gt;
* What if we need to scale up?&lt;br /&gt;
&lt;br /&gt;
An authentication scheme addresses such questions and provides an open standard to authenticate an entity.&lt;br /&gt;
&lt;br /&gt;
Time to time, authentication schemes were exploited, and new schemes evolved to address the security concerns. Some new schemes appeared to address the business requirements like scalability and single sign-on. Now, there are a lot of them. &lt;br /&gt;
&lt;br /&gt;
This category page contains pages related to various web application authentication schemes deployed so far.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243390</id>
		<title>Category:Web Application Authentication Schemes</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243390"/>
				<updated>2018-09-14T03:08:41Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: updated the description about the web application authentication schemes category page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category is used to mark articles that describe authentication schemes and frameworks.&lt;br /&gt;
&lt;br /&gt;
In authentication, one entity proves it is the one which it claims to be by demonstrating the knowledge of an agreed secret. It is different from ''identification'' in which an entity is identified but not verified. The entity in this context can be a person, a system or a service call.&lt;br /&gt;
&lt;br /&gt;
The secret can be one or more of the following. &lt;br /&gt;
* some secret that you know(e.g. password)&lt;br /&gt;
* something that only you have(e.g. a smart card)&lt;br /&gt;
* something you are(e.g. fingerprint) &lt;br /&gt;
* somewhere you are(particular IP address)&lt;br /&gt;
&lt;br /&gt;
Each of them has its strengths and weaknesses. So there is a question of what to choose. We have more questions.&lt;br /&gt;
* How to verify if an entity is already authenticated or not?&lt;br /&gt;
* How to inform an entity that it needs to authenticate first?&lt;br /&gt;
* How are credentials transferred from one to other?&lt;br /&gt;
* How are credentials verified?&lt;br /&gt;
* How to inform an entity that it is successfully authenticated?&lt;br /&gt;
* How can we avoid replay attacks?&lt;br /&gt;
* How to ensure that we don't expose the plain credentials?&lt;br /&gt;
* How do we achieve mutual authentication?&lt;br /&gt;
* Are we going to ask the user to have different credentials to each system in the enterprise?&lt;br /&gt;
* What if we need to scale up?&lt;br /&gt;
&lt;br /&gt;
An authentication scheme addresses such questions and acts as an open standard to authenticate an entity.&lt;br /&gt;
&lt;br /&gt;
Time to time, authentication schemes were exploited, and new schemes evolved to address the security concerns. Some new schemes appeared to address the business requirements like scalability and single sign-on. Now, there are a lot of them. &lt;br /&gt;
&lt;br /&gt;
This category page contains pages related to various web application authentication schemes deployed so far.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:Technology&amp;diff=243389</id>
		<title>Category:Technology</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:Technology&amp;diff=243389"/>
				<updated>2018-09-14T03:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: removed reference to authentication schemes category page from `Examples of Technologies` section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Social Media Links}}&lt;br /&gt;
&lt;br /&gt;
This is a parent category that is used to hold categories for various technologies and platforms commonly used by web applications. These subcategories are used to mark articles with any applicable technologies. These tags will help when searching for applicable articles in the OWASP wiki.&lt;br /&gt;
&lt;br /&gt;
==Examples of Technologies==&lt;br /&gt;
Technologies&lt;br /&gt;
*[[:Category:File Systems|File Systems]]&lt;br /&gt;
*[[:Category:IO|IO]]&lt;br /&gt;
*[[:Category:Database|Database]]&lt;br /&gt;
&lt;br /&gt;
Platforms/Languages&lt;br /&gt;
*[[:Category:Java|Java]]&lt;br /&gt;
*[[:Category:.NET|.NET]]&lt;br /&gt;
*[[:Category:PHP|PHP]]&lt;br /&gt;
*[[:Category:C|C,C++]]&lt;br /&gt;
&lt;br /&gt;
For example, an article on SQL injection in J2EE would be tagged with [[:Category:Database]] and [[:Category:Java]] as well as any other applicable categories like vulnerabilities and countermeasures.&lt;br /&gt;
&lt;br /&gt;
[[Category:Article Type]]&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243388</id>
		<title>Category:Web Application Authentication Schemes</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243388"/>
				<updated>2018-09-14T02:58:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category is used to mark articles that describe authentication schemes and frameworks.&lt;br /&gt;
&lt;br /&gt;
In authentication, one entity proves it is the one which it claims to be by demonstrating the knowledge of an agreed secret. It is different from ''identification'' in which an entity is identified but not verified. The entity in this context can be a person, a system or a service call.&lt;br /&gt;
&lt;br /&gt;
The secret can be one or more of the following. &lt;br /&gt;
* some secret that you know(e.g. password)&lt;br /&gt;
* something that only you have(e.g. a smart card)&lt;br /&gt;
* something you are(e.g. fingerprint) &lt;br /&gt;
* somewhere you are(particular IP address)&lt;br /&gt;
&lt;br /&gt;
Each of them has its strengths and weaknesses. So there is a question of what to choose. We have more questions.&lt;br /&gt;
* How to verify if an entity is already authenticated or not?&lt;br /&gt;
* How to inform an entity that it needs to authenticate first?&lt;br /&gt;
* How are credentials transferred from one to other?&lt;br /&gt;
* How are credentials verified?&lt;br /&gt;
* How to inform an entity that it is successfully authenticated?&lt;br /&gt;
* How can we avoid replay attacks?&lt;br /&gt;
* How to ensure that we don't expose the plain credentials?&lt;br /&gt;
* How do we achieve mutual authentication?&lt;br /&gt;
* Are we going to ask the user to have different credentials to each system in the enterprise?&lt;br /&gt;
* What if we need to scale up?&lt;br /&gt;
&lt;br /&gt;
An authentication scheme addresses such questions. Time to time authentication schemes were exploited, and new schemes evolved to address the security concerns. Some new schemes appeared to address the business requirements like scalability and single sign-on. Now, there are a lot of them. &lt;br /&gt;
&lt;br /&gt;
This category page contains pages related to authentication schemes and frameworks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243372</id>
		<title>Category:Web Application Authentication Schemes</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:Web_Application_Authentication_Schemes&amp;diff=243372"/>
				<updated>2018-09-13T19:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: added overview to the web application authentication schemes category page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
In authentication, one entity proves it is the one which it claims to be by demonstrating the knowledge of an agreed secret. It is different from ''identification'' in which an entity is identified but not verified. The entity in this context can be a person, a system or a service call.&lt;br /&gt;
&lt;br /&gt;
The secret can be one or more of the following. &lt;br /&gt;
* some secret that you know(e.g. password)&lt;br /&gt;
* something that only you have(e.g. a smart card)&lt;br /&gt;
* something you are(e.g. fingerprint) &lt;br /&gt;
* somewhere you are(particular IP address)&lt;br /&gt;
&lt;br /&gt;
Each of them has its strengths and weaknesses. So there is a question of what to choose. We have more questions.&lt;br /&gt;
* How to verify if an entity is already authenticated or not?&lt;br /&gt;
* How to inform an entity that it needs to authenticate first?&lt;br /&gt;
* How are credentials transferred from one to other?&lt;br /&gt;
* How are credentials verified?&lt;br /&gt;
* How to indicate successful authentication?&lt;br /&gt;
* How can we avoid replay attacks?&lt;br /&gt;
* How to ensure that we don't expose the plain credentials?&lt;br /&gt;
* How do we achieve mutual authentication?&lt;br /&gt;
* Are we going to ask the user to have different credentials to each system in the enterprise?&lt;br /&gt;
* What if we need to scale up?&lt;br /&gt;
&lt;br /&gt;
An authentication scheme addresses such questions. Time to time authentication schemes were exploited, and new schemes evolved to address the security concerns. Some new schemes appeared to address the business requirements like scalability and single sign-on. Now, there are a lot of them. Below you can find details about them. Some schemes are based on a certain framework. So we first describe the framework and then the schemes.&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:Technology&amp;diff=243371</id>
		<title>Category:Technology</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:Technology&amp;diff=243371"/>
				<updated>2018-09-13T19:20:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kajan: added a new category to index comprehensive list of web application authentication schemes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Social Media Links}}&lt;br /&gt;
&lt;br /&gt;
This is a parent category that is used to hold categories for various technologies and platforms commonly used by web applications. These subcategories are used to mark articles with any applicable technologies. These tags will help when searching for applicable articles in the OWASP wiki.&lt;br /&gt;
&lt;br /&gt;
==Examples of Technologies==&lt;br /&gt;
Technologies&lt;br /&gt;
*[[:Category:File Systems|File Systems]]&lt;br /&gt;
*[[:Category:IO|IO]]&lt;br /&gt;
*[[:Category:Database|Database]]&lt;br /&gt;
*[[:Category:Web Application Authentication Schemes|Web Application Authentication Schemes]]&lt;br /&gt;
&lt;br /&gt;
Platforms/Languages&lt;br /&gt;
*[[:Category:Java|Java]]&lt;br /&gt;
*[[:Category:.NET|.NET]]&lt;br /&gt;
*[[:Category:PHP|PHP]]&lt;br /&gt;
*[[:Category:C|C,C++]]&lt;br /&gt;
&lt;br /&gt;
For example, an article on SQL injection in J2EE would be tagged with [[:Category:Database]] and [[:Category:Java]] as well as any other applicable categories like vulnerabilities and countermeasures.&lt;br /&gt;
&lt;br /&gt;
[[Category:Article Type]]&lt;/div&gt;</summary>
		<author><name>Kajan</name></author>	</entry>

	</feed>