Discussion Topic: Transport confidentiality and integrity; Implementing crypto 'conditional' flag
Brent Putman
putmanb at georgetown.edu
Thu Feb 13 22:44:41 EST 2014
On 2/13/14 10:04 PM, Cantor, Scott wrote:
> I'm still struggling with how I think the various security parameters
> should be placed in the tree, but modulo that question, I don't see
> anything to disagree with in terms of all that.
I haven't really come up with anything concrete either, but I think the
2 issues are somewhat distinct.
>
> I think it does by definition because all you're really saying is that
> whatever can be known/determined is expressed in a manner that's
> independent of the binding/encoder abstractions, which is clearly
> necessary since it isn't always related to either. If you could conjure a
> use case in which it's impossible to determine from the emergent state of
> the system whether the flags are true or not, then by definition nothing
> we attempt to use to expose those values is going to work.
>
> Either we have a way to tell or we don't.
That was pretty much my reasoning as well, I just want to make sure I'm
not missing something obvious.
I just checked in my code, so there it is.
>
> The only comment I have is not really related to this question, but the
> earlier notion of how we talk about bindings. Specifically, there's a way
> in V2 to express the permissible outbound bindings (it's on the profile
> definition in handler.xml), and we need that in V3 (for endoint
> determination) but it's not obvious to me yet where to put it.
Hmm, yeah, I had completely forgotten about that. In v2, the list is
set on the ProfileHandler instance (specifically the
AbstractSAMLProfileHandler). Off-the-cuff it seems to me that it's an
input somehow to the action where the binding selection is done (where
the endpoint selector or Resolver runs). Either a static config on that
action, or populated on a subcontext. Not seeing a reason at the moment
for the latter, and the former is conceptually simpler.
>
> When I originally thought we needed to think about hanging these flags off
> of some kind of binding descriptor, I was thinking that set of descriptors
> might be the way we implement that signal of supported bindings.
So I guess you're saying with that approach the set of acceptable
outbound binding URI's is associated with a given (inbound) binding URI
basically globally, for all usages of that binding. Maybe, but that's a
little different than what v2 did, since there it's really profile
handler-specific. In one profile handler (and in v3, a flow) might have
X and Y as supported outbound for inbound X, but another profile
handler/flow could have outbound X, Y and Z for inbound X. I don't know
if that always, or even ever, makes practical sense, but it's implied by
the v2 design.
> Anyway, point being, I think with the approach of using a map to lookup
> the encoder to use for a binding, we need to just have that map be a bean
> we can inject in at least one other spot.
Yeah, I think that's a given. In what I did in the testbed, I did it as
an inner bean (albeit with an id), but that wasn't really intentional.
> For generality, I'd favor having
> something called a BindingDescriptor even if there's not much in it, and
> have the map be of those objects.
Actually, I don't follow. You mean the descriptor is the value of the
map (binding URI -> descriptor)? I guess that's possible, although the
whole point of the map there is to map binding URI -> Spring bean ID.
Having the latter as one of descriptor properties of a binding seems a
bit odd, unless I'm misunderstanding what you mean by binding descriptor
(I inferred general globally known info about the binding, not
Spring/deployment-specific info).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://shibboleth.net/pipermail/dev/attachments/20140213/9861036a/attachment.html
More information about the dev
mailing list