<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.armagetronad.org/index.php?action=history&amp;feed=atom&amp;title=Authentication_Groups_Draft</id>
	<title>Authentication Groups Draft - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.armagetronad.org/index.php?action=history&amp;feed=atom&amp;title=Authentication_Groups_Draft"/>
	<link rel="alternate" type="text/html" href="http://wiki.armagetronad.org/index.php?title=Authentication_Groups_Draft&amp;action=history"/>
	<updated>2026-11-05T01:47:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>http://wiki.armagetronad.org/index.php?title=Authentication_Groups_Draft&amp;diff=56484&amp;oldid=prev</id>
		<title>Cadillac at 01:05, 23 August 2021</title>
		<link rel="alternate" type="text/html" href="http://wiki.armagetronad.org/index.php?title=Authentication_Groups_Draft&amp;diff=56484&amp;oldid=prev"/>
		<updated>2021-08-23T01:05:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:05, 22 August 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l81&quot;&gt;Line 81:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 81:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The server would print the message to the client.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The server would print the message to the client.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Development]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cadillac</name></author>
	</entry>
	<entry>
		<id>http://wiki.armagetronad.org/index.php?title=Authentication_Groups_Draft&amp;diff=38555&amp;oldid=prev</id>
		<title>Epsy: Added a clause on how the server should handle refreshes</title>
		<link rel="alternate" type="text/html" href="http://wiki.armagetronad.org/index.php?title=Authentication_Groups_Draft&amp;diff=38555&amp;oldid=prev"/>
		<updated>2012-04-02T00:07:28Z</updated>

		<summary type="html">&lt;p&gt;Added a clause on how the server should handle refreshes&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:07, 1 April 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l67&quot;&gt;Line 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  /armaauth/0.1/?query=refresh&amp;amp;prefer=tournaments/ladle/servers/myserver&amp;amp;users=john&amp;amp;users=may&amp;amp;users=jack&amp;amp;time=1333333333&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  /armaauth/0.1/?query=refresh&amp;amp;prefer=tournaments/ladle/servers/myserver&amp;amp;users=john&amp;amp;users=may&amp;amp;users=jack&amp;amp;time=1333333333&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;On the server end, the server should change the players&#039; GIDs accordingly, elevating players where relevant.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The server could initiate such a refresh at the command of a server admin, or before every new warmup(side note: the warmup system allows for multiple matches to be played simultaneously). All priviledges could also be first revoked at first on such an occasion, for instance for resetting temporary captains.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Web Authentication==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Web Authentication==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Epsy</name></author>
	</entry>
	<entry>
		<id>http://wiki.armagetronad.org/index.php?title=Authentication_Groups_Draft&amp;diff=38554&amp;oldid=prev</id>
		<title>Epsy: Created</title>
		<link rel="alternate" type="text/html" href="http://wiki.armagetronad.org/index.php?title=Authentication_Groups_Draft&amp;diff=38554&amp;oldid=prev"/>
		<updated>2012-04-01T23:50:07Z</updated>

		<summary type="html">&lt;p&gt;Created&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Things that were bad==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Group&amp;quot; authentication (subdirectories):&lt;br /&gt;
** Terrible usability: One must specifically authenticate to the subgroup for it to work, or the authority has to do arbitrary guesswork.&lt;br /&gt;
*** ie. &amp;lt;code&amp;gt;/login user@authority/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
*** As for authority guesswork, they can currently guess from the server&amp;#039;s IP. The remote port data at this point is irrelevant, and the IP can be hidden by a proxy authority.&lt;br /&gt;
** Inability to express multiple groups&lt;br /&gt;
* Web Auth&lt;br /&gt;
** Needs DB access on the consumer end. Could be avoided&lt;br /&gt;
** Disabled by default in the reference implementations. Next to no adoption on the authority end.&lt;br /&gt;
** Only interfaces with websites specifically designed for it (read: none)&lt;br /&gt;
&lt;br /&gt;
==Improvements that can be conducted==&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Group&amp;quot; authentication===&lt;br /&gt;
&lt;br /&gt;
====Group preference====&lt;br /&gt;
&lt;br /&gt;
The server could take a list of preferred authorities/groups and forward it to the authorities. The setting would be optional.&lt;br /&gt;
&lt;br /&gt;
 PREFER_AUTHORITIES authority...&lt;br /&gt;
 PREFER_AUTHORITIES ct/senior x/ctseniors x/ctoverseniors&lt;br /&gt;
&lt;br /&gt;
When authentifying someone, the server can send the applicable authorities(same host) with the check requestas a &amp;lt;code&amp;gt;prefer&amp;lt;/code&amp;gt; parameter. For instance, when querying &amp;lt;code&amp;gt;x.authentication.armagetronad.net&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 /armaauth/0.1/?query=check&amp;amp;method=md5user=john&amp;amp;hash=abcd&amp;amp;salt=efgh&amp;amp;prefer=ctseniors&amp;amp;prefer=ctoverseniors&lt;br /&gt;
&lt;br /&gt;
The authority respond with the first group in the list that the user is allowed into.&lt;br /&gt;
&lt;br /&gt;
Additionally, the server can provide a setting that would automatically provide group preferences based on &amp;quot;best&amp;quot; AUTHORITY_LEVEL settings. Similar to &amp;lt;code&amp;gt;/listadmins&amp;lt;/code&amp;gt;, this poses a moderate security threat, advertising what authorities grant high access, so this should be disabled by default.&lt;br /&gt;
&lt;br /&gt;
 PREFER_AUTHORITIES_AUTO 1&lt;br /&gt;
 AUTHORITY_LEVEL ct/senior 2&lt;br /&gt;
 AUTHORITY_LEVEL x/ctsenior 2&lt;br /&gt;
 AUTHORITY_LEVEL x/ctoversenior 1&lt;br /&gt;
&lt;br /&gt;
 /armaauth/0.1/?query=check&amp;amp;method=md5&amp;amp;user=johnhash=abcd&amp;amp;salt=efgh&amp;amp;prefer=ctoverseniors&amp;amp;prefer=ctseniors&lt;br /&gt;
&lt;br /&gt;
An authority could &amp;quot;abuse&amp;quot; this system to voluntarily return different authorities than those requested. This could be used to create server tokens. For example:&lt;br /&gt;
&lt;br /&gt;
 PREFER_AUTHORITIES x/tournaments/ladle/servers/myserver&lt;br /&gt;
 AUTHORITY_LEVEL x/tournaments/players/playing 8&lt;br /&gt;
 AUTHORITY_LEVEL x/tournaments/players/captain 7&lt;br /&gt;
&lt;br /&gt;
If it were the time for the finals, the authority could identify &amp;quot;myserver&amp;quot; as referring to the server used in the finals, and identify each player as playing or captain or neither, at login time.&lt;br /&gt;
&lt;br /&gt;
===Updating preferences===&lt;br /&gt;
&lt;br /&gt;
If the preferences have changed while people are in the server, it might be in the best interest of everyone to update the current players&amp;#039; status. Of course, everyone could log out and back in, but that&amp;#039;s very impractical.&lt;br /&gt;
&lt;br /&gt;
I suggest instead a mass update mechanism, by sending a bulk query to each authority. For instance:&lt;br /&gt;
&lt;br /&gt;
 /armaauth/0.1/?query=refresh&amp;amp;prefer=tournaments/ladle/servers/myserver&amp;amp;users=john&amp;amp;users=may&amp;amp;users=jack&lt;br /&gt;
&lt;br /&gt;
The server may merge all queries to one per authentication host. The authority responds:&lt;br /&gt;
&lt;br /&gt;
 USER john@x/tournaments/players/playing&lt;br /&gt;
 USER may@x/tournaments/players/captain&lt;br /&gt;
 USER jack@x/tournaments/players&lt;br /&gt;
&lt;br /&gt;
In case a user is not found, the authority should replace the corresponding USER line with:&lt;br /&gt;
&lt;br /&gt;
 USER_NOT_FOUND username&lt;br /&gt;
&lt;br /&gt;
This system can be otherwise used to check player GIDs. If it matters, a client should be able to override the server time like such:&lt;br /&gt;
&lt;br /&gt;
 /armaauth/0.1/?query=refresh&amp;amp;prefer=tournaments/ladle/servers/myserver&amp;amp;users=john&amp;amp;users=may&amp;amp;users=jack&amp;amp;time=1333333333&lt;br /&gt;
&lt;br /&gt;
==Web Authentication==&lt;br /&gt;
&lt;br /&gt;
===OpenID===&lt;br /&gt;
&lt;br /&gt;
OpenID would standardize the process into something that has software already available for it. This would result in making it an easier process to convert software to consume OpenIDs. It would be signaled as &amp;quot;openid&amp;quot; in the METHODS response. More info TBD.&lt;br /&gt;
&lt;br /&gt;
==Actually use MESSAGE==&lt;br /&gt;
&lt;br /&gt;
The server would print the message to the client.&lt;/div&gt;</summary>
		<author><name>Epsy</name></author>
	</entry>
</feed>