- From: Peter Thatcher <pthatcher@google.com>
- Date: Fri, 18 Jul 2014 14:20:48 -0700
- To: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Cc: "public-ortc@w3.org" <public-ortc@w3.org>
- Message-ID: <CAJrXDUEUEqDM-Q7wBstAmp05rBvUc+9u5krEKThLCwbgr5vapQ@mail.gmail.com>
I like the idea of breaking out since that could potentially make it easier
to introduce other ways of doing identity (not necessarily built on DTLS).
But when I read the names of things, it seems more complex than it needs
to be, with some confusing names. In fact, the more I think about it as a
separate object the, the more I think an RTPIdentifyProvider object makes
more sense:
[Constructor(DOMString provider, optional DOMString protocol)]
interface RTCIdentityProvider {
// The IdP returns an assertion that this transport is this user at this
IdP.
Promise<DOMString> assert(RTCDtlsTransport transport, DOMString username);
// The IdP verifies the assertion that this transport is for this user at
this domain.
Promise<bool> verify(DOMString assertion, RTCDtlsTransport transport,
DOMString username);
}
I think this is much more simple and straight-forward, and matches what the
IdP actually does, at least as far as I understand it. And there are no
confusing names. Can someone who knows IdP a little better tell me if this
makes sense?
On Thu, Jul 3, 2014 at 5:23 PM, Bernard Aboba <Bernard.Aboba@microsoft.com>
wrote:
> Martin Thomson said:
>
> You'll want to have a setIdentityAssertion(DOMString assertion) as well,
> since you aren't feeding this with setRemoteDescription any more.
>
> With that, you could probably remove some of the indirection.
>
> How about reducing the surface area a little:
>
> partial interface RTCDtlsTransport {
> Promise<DOMString> getIdentityAssertion(DOMString provider, optional
> DOMString protocol = "default", optional DOMString username);
> // this encapsulates onidentityresult and onidpassertionerror in the
> promise
> Promise setIdentityAssertion(DOMString assertion);
> // this encapsulates onidentityresult and onidpvalidationerror
>
> readonly attribute RTCIdentityAssertion? peerIdentity;
> };
>
> [Robin Raymond] said:
>
> I like this API overall. I would make it its own interface though that is
> constructed from a RTCDtlsTransport to keep the security assertion stuff
> separate from DTLS, or we could make it like stats interface where "secure"
> transports could derive from...
>
> [BA] How about this?
>
> [Constructor(RTCDtlsTransport transport)]
> interface RTCIdentity {
> readonly attribute RTCIdentityAssertion? peerIdentity;
> readonly attribute RTCDtlsTransport transport;
> Promise<DOMString> getIdentityAssertion (DOMString
> provider, optional DOMString protocol = "default", optional DOMString
> username);
> Promise<RTCIdentityAssertion> setIdentityAssertion (DOMString
> assertion);
> };
>
> dictionary RTCIdentityError {
> DOMString idp;
> DOMString protocol;
> DOMString? loginUrl;
> };
>
> dictionary RTCIdentityAssertion {
> DOMString idp;
> DOMString name;
> };
>
Received on Friday, 18 July 2014 21:21:56 UTC