<div dir="auto">Vladimir, I understand the thought behind this suggestion, but I think it only adds unnecessary complexity. </div><div dir="auto"><br></div><div dir="auto">The value of this draft comes from leveraging the existing relationship and configuration between the RP and IdP, namely that the RP is necessarily already configured to validate signed ID tokens, and this draft builds on that to send signed tokens with the same signing key so that there isn't another credential to configure and maintain.</div><div dir="auto"><br></div><div dir="auto">Alternatively, making the RP fetch the data means forcing the RP to maintain an access token, defining an API request and response vocabulary, defining endpoint discovery for the API, etc, much more work on both ends for little benefit.</div><div dir="auto"><br></div><div dir="auto">Aaron</div><div dir="auto"><br></div><div dir="auto"><br></div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Thu, Jan 16, 2025 at 4:00 AM Vladimir Dzhuvinov / Connect2id via Openid-specs-ab <<a href="mailto:openid-specs-ab@lists.openid.net">openid-specs-ab@lists.openid.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><u></u>
<div>
<p>Dick, Karl, hi.</p>
<p>Interesting draft.</p>
<p>I'm wondering whether the messaging and the overall architecture
could be simplified by sending simple "state changed" JWTs from OP
to RP. Instead of "command+data" JWTs.<br>
</p>
<ul>
<li>The "account" and "tenant" are protected resources at the OP.<br>
<br>
</li>
<li>The "account" and "tenant" resources have a clearly designated
current state / status, e.g. "active".<br>
<br>
</li>
<li>If the state changes the OP sends a "state changed" JWT.<br>
<br>
</li>
<li>The RP can always check / poll the resource (for changes, or
if it suspects a missed JWT). Cache headers could be used to
hint when to recheck.<br>
<br>
</li>
<li>The resource may provide a history of the changes.</li></ul></div><div><ul><li><br>
</li>
</ul>
<p><br>
</p>
<pre cols="72" style="font-family:monospace">Vladimir Dzhuvinov</pre>
<div>On 15/01/2025 14:29, Dick Hardt via
Openid-specs-ab wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">Hello WG (and chairs)<br>
<br>
Karl (cc'ed) and I have been working on a new protocol that
complements OpenID Connect for an OP to centrally manage
account lifecycles at RPs. We have also defined an Unauthorize
Command which undoes whatever actions an RP did in a previous
OpenID Connect login -- useful if an OP suspects an account or
device had been compromised -- instructs an RP to "kill all
the sessions and tokens"
<div><br>
</div>
<div>We contribute the IP in the attached HTML and Markdown
files to the OpenID Foundation per the Foundations IPR. </div>
<div><br>
</div>
<div>We have a FAQ as a note at the top, that I am including
below for your convenience.</div>
<div><br>
</div>
<div>We hope this work is of interest to others in the WG, and
that together we can improve the security posture of
implementers.</div>
<div><br>
</div>
<div>/Dick & Karl<br>
<br>
<p id="m_-7026078826930531320gmail-section-1-1.2" style="padding:0px;margin:0px 0px 1em;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)"><strong style="font-family:"Noto Sans",Arial,Helvetica,sans-serif">1.
How does SCIM compare to OpenID Provider (OP) Commands?</strong></p>
<p id="m_-7026078826930531320gmail-section-1-1.3" style="padding:0px;margin:0px 0px 1em;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)">The
SCIM protocol is a general purpose protocol for a client
to manage resources at a server. When the SCIM protocol is
used between an IdP and an RP, the schema is defined by
the RP. The resources managed are in the context of the RP
Tenant in a multi-tenant RP. Any extensions to the schema
are defined by the RP. This provided an interoperable
protocol to manage RP resources. OpenID Provider Commands
are an extension of a user Account created by OpenID
Connect. It uses the same identity Claims that the OP
issues for the user. It uses the same token Claims, and is
verified the same way. OpenID Provider Commands are issued
in the context of the OP Tenant in a multi-tenant OP.</p>
<p id="m_-7026078826930531320gmail-section-1-1.4" style="padding:0px;margin:0px 0px 1em;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)"><strong style="font-family:"Noto Sans",Arial,Helvetica,sans-serif">2.
How do Shared Signals / RISC compare to OpenID Provider
Commands?</strong></p>
<p id="m_-7026078826930531320gmail-section-1-1.5" style="padding:0px;margin:0px 0px 1em;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)">Shared
Signals and RISC are events that one party is sharing with
another party. The actions a receiving party takes upon
receiving a signal are intentionally not defined. The
actions taken by the RP when receiving an OpenID Provider
Command is specified. This gives an OP control over the
Account at the RP.</p>
<p id="m_-7026078826930531320gmail-section-1-1.6" style="padding:0px;margin:0px 0px 1em;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)"><strong style="font-family:"Noto Sans",Arial,Helvetica,sans-serif">3.
Are OpenID Provider Commands a replacement for SCIM,
Shared Signals, or RISC?</strong></p>
<p id="m_-7026078826930531320gmail-section-1-1.7" style="padding:0px;margin:0px 0px 1em;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)">No.
These standards are deployed by organizations that have
complex requirements, and these standards meet there
needs. Most OP / RPs do not deploy any of these standards,
as the implementation complexity is not warranted. OpenID
Provider Commands are designed to build on OpenID Connect,
allowing RPs using OpenID Connect an easy path to offer
OPs a standard API for security and lifecycle operations.</p>
<p id="m_-7026078826930531320gmail-section-1-1.8" style="padding:0px;margin:0px 0px 1em;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)"><strong style="font-family:"Noto Sans",Arial,Helvetica,sans-serif">4.
Why are there only groups? Why not roles and
entitlements?</strong></p>
<p id="m_-7026078826930531320gmail-section-1-1.9" style="padding:0px;margin:0px;font-family:"Noto Sans",Arial,Helvetica,sans-serif;font-size:14px;color:rgb(17,17,17)">OpenID
Provider Commands are used to project the Tenant data
managed centrally by the OP. Groups are a common term used
by OPs to manage a collection of Accounts. The terms roles
and entitlements tend to be RP specific. Generally, groups
from the OP will be mapped to roles and/or entitlements
that are RP specific, at the RP.<br>
<br>
</p>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre style="font-family:monospace">_______________________________________________
Openid-specs-ab mailing list
<a href="mailto:Openid-specs-ab@lists.openid.net" target="_blank" style="font-family:monospace">Openid-specs-ab@lists.openid.net</a>
<a href="https://lists.openid.net/mailman/listinfo/openid-specs-ab" target="_blank" style="font-family:monospace">https://lists.openid.net/mailman/listinfo/openid-specs-ab</a>
</pre>
</blockquote>
</div>
_______________________________________________<br>
Openid-specs-ab mailing list<br>
<a href="mailto:Openid-specs-ab@lists.openid.net" target="_blank">Openid-specs-ab@lists.openid.net</a><br>
<a href="https://lists.openid.net/mailman/listinfo/openid-specs-ab" rel="noreferrer" target="_blank">https://lists.openid.net/mailman/listinfo/openid-specs-ab</a><br>
</blockquote></div></div>