Data connector resolutionPhases

Cantor, Scott cantor.2 at osu.edu
Mon Oct 7 12:42:47 UTC 2024


> So I thought it was standard.

There is no such thing. It ends up where you put it. Ultimately it doesn't matter that much as long as it gets properly cleaned up and removed after the work is done. Putting it somewhere else is a way of avoiding problems if the cleanup step is forgotten.

The ARC is always cleaned up afterwards by the IdP and any custom uses should always clean it up too.

The primary resolution performed by the IdP places the ARC under the PRC and the AttributeContext ends up under the RelyingPartyContext.

In most other cases, the IdP will put its ARC somewhere else to isolate it, but always cleans it up, and it may or may not keep an AttributeContext around, and it won't be in the same place to avoid contaminating the standard resolution step.

> For example in this case, i noticed that my
> AttributeResolverContext is removed between two
> consecutive MFA strategies (even if I don't clear
> anything myself).

It is not removed unless you remove it, though it may appear to be getting overwritten if somethiing later replaces it. That's not a good practice to count on.

> Would it be better to put the ARC somewhere else, to be
> able to reuse  the previously resolved attributes ? For
> example inside the MultiFactorAuthenticationContext ?

Reusing Attributes requires *you* to orchestrate that by putting them someplace. The ARC is a staging result and the ARC should always be removed after the work  is done. That is not a place to store Attributes to reuse them later on, that's what an AttributeContext is for.

Putting the ARC some other place is not a bad idea, but  it also breaks the resolutionLabel feature for the time being.

Don't confuse the ARC with the AttributeContext. The latter is where you store them for subsequent use. The ARC is a staging context that should always be removed once the resolution is done.

-- Scott




More information about the users mailing list