<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>
<div style="font-family: Consolas, monospace; font-size: 12px;">Hi!</div>
<div style="font-family: Consolas, monospace; font-size: 12px;"><br>
</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">Now that IIW is over I would like to bring up my thoughts regarding the</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">session we had with John regarding the discovery service issue.</div>
<div style="font-family: Consolas, monospace; font-size: 12px;"><br>
</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">If I am the 'bad' discovery service provider I can fake all values within</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">the discovery response. Except for the /token endpoint. That has to point</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">to my system in order for me to receive the authorization_code and client</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">credentials.</div>
<div style="font-family: Consolas, monospace; font-size: 12px;"><br>
</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">Therefore I believe there are two solutions:</div>
<div style="font-family: Consolas, monospace; font-size: 12px;"><br>
</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">* the discovery response to the client has to include a secret which has to be included</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">in the initial /authorize request. The authorization server validates the</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">value and fails the request if it is invalid. This of course has the</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">drawback that the authorization server has to keep state. As a server guy</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">I would not like to support this flow</div>
<div style="font-family: Consolas, monospace; font-size: 12px;"><br>
</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">* The better solution I see, and as I mentioned during the discussion, is</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">that the client should include the target /token endpoint as an additional</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">request parameter for the initial /authorize request. The authorization</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">server does a simple string comparison and fails if the /token endpoint is</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">not the one as expected</div>
<div style="font-family: Consolas, monospace; font-size: 12px;"><br>
</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">Regards,</div>
<div style="font-family: Consolas, monospace; font-size: 12px;">Sascha</div>
</div>
</body>
</html>