It seemed to me that both profiles offer the same level of security. With a POST profile, the user must explicitly initiate a POST. This may help disrupt something in accordance with the CSRF attack, but I don't know any real exploits. An Artifact profile using the GET method can provide the user with a more seamless experience.
For me, the drawback of the Artifact profile is the difficulty of opening the return channel. My application server allocates a thread for processing a user request, and if this thread is blocked (waiting for the return channel I / O to complete) for a very long time, the application server starts to work very poorly. Thus, communication with the return channel must be done very carefully to ensure that it expires after a certain period of time.
Even then, if IdP does not work, it is not so obvious to my users that the error is in IdP. With a POST profile, if IdP behaves badly, users are less likely to blame me.
source share