Hej igen,
Bra invändning Rebecka, vi håller med, det höll inte riktigt som vi ritade
det. Vi ville inte ändra mer än nödvändigt i er lösning men det blev inte
ett resultat som kan sägas följa specen. Och vi håller 100% med er om att
det behöver bli en lösning som följer spec, annars finns det ju ingen poäng
med att basera sig på en standard öht.
Vi tycker er lösning på det stora hela känns bra. Vi har dock fortfarande
en "gut feeling" om att det föreslagna sättet att skicka responset inte är
best practice, kanske t.o.m. fel. Vi vill också poängtera att vi inte ältar
det här för att djävlas utan för att vi, precis som ni, är måna om att
komma fram till bästa möjliga lösning.
Så vi gör ett nytt försök: OIDC bygger ju på OAuth2. Vår tolkning är att
tillämpliga skall-krav i OAuth2 gäller, så länge inte OIDC "overridar" det.
Med det sagt hävdar vi att det inte är OK att utesluta user-agent när man
skickar AuthenticationRequest och AuthenticationResponse. Se kap 3 (översta
stycket med punktlistorna) i OAuth2 (
https://tools.ietf.org/html/rfc6749#section-3) Man kan också läsa kap 1.7
i samma spec för en nyansering av det (
https://tools.ietf.org/html/rfc6749#section-1.7) Nyckelorden är "via the
user-agent". Det finns alltså t.ex. en anledning till att det heter
"redirect_uri" och inte "response_uri". Vi känner inte till att OIDC
(eller
OAuth2) någonstans lättar på det kravet, gör ni?
Vi har ritat en ny skiss som vi bifogat. Notera där att vi använder oss av
noncet på det sätt ni föreslog, men som vi hade en invändning mot. Här blev
det tvunget att göra på ert sätt och vår invändning var mer av karaktären
"om det går att undvika" snarare än "absolut inte!!", och i det läget
kändes response-skickandet mycket mer angeläget.
Genom att ta med user-agent i skickandet av AuthenticationRequest och
AuthenticationResponse så försvinner per automatik den delen i lösningen
som vår "gut feeling" har vänt sig emot. Men, vi känner också att ni kanske
har uteslutit user-agent av en bra anledning och att vi inte har förstått
hela use-caset? Om så är fallet får ni gärna förklara så att vi får hela
bilden klar för oss.
Mvh
/Diglias
fre 30 sep. 2016 kl 18:47 skrev Rebecka Gulliksson <
rebecka.gulliksson at umu.se>:
Hej igen,
Jag är lite osäker på hur du menar med symmetrisk vs. asymmetrisk i det
här fallet.
Som jag ser det så har vi bara tagit bort mellanhanden (användarens
webbläsare), och inte vänt på flödet.
Vi har valt att implementera ett flöde som så långt som möjligt följer det
vanligaste OpenID Connect flödet.
Detta har vi valt eftersom de inom den arbetsgruppen redan genomfört ett
gediget säkerhetsarbete (som dessutom förbättrats efter att externa
forskargrupper studerat protokollet närmare).
Förutom säkerhet är det som tidigare nämnts en fråga av att försöka få en
så standardiserad lösning som möjligt.
Jag förstår er synpunkt om att vilja undvika en server för RP’n, men
samtidigt ser jag inte hur det är möjligt att ta bort användandet av
redirect_uri utan att göra ett stort avsteg från OIDC och hamna i en helt
custom lösning.
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
Magnus Hoflin <magnus at diglias.com>
*Date: *Friday 30 September 2016 13:38
*To: *"se-leg-ref at lists.sunet.se" <se-leg-ref at lists.sunet.se>
*Subject: *Re: [Se-leg-ref] Kommentarer på uppdaterad dokumentation
Hej igen,
Johan/Rebecka: bra kommentar att identifieringen kanske dröjer och att det
är anledningen att ni har valt att göra som ni gör.
Att OIDC är asynkront, och att HTTP är synkront, och hur de mappas till
varandra är vi naturligtvis på det klara med. Men på en högre nivå är OIDC
normalt ändå "symmetriskt". Problemet som vi ser det är att ni i steg 14
vänder på det och låter OPn agera HTTP-requestor, och gör lösningen
asymmetrisk, och att det är någonting man vill undvika i den här typen av
lösningar.
Enklare lösningar som är symmetriska är enklare att följa, bygga och
underhålla, det är därför vi fortsätter argumentera. Bifogat finns ett
förslag på en sån symmetrisk lösning, som bara är ett par justeringar på
ert förslag. Kontentan är att i valet mellan:
- att undvika pollning RP->OP och
- att undvika att öppna upp en server hos RPn
så väljer vi att undvika att öppna upp en server hos RPn, alla dar i
veckan. Men det vore förstås intressant att höra vad de andra IdPerna säger?
(Och som sagt tidigare, vi anser att vårt förslag i allra högsta grad är i
linje med specen. Vi kan argumentera mer för det om ni vill.)
Mvh
/Anders och Magnus
--
Magnus Hoflin
Co-founder, CTO
+46 709-27 83 28
magnus at
diglias.com
*Diglias*
J A Pripps gata 2
421 32 Västra Frölunda
www.diglias.com