Exemple #1
0
        private Saml2StatusCodes ErrorToSamlStatus(LoginSequenceError error)
        {
            switch (error)
            {
            case LoginSequenceError.LoginCanceled:
                return(Saml2StatusCodes.AuthnFailed);

            case LoginSequenceError.LoginRequired:
                return(Saml2StatusCodes.NoAuthnContext);

            default:
                throw new NotImplementedException();
            }
        }
Exemple #2
0
        private string ErrorToOAuth2OidcString(LoginSequenceError error)
        {
            switch (error)
            {
            // Default
            case LoginSequenceError.LoginCanceled:
                return(Constants.OAuth.ResponseErrors.LoginCanceled);

            // OAuth


            // Oidc
            case LoginSequenceError.LoginRequired:
                return(IdentityConstants.ResponseErrors.LoginRequired);

            default:
                throw new NotImplementedException();
            }
        }
Exemple #3
0
        public async Task <IActionResult> LoginResponseErrorAsync(LoginSequenceError error, string errorDescription = null)
        {
            logger.ScopeTrace("Login error response.");

            var sequenceData = await sequenceLogic.GetSequenceDataAsync <LoginUpSequenceData>();

            logger.SetScopeProperty("upPartyId", sequenceData.UpPartyId);

            logger.ScopeTrace($"Response, Down type '{sequenceData.DownPartyType}'.");
            switch (sequenceData.DownPartyType)
            {
            case PartyTypes.OAuth2:
                throw new NotImplementedException();

            case PartyTypes.Oidc:
                return(await serviceProvider.GetService <OidcAuthDownLogic <OidcDownParty, OidcDownClient, OidcDownScope, OidcDownClaim> >().AuthenticationResponseErrorAsync(sequenceData.DownPartyId, ErrorToOAuth2OidcString(error), errorDescription));

            case PartyTypes.Saml2:
                return(await serviceProvider.GetService <SamlAuthnDownLogic>().AuthnResponseAsync(sequenceData.DownPartyId, status: ErrorToSamlStatus(error)));

            default:
                throw new NotSupportedException($"Party type '{sequenceData.DownPartyType}' not supported.");
            }
        }