Hi
On 14-06-17 09:19, Leif Johansson wrote:
By changing
the role of the attribute-mapper and moving it out as a
microservice what we come to is:
[SP(external)] <protocol-x> [IDPsatosa <internal-data> microservices
<internal-data> SPsatosa] <protocol-y> [IDP(external)]
This leaves a question mark on how the internal data are generated, as
attribute-mapper has been moved into microservices and is now
optional.
We could change microservices to include info about where in the
pipeline they are called - inbound, middle or outbound ... however...
I would prefer not do that latter, nor move the attribute mapper of
satosa core into microservices.
We should keep a strict separation of responsibilities, which are:
1) handle incoming protocol X and map to internal state (Satosa core)
2) Do some magic on internal state if needed (micro service)
3) pick up internals state and represent in protocol Y (Satosa core)
I do think therefor we need 2 mappers in the core, and in this specific
case a 3th for the magic you need:
<protocol-x> -> IDPsatosa -> mapper to internal state
Result: <internal-data>
<do your micro service magic on internal data, for example w/ a custom mapper>
Result: <modified-internal-data>
<internal-data> -> mapper from internal state ->
SPsatosa -> <protocol-y>
Both mappers from and to internal state are core to SaTosa and should I
think *not* be directly touched by any micro servcies as that will break
the ability to map from and to that data from various protocols in a
generic way. They should also themselves not be microservcies as these
are core to the capabilities of SaToSa. We do not want a situation where
the protocol handling code needs to know about what internal state is
going to be represented, as that will result in the need for updating
*all* protocol handlers if a new protocol or microservice gets added.
If you have additional requirements beyond mapping from protocol to
internal state, that is up to your microservice. Microservcies should
only ever touch an existing internal state.
Cheers,
Niels
--
Niels van Dijk Technical Product Manager Trust & Security
Mob: +31 651347657 | Skype: cdr-80 | PGP Key ID: 0xDE7BB2F5
SURFnet BV | PO.Box 19035 | NL-3501 DA Utrecht | The Netherlands
www.surfnet.nl www.openconext.org