<p dir="ltr">My preference: If all SET only supports a single iss/sub pair, then 1. If a SET can have events for multiple iss/sub pair, then 2. </p>
<br><div class="gmail_quote"><div dir="ltr">2017年8月3日(木) 7:49 Marius Scurtescu <<a href="mailto:mscurtescu@google.com">mscurtescu@google.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Each SET profile must define or clarify several aspects of the specs. For RISC most of these must only be only specified (like key resolution), but there is at least one issue for which we don't have an agreed on solution.<div><br></div><div>In some use cases the issuer of the SET is different from the issuer of the subject identifier, and at least in those cases there cannot be only one top level "iss" claim.</div><div><br></div><div>Here are the proposals I am aware of to solve this issue:</div><div><br></div><div>1. Move iss+sub to the event level. The drawback of this approach is redundancy when multiple events are present in the SET.</div><div><br></div><div><div><font face="monospace, monospace">{</font></div><div><font face="monospace, monospace">  "jti": "3d0c3cf797584bd193bd0fb1bd4e7d30",</font></div><div><font face="monospace, monospace">  "iat": 1458496025,</font></div><div><font face="monospace, monospace">  "iss": "<a href="https://tr.example.com" target="_blank">https://tr.example.com</a>",</font></div><div><font face="monospace, monospace">  "aud": "</font><span style="font-family:monospace,monospace"><a href="https://rv.example.com/" target="_blank">https://rv.example.com/</a>",</span><br></div><div><font face="monospace, monospace">  "events": {</font></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:sessions-revoked":</font></div><div><font face="monospace, monospace">    {</font></div><div><font face="monospace, monospace">      "iss": "<a href="https://example.com" target="_blank">https://example.com</a>",</font></div><div><span style="font-family:monospace,monospace">      "sub": "47635747",</span><br></div><div><span style="font-family:monospace,monospace">    },</span><br></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:tokens-revoked":</font></div><div><font face="monospace, monospace">    {</font></div><div><font face="monospace, monospace">      "iss": "<a href="https://example.com" target="_blank">https://example.com</a>",</font></div><div><span style="font-family:monospace,monospace">      "sub": "47635747",</span><br></div><div><span style="font-family:monospace,monospace">    }</span><br></div><div><font face="monospace, monospace">  }</font></div><div><span style="font-family:monospace,monospace">}</span><br></div></div><div><br></div><div><br></div><div>1.1 Move only the subject "iss" to the event level and leave "sub" at the top level (next to the SET "iss"). I find this solution very confusing.</div><div><br></div><div><div><font face="monospace, monospace">{</font></div><div><font face="monospace, monospace">  "jti": "3d0c3cf797584bd193bd0fb1bd4e7d30",</font></div><div><font face="monospace, monospace">  "iat": 1458496025,</font></div><div><font face="monospace, monospace">  "iss": "<a href="https://tr.example.com" target="_blank">https://tr.example.com</a>",</font></div><div><span style="font-family:monospace,monospace">  "sub": "47635747",</span><br></div><div><font face="monospace, monospace">  "aud": "</font><span style="font-family:monospace,monospace"><a href="https://rv.example.com/" target="_blank">https://rv.example.com/</a>",</span></div><div><font face="monospace, monospace">  "events": {</font></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:sessions-revoked":</font></div><div><font face="monospace, monospace">    {</font></div><div><font face="monospace, monospace">      "iss": "<a href="https://example.com" target="_blank">https://example.com</a>",</font></div><div><span style="font-family:monospace,monospace">    },</span><br></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:tokens-revoked":</font></div><div><font face="monospace, monospace">    {</font></div><div><font face="monospace, monospace">      "iss": "<a href="https://example.com" target="_blank">https://example.com</a>",</font></div><div><span style="font-family:monospace,monospace">    }</span><br></div><div><font face="monospace, monospace">  }</font></div><div><span style="font-family:monospace,monospace">}</span></div></div><div><br></div><div><br></div><div>2. Move iss+sub immediately under the "events" claim. No redundancy in this case.</div><div><br></div><div><div><font face="monospace, monospace">{</font></div><div><font face="monospace, monospace">  "jti": "3d0c3cf797584bd193bd0fb1bd4e7d30",</font></div><div><font face="monospace, monospace">  "iat": 1458496025,</font></div><div><font face="monospace, monospace">  "iss": "<a href="https://tr.example.com" target="_blank">https://tr.example.com</a>",</font></div><div><font face="monospace, monospace">  "aud": "</font><span style="font-family:monospace,monospace"><a href="https://rv.example.com/" target="_blank">https://rv.example.com/</a>",</span><br></div><div><font face="monospace, monospace">  "events": {</font></div><div><font face="monospace, monospace">    "iss": "<a href="https://example.com" target="_blank">https://example.com</a>",</font></div><div><span style="font-family:monospace,monospace">    "sub": "47635747",</span><br></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:sessions-revoked": </font><font face="monospace, monospace">{</font><span style="font-family:monospace,monospace">},</span></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:tokens-revoked": </font><font face="monospace, monospace">{</font><span style="font-family:monospace,monospace">}</span></div><div><font face="monospace, monospace">  }</font></div><div><span style="font-family:monospace,monospace">}</span></div></div><div><br></div><div><br></div><div>3. Move iss+sub to a new nested claim.</div><div><br></div><div><div><font face="monospace, monospace">{</font></div><div><font face="monospace, monospace">  "jti": "3d0c3cf797584bd193bd0fb1bd4e7d30",</font></div><div><font face="monospace, monospace">  "iat": 1458496025,</font></div><div><font face="monospace, monospace">  "iss": "<a href="https://tr.example.com" target="_blank">https://tr.example.com</a>",</font></div><div><font face="monospace, monospace">  "aud": "</font><span style="font-family:monospace,monospace"><a href="https://rv.example.com/" target="_blank">https://rv.example.com/</a>",</span><br></div><div><span style="font-family:monospace,monospace">  "target": {</span></div><div><font face="monospace, monospace">    "iss": "<a href="https://example.com" target="_blank">https://example.com</a>",</font></div><div><span style="font-family:monospace,monospace">    "sub": "47635747",</span><br></div><div><span style="font-family:monospace,monospace">  },</span></div><div><font face="monospace, monospace">  "events": {</font></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:sessions-revoked": </font><font face="monospace, monospace">{</font><span style="font-family:monospace,monospace">},</span><br></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:tokens-revoked": </font><font face="monospace, monospace">{</font><span style="font-family:monospace,monospace">}</span></div><div><font face="monospace, monospace">  }</font></div><div><span style="font-family:monospace,monospace">}</span></div></div><div><br></div><div><br></div><div>4. Define a new top level issuer claim either for the SET or for the subject.</div><div><br></div><div><div><font face="monospace, monospace">{</font></div><div><font face="monospace, monospace">  "jti": "3d0c3cf797584bd193bd0fb1bd4e7d30",</font></div><div><font face="monospace, monospace">  "iat": 1458496025,</font></div><div><font face="monospace, monospace">  "iss": "<a href="https://tr.example.com" target="_blank">https://tr.example.com</a>",</font></div><div><font face="monospace, monospace">  "iss-sub": "<a href="https://example.com" target="_blank">https://example.com</a>",</font></div><div><span style="font-family:monospace,monospace">  "sub": "47635747",</span><br></div><div><font face="monospace, monospace">  "aud": "</font><span style="font-family:monospace,monospace"><a href="https://rv.example.com/" target="_blank">https://rv.example.com/</a>",</span><br></div><div><span style="font-family:monospace,monospace">  "events": {</span><br></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:sessions-revoked": </font><font face="monospace, monospace">{</font><span style="font-family:monospace,monospace">},</span><br></div><div><font face="monospace, monospace">    "urn:ietf:params:risc:event:tokens-revoked": </font><font face="monospace, monospace">{</font><span style="font-family:monospace,monospace">}</span></div><div><font face="monospace, monospace">  }</font></div><div><span style="font-family:monospace,monospace">}</span></div></div><div><br></div><div><br></div><div>An open question is if this new iss+sub solution should be always required or if a top level iss+sub should also be allowed (when there is no conflict). I vote for having only one way for simplicity.</div><div><br></div><div>Once we decide on a solution we can start working on the RISC profile draft.</div><div><br></div><div>Thoughts?</div><div><br></div><div><div>Marius
</div></div></div>
_______________________________________________<br>
Openid-specs-risc mailing list<br>
<a href="mailto:Openid-specs-risc@lists.openid.net" target="_blank">Openid-specs-risc@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-specs-risc" rel="noreferrer" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-risc</a><br>
</blockquote></div><div dir="ltr">-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><p dir="ltr">Nat Sakimura</p>
<p dir="ltr">Chairman of the Board, OpenID Foundation</p>
</div>