Hej,
ursäkta det sena svaret, nu är jag tillbaka från semestern, se nedan för svar om OpenID
Connect:
· Flöden: just nu stödjer se-leg flera flöden (code, implicit och hybrid). Vi
kommer nog hålla oss till Authorization Code Flow framöver (främst p.g.a. det senaste
säkerhetsarbetet för OpenID Connect), så det är vad som bör implementeras för att
interagera med se-leg OP’n.
· response_mode: din analys är helt korrekt, response_mode får inte användas på
det sätt vi gjort. ‘Security Consideration’-sektionen i
http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#Security beskriver
säkerhetsskälen för att inte använda query-encoding vid annat än code-flow med
konfidentiella klienter. Jag ska uppdatera se-leg OP’n till att vara mer strikt, tack för
rapporten!
Vänliga hälsningar,
---
Rebecka Gulliksson
ICT Services and System Development (ITS)
Umeå University
SE-901 87 Umeå, Sweden
rebecka.gulliksson at umu.se
www.its.umu.se
From: se-leg-ref <se-leg-ref-bounces at lists.sunet.se> on behalf of Anders Gembäck
<anders at diglias.com>
Date: Tuesday 2 August 2016 15:25
To: "se-leg-ref at lists.sunet.se" <se-leg-ref at lists.sunet.se>
Subject: Re: [Se-leg-ref] Flödet i detalj
Hej,
Vi har kollat mer och har lite funderingar/frågor/diskusionspunkter.
/Anders
OpenID Connect implementationen
Detta kapitel innehåller några funderingar till Open ID connect i se-leg. Eftersom jag
inte kunnat köra med min egen RP än så är vissa av punkterna suspects och samtliga punkter
är diskussionspunkter, inte korrigeringar eller buggrapporter.
Flow
Enligt intiala dokumentationen så är det Implicit flow som ska implementeras, men eftersom
response_mode är med måste det vara Autorization Code Flow, eftersom den bara får vara med
i det flödet.
Auth req
Detta exempel har jag tagit från en logfil hos docker-maskinen.
{
"claims": {
"userinfo": {
"identity": null
}
},
"client_id": "client1",
"nonce": "d5c36519-0253-4f31-b999-bb7ea5191293",
"redirect_uri": "http://rp:5000/authorization-response",
"response_mode": "query"
"response_type": "code id_token token"
"scope": [
"openid"
],
"state": "a2a89f4c-0271-465b-bca6-4bc1a95e1823"
}
Kommentarer
Vissa av delarna stämmer inte överens med specifikationen enligt min tolkning.
repsonse_mode (query)
Eftersom query är default (?) är denna NOT RECOMMENDED
response_type
Enligt
http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#Combinati…
får inte “code id_token token” använda sig av query response_mode.
Successful Authentication Response (3.1.2.5)
Det står att parametrarna MÅSTE returneras som query parameterar. Fast i se-leg flödet är
det väl här som OP’s backend anropas RP’s backend med code och state? Har jag
missuppfattat flödet eller specen (det kanske svaras i mailet som svarar på mina första
frågor)?
mån 20 juni 2016 kl 07:55 skrev Anders Gembäck <anders at diglias.com<mailto:anders
at diglias.com>>:
Hej,
För att helt förstå flödet skulle vi vilja ha:
* En mer uppdaterad bild av denna:
https://github.com/SUNET/se-leg-docs/blob/master/proofing-skiss.png
* Ett sekvensdiagram med alla steg.
* En koppling mellan sekvensdiagrammet, den uppdaterade bilden och OpenID Connect flödet
enligt specifikationen, gärna med exempel.
mvh
Anders Gembäck