<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Attending</div><div class="">Ivan, Heather, Roland, Ed, Hannah, Alex, Scott, Christos</div><div class=""><br class=""></div><div class=""><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">Notes:</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">0. Agenda bash</span></div><div class=""><br class=""></div><div class="">1. Hackathon planning -<a href="https://wiki.refeds.org/pages/viewpage.action?pageId=44959235" class=""> https://wiki.refeds.org/pages/viewpage.action?pageId=44959235</a>
</div><div class="">Currently about 24 people signed up; no sense of distribution. </div><div class=""><font face="Helvetica" class="">Maybe have some “how to” stations to help people learn how to connect, how the various software stacks work. </font></div><div class=""><font face="Helvetica" class="">We do know there will be some people there specifically for <a href="http://thiss.io" class="">thiss.io</a>, some for OIDC federation, some SimpleSAMLphp</font></div><div class=""><font face="Helvetica" class="">For Satosa, should have a set up with a ready-made Satosa deployed, then look into how to configure microservices, and develop new microservices. Also do something internal data for Satosa. On the list, one suggestion was to see that the MFA profile passed from the front end to the back end. That might be a good project. </font></div><div class=""><font face="Helvetica" class="">Ivan is still planning to work on some machine images this week and other items in prep for the Hackathon. </font></div><div class=""><font face="Helvetica" class="">If anyone else has specific ideas of things to share or things they plan to prepare, please let Ivan know.</font></div><div class=""><font face="Helvetica" class="">There may be some work on pySAML2 as part of the integration with Satosa (see in particular </font>
<a href="https://github.com/IdentityPython/pysaml2/issues/586" style="font-stretch: normal; font-size: 13px; line-height: normal; color: rgb(68, 79, 94);" class="">https://github.com/IdentityPython/pysaml2/issues/586</a><font face="Helvetica" class="">)</font></div><div class=""><font face="Helvetica" class=""><br class=""></font></div><div class=""><font face="Helvetica" class="">For the OIDC Federation, there will be a couple of folks doing some java programming, and hopefully the SimpleSAMLphp will join. Roland will have a server set up to work against. Also has a few people interested in writing mobile clients, though they are not going to be at the hackathon. Roland will also set up a server for them to test against on the web. Giuseppe de Marco is working on an OIDC IdP implementation based on Django, though he will not be at the hackathon. </font></div><div class=""><br class=""></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">2. GitHub review</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">    a. pySAML2 - </span><a href="https://github.com/IdentityPython/pysaml2" style="background-color: rgba(255, 255, 255, 0);" class="">https://github.com/IdentityPython/pysaml2</a></div><div class=""><br class=""></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">    b. Satosa - </span><a href="https://github.com/IdentityPython/SATOSA" style="background-color: rgba(255, 255, 255, 0);" class="">https://github.com/IdentityPython/SATOSA</a></div><ul class=""><li class="">
<a href="https://github.com/IdentityPython/SATOSA/pull/252" style="font-stretch: normal; font-size: 13px; line-height: normal; color: rgb(68, 79, 94);" class="">https://github.com/IdentityPython/SATOSA/pull/252</a> - (Scott’s PR) Doing things with LDAP. Are just about at the point that this can be merged. Ivan suggests that we need to normalize the attributes received from LDAP, which means removing the options part from the attributes names and then map them to other attributes. Scott notes that the attribute options need to remain; sometimes the attributes options are enumerated, sometimes they aren’t, and how they are mapped will vary (but they must be mapped). That makes this all fine, then, and the PR can be merged.</li><li class="">
<a href="https://github.com/IdentityPython/SATOSA/pull/275" style="font-stretch: normal; font-size: 13px; line-height: normal; color: rgb(68, 79, 94);" class="">https://github.com/IdentityPython/SATOSA/pull/275</a> - (Hannah’s PR) converting logging to something different, to allow outputting of structured information. Ivan will be merging changes as they come in. When we’re done, we will look at exactly what we log, whether they are the right things to capture and if they help us enough in knowing what’s happening within the service.</li><li class="">While Ivan was on holiday, discussed how to maintain state between back ends and front ends (use cases, not solutions). Goal is to have access to the configuration of something, like a microservice.  Those values could then be used. This might be best dealt with by using handles. We have multiple back ends and front ends, and if we say we want to have access to those, there needs to be specific coupling. We will need to mimic interfaces within the backend (which they don’t otherwise have). Better to communicate data than to have functions be passed around, because the data can be served and be agnostic to the things consuming them. They become the API. Given this data needs to be communicated between requests, right now that means info has to be pushed into the state cookie. Worried about the size of that growing over time, Need alternative ways to keep state. If we use something like the web storage or the index db, then much of what we need to transfer can be eliminated. If we could have context around configuration that could be serialized, we could keep the state of that. Every time it is needed, it could be rebuilt using the serialized state. (This would be a future architecture possibility)</li><li class="">
<a href="https://github.com/IdentityPython/SATOSA/pull/275" style="font-stretch: normal; font-size: 13px; line-height: normal; color: rgb(68, 79, 94);" class="">https://github.com/IdentityPython/SATOSA/pull/275</a></li><li class="">
<a href="https://github.com/IdentityPython/SATOSA/pull/273" style="font-stretch: normal; font-size: 13px; line-height: normal; color: rgb(68, 79, 94);" class="">https://github.com/IdentityPython/SATOSA/pull/273</a> - before merging this, note there are many common things between the way the OIDC services do things, and perhaps we should have a base for the services. </li></ul><div class=""><br class=""></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">    c. pyFF - </span><a href="https://github.com/IdentityPython/pyFF" style="background-color: rgba(255, 255, 255, 0);" class="">https://github.com/IdentityPython/pyFF</a></div><div class="">        i. pyFF metadata downloads
</div><div class=""><br class=""></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">    d. …</span></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">3. AOB</span></div></div><div class="">Neils van Dijk reported a security issue. </div><div class=""><br class="webkit-block-placeholder"></div><div class="">The issue is with the handling of the redirect_uri. When a request is received, SatoSa validates if the redirect_uri is valid semantically and is allowed as defined in a client database. </div><div class="">If that is not the case, SaToSa shows an error page for example "Something went wrong: Redirect uri 'foobar' is not registered" </div><div class=""><br class="webkit-block-placeholder"></div><div class=""><br class="webkit-block-placeholder"></div><div class="">However, in case the parameter contains e.g. javascript like redirect_uri%3Cscript%3Ealert(%22hi%20SaToSa%22)%3B%3C%2Fscript%3E SaToSa <span style="font-style: italic;" class="">does</span> detect correctly this is not a correct URI, but then continues to present the javascript on the error page <span style="font-style: italic;" class="">unmodified</span>, hence executing the javascript. </div><div class="">Any other error in the url paramaters passed between rp and op should normally result in a response back to the RP without any user screens involved, however as per <a href="https://openid.net/specs/openid-connect-core-1_0.html#AuthError" class="">https://openid.net/specs/openid-connect-core-1_0.html#AuthError</a>, an issue with the redirect_uri is the sole exception :(</div><div style="margin-top: 1em; margin-bottom: 1em;" class="">I think SaToSa should always escape the html characters in the error message and perhaps also detect e.g. the presence of a bracket as an illegal character.
</div><div style="margin-top: 1em; margin-bottom: 1em;" class=""><br class=""></div><div style="margin-top: 1em; margin-bottom: 1em;" class="">Another security issue: Scott and Ivan have discussed that the default for the SAML backend will consume the attributes without checking the scope. This might best be part of the core in pySAML2, and keeps with the most conservative defaults as possible. </div></body></html>