def get_saml_assertion()

in aws_advanced_python_wrapper/okta_plugin.py [0:0]


    def get_saml_assertion(self, props: Properties):
        try:
            one_time_token = self._get_session_token(props)
            uri = self._get_saml_url(props)
            SamlUtils.validate_url(uri)

            logger.debug("OktaCredentialsProviderFactory.SamlAssertionUrl", uri)
            r = requests.get(uri,
                             params={OktaCredentialsProviderFactory._ONE_TIME_TOKEN: one_time_token},
                             verify=WrapperProperties.SSL_SECURE.get_bool(props),
                             timeout=WrapperProperties.HTTP_REQUEST_TIMEOUT.get_int(props))

            SamlUtils.validate_response(r)
            content = r.text
            match = search(OktaCredentialsProviderFactory._SAML_RESPONSE_PATTERN, content)
            if not match:
                error_message = "AdfsCredentialsProviderFactory.FailedLogin"
                logger.debug(error_message, content)
                raise AwsWrapperError(Messages.get_formatted(error_message, content))

            # return SAML Response value
            return unescape(match.group(self._SAML_RESPONSE_PATTERN_GROUP))

        except IOError as e:
            error_message = "OktaAuthPlugin.UnhandledException"
            logger.debug(error_message, e)
            raise AwsWrapperError(Messages.get_formatted(error_message, e))