Re: Issue 78: IdP

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, 4 July 2014 00:24:16 UTC