<div class="simplebox">
<mark><a href="http://home.kairo.at/">Robert Kaiser</a></mark>,
"KaiRo" <kairo@kairo.at>
-<br><small>Mozilla Rep</small>
+<br><small>Mozilla Rep, Website developer & Project Manager</small>
</div>
<div class="captionedbox">
<p class="captionedbox-caption">Slides:
- <a href="https://slides.kairo.at/fosdem2016/">https://slides.kairo.at/fosdem2017/</a></p>
+ <a href="https://slides.kairo.at/fosdem2017/">https://slides.kairo.at/fosdem2017/</a></p>
<div class="captionedbox-content small">
<ul class="small">
<li>Created for
- <a href="http://fosdem.org/2016/schedule/track/mozilla/">Mozilla
+ <a href="http://fosdem.org/2017/schedule/track/mozilla/">Mozilla
Developer Room</a> at <a href="http://www.fosdem.org/">FOSDEM 2017</a> in
Brussels.</li>
<li>Written in HTML 5 with CSS 3 and JavaScript.</li>
<li><a href="#toc">Contents</a></li>
<li><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/at/"><img
alt="Licensed under CC-BY-SA," style="border-width:0;vertical-align:bottom;"
- src="cc-by-sa-80x15.png"></a> 01/2017 Robert Kaiser.</li>
+ src="cc-by-sa-80x15.png"></a> 01-02/2017 Robert Kaiser.</li>
</ul>
</div>
</div>
</article>
<article id="persona" title="What's Persona?">
-<h1>What <s>is</s>was Persona?</h1>
+<h1>What <s>is</s>was <mark>Persona</mark>?</h1>
<div class="simplebox">
-<p>Login/Identity solution by Mozilla, 2011-2016</p>
+<img src="persona-logo-wordmark.png" alt="Mozilla Persona" class="slidepic">
+<p>Login/Identity solution by Mozilla, <mark>2011-2016</mark></p>
<ul>
<li>Decentralized / Federated (with Fallback)</li>
<li>Multiple identities</li>
<li>Permission-less</li>
</ul>
<p><a href="http://feeding.cloud.geek.nz/posts/persona-guiding-principles/">See
-blog post by François Marier</a></p>
+blog post by François Marier</a> (feeding.cloud.geek.nz)</p>
</div>
</article>
<h1>Needs of a Small Website</h1>
<div class="simplebox">
+<img src="enter_access_code.jpg" alt="Enter Access Code" class="slidepic">
<ul>
- <li>Easy to implement</li>
- <li>Trusted identification</li>
- <li>Avoid dealing with how to secure passwords</li>
- <li>No lock-in (identification via email?)</li>
- <li>Privacy (not telling every login attempt to a big company)</li>
+ <li><mark>Easy</mark> to implement</li>
+ <li><mark>Trusted</mark> identification</li>
+ <li>Avoid dealing with how to <mark>secure passwords</mark></li>
+ <li><mark>No lock-in</mark> (identification via email?)</li>
+ <li><mark>Privacy</mark> (not telling every login attempt to a big company)</li>
</ul>
</div>
</article>
<h1>Local vs. External Login</h1>
<div class="simplebox">
+<img src="access_denied.jpg" alt="Access Denied" class="slidepic">
<ul>
- <li>Local: Need to secure passwords</li>
- <li>Local: Sounds easy to implement, complications in details</li>
+ <li>Local: Sounds easy to implement, <mark>complications</mark> in details</li>
<li>Local: Can always be trusted</li>
- <li>External: Potential for lock-in</li>
- <li>External: Potential privacy issues</li>
+ <li>Local: Need to secure passwords</li>
+ <li>External: Potential for <mark>lock-in</mark></li>
+ <li>External: Potential <mark>privacy issues</mark></li>
<li>External: Implementation difficulty depends on API</li>
</ul>
</div>
<h1>External Alternatives</h1>
<div class="simplebox">
+<img src="login_icons.png" alt="Login icons" class="slidepic">
<ul>
<li><s>Mozilla Persona</s></li>
<li><s>Firefox Accounts</s></li>
- <li>Facebook, Google, GitHub</li>
- <li>Other OAuth2 providers</li>
- <li>OpenID Connect (OIDC) providers (based on OAuth2)</li>
+ <li>Facebook, Google, GitHub, ...</li>
+ <li>Other <mark>OAuth2</mark> providers</li>
+ <li><mark>OpenID Connect (OIDC)</mark> providers (based on OAuth2)</li>
<li>Other/older providers/standards (OAuth1, ...)</li>
<li>Intermediates, e.g. Auth0</li>
</ul>
<h1>Interlude: A Future Alternative</h1>
<div class="simplebox">
-<p><a href="https://portier.github.io/">Portier</a> is a new in-development alternative</p>
+<img src="autodestruct_deactivated.jpg" alt="Auto Destruct Deactivated" class="slidepic">
+<p><mark><a href="https://portier.github.io/">Portier</a></mark> is a new in-development alternative</p>
<ul>
<li>Email authentication</li>
<li>Decentralized (fallback to passwordless email auth)</li>
<li>Speaking OIDC to client and "Brokers"</li>
<li>"Spiritual successor to Mozilla Persona"</li>
- <li>Still in development ("early beta")</li>
+ <li>Still in development ("early beta"): <a href="https://portier.github.io/">portier.github.io</a></li>
</ul>
</div>
</article>
<h1>Self-Hosted "External"</h1>
<div class="simplebox">
+<img src="oauth2_openid.png" alt="OAuth2" class="slidepic">
<ul>
- <li>Full control over login stack</li>
+ <li><mark>Full control</mark> over login stack</li>
<li>Password security isolated from website code</li>
<li>Management of multiple identities possible</li>
- <li>Privacy and trust are no issues</li>
- <li>When using standard API, possibility for being switched out later</li>
+ <li><mark>Privacy and trust</mark> are no issues</li>
+ <li>When using <mark>standard API</mark>, possibility for being switched out later</li>
<li>Still needing to secure properly</li>
</ul>
</div>
<h1>The PHP Authserver</h1>
<div class="simplebox">
+<img src="kairo_at_auth.png" alt="KaiRo.at Auth" class="slidepic">
<ul>
- <li>OAuth2 API (potential extension to OIDC later), using <a href="http://bshaffer.github.io/oauth2-server-php-docs/">oauth2-server-php</a></li>
- <li>Password storage with password_hash (currently bcrypt) + nonce, auto-upgrade on login</li>
- <li>Relatively easy to install on Linux with Apache + PHP5/PHP7 + MySQL (Other DBs should be easy to support)</li>
+ <li><mark>OAuth2 API</mark> (potential extension to OIDC later), using <a href="http://bshaffer.github.io/oauth2-server-php-docs/">oauth2-server-php</a></li>
+ <li>Password storage with <mark>password_hash</mark> (currently bcrypt) + nonce, auto-upgrade on login</li>
+ <li>Relatively easy to install on "<mark>LAMP</mark>" (Linux with Apache + MySQL + PHP5/PHP7)</li>
<li><a href="http://www.doctrine-project.org/projects/dbal.html">Doctrine DBAL</a> for DB abstraction,
<a href="https://github.com/KaiRo-at/php-utility-classes">php-utility-classes</a> for email and DOM document abstraction</li>
<li>Skinnable to brand installation to fit operator</a>
<article id="status" title="Current Status">
<h1>Current Status</h1>
+
+<div class="simplebox">
<ul>
- <li>Only Authorization Code flow supported right now, oauth2-server-php can do Client Credentials as well as OIDC, should not be too hard to add.</li>
- <li>Tested with Apache and MySQL for now, other web and DB servers should be possible easily.</li>
- <li>Rudimentary documentation exists in the main README.</li>
+ <li>Only <mark>Authorization Code</mark> flow supported right now, oauth2-server-php can do Client Credentials as well as OIDC, should not be too hard to add.</li>
+ <li>Tested with <mark>Apache and MySQL</mark> for now, other web and DB servers should be possible easily.</li>
+ <li>Rudimentary documentation exists in the main <mark>README</mark>.</li>
<li>Languages supported are US English (default) and German, detected via Accept-Language sent by browser.</li>
<li>Testing is done by running logins with KaiRo's websites (2 different client implementations).</li>
+ <li>Special Thanks to Christoph Zauner for doing a review that didn't find any actual security issues (but some minor comments).</li>
<li><mark>Open Source at <a href="https://github.com/KaiRo-at/authserver">github.com/KaiRo-at/authserver</a></mark>, under MPL2 - <mark>released TODAY</mark>!</li>
</ul>
-<div class="simplebox">
-
</div>
</article>
<h1>Help Needed</h1>
<div class="simplebox">
+<img src="generic_auth.png" alt="KaiRo.at Auth" class="slidepic">
<ul>
- <li>Implementation of OIDC and perhaps Client Credentials flows.</li>
- <li>Setting up a test suite and infrastructure.</li>
- <li>Writing more complete documentation.</li>
- <li>More languages?</li>
+ <li>Implementation of <mark>OIDC</mark> and perhaps Client Credentials flows.</li>
+ <li>Setting up a <mark>test</mark> suite and infrastructure.</li>
+ <li>Writing more complete <mark>documentation</mark>.</li>
+ <li>More UI languages?</li>
<li>More installations?</li>
- <li>Your ideas and pull requests!</li>
+ <li><mark>Your ideas and pull requests!</mark></li>
</ul>
</div>
</article>
<article id="end" title="The End">
-<div class="simplebox">
-<h1 class="cent" style="position: relative; z-index: 3; font-size: 2.5em;">Questions?</h1>
-<h2 class="cent" style="position: relative; margin-top: 3rem; z-index: 3; font-size: 2em;"><a href="https://github.com/KaiRo-at/authserver">github.com/KaiRo-at/authserver</a></h2>
-<img src="autodestruct_deactivated.jpg" class="sshot"
- style="width: 100%; margin-top: -7.5em; position: relative; z-index: 1;"
- alt="Auto Destruct Deactivated">
+<div class="simplebox endslidecontainer">
+<h1 class="cent endslidetext">Questions?</h1>
+<h2 class="cent endslidetext"><a href="https://github.com/KaiRo-at/authserver">github.com/KaiRo-at/authserver</a></h2>
+<h3 class="cent endslidetext">kairo@kairo.at,<br><a href="https://mozillians.org/en-US/u/KaiRo/">mozillians.org/u/KaiRo/</a></h3>
+<img src="access_enabled.jpg" class="sshot endslidepic" alt="Access Enabled">
</div>
</article>