Referring to this article, there are 5 APIs to retrieve credentials using STS:
AssumeRoleAssumeRoleWithWebIdentityAssumeRoleWithSAMLGetFederationTokenGetSessionToken
AssumeRole is useful for managing permissions centrally using IAM roles. Web identity and SAML federation are also straightforward. GetSessionToken is useful to protect sensitive IAM users and to protect connections from insecure locations, especially using MFA. I have also used this in the past.
However, what is the main purpose for GetFederationToken, in comparison to AssumeRole? The article seems to suggest the key difference is that it allows for a substantially longer expiration. Is this really the primary purpose of this API? Why is it crucial to have a different API just for longer expiration?