This email is getting closer to picking apart the different pieces of the network architecture for delegated authority and considering those pieces separately with respect to Scott's suggestion of certain "required to implement" transports. I think we need to take it further because each main line in the network diagram has to be considered separately.

I'm going to use my own terms for the 3 parties here because my confusion about the official terms is an appropriate subject for a different mail but I can't quite bring myself to use them. Thus, my simplified network diagram which ignores proxies and optional bits like talking to directories

  Content
  Server---------|
    |            |
    |          Identity
    |          Server
    |            |
  Client---------|


On Jan 20, 2006, at 7:16 PM, John Merrells wrote:

We can't mandate that the other party in the exchange implement
DIX over a particular transport. It's an implementation decision
between the user's client and the other party. We have the motivating
use cases of a VOIP phone or IM client to illustrate this.

Here you're talking about the communication between the client and the content server in my diagram. That communication is almost outside the scope of DIX. It's the communication that already takes place over many, many protocols, not all of which DIX WG can tackle. My personal suggestion is that DIX should tackle HTTP and add a new Authorization header type and WWW-Authenticate capability token and associated parameters, and perhaps also tackle SASL for which I'm not qualified to suggest how.


We could mandate the transport between the user's client and their
agent. HTTP perhaps... given its simplicity and ubiquity. I do hesitate
though, because I'm sure there are use cases where that doesn't
make sense. For example my agent might actually be built into my
client so the transport is IPC or API. What use would that kind of
agent be?... well it could just be a local replica of my agent in the
internet. Hmm, is my local agent really just an agent of my agent
and therefore a non-principal party to the exchange. Agh. What if
my agent were on a USB key or a smart card? What would my
transport be then... I'm not sure... I suppose it could be HTTP...

Now you're talking about the communication between client and identity server in my diagram. The identity server MUST support one or more well-known protocols such that if I'm implementing a client, I can count on being able to contact a standards-compliant identity server if I'm willing to do the work. Of course a client might go beyond that and implement other protocols to talk to the identity server -- even proprietary protocols -- but that would have to rely on capability discovery or provisioning in order to work.

So let's say DIX required BEEP and HTTP (at random) as the REQUIRED TO IMPLEMENT transports for a compliant identity server. This doesn't necessarily solve all problems for all clients but it does make it clear what the client implementor has to do.


We could state:

"To ensure interoperability between implementations we mandate
that the user's client and their agent must support at least DIX
over HTTP."

Yes, but even more important for the identity server to have required- to-implement transports.

It's hard to be definitive about this without the use cases to refer
to...

I may be assuming the use cases, but I'll forge onward.

The last major line in the network diagram is the communication between the identity server and the content server. Over this link, REQUIRED transports are crucial and can be kept, I suspect, to just one. All content servers that advertise support for DIX delegated authorization MUST be able to communicate with the identity server chosen by the client using this one transport. All identity servers that advertise compliance with DIX MUST be able to communicate with the content server chosen by the client using this one transport.

A single mandatory transport is most crucial for this link because both the content server and identity server are chosen by the client or user, and the two servers commonly have no ability or opportunity to do any provisioning or setup, and can only negotiate over the wire after initially making some kind of blind connection in one of the two directions.

Revisiting my simplistic network diagram:


     Content
     Server---------| = ONE TRANSPORT
       |            |
 ANY = |          Identity
       |          Server
       |            |
Client---------| = ONE/TWO TRANSPORTS or configure/provision otherwise



Lisa

_______________________________________________
dix mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/dix

Reply via email to