code: def _get_approved_attributes(self, idp, idp_policy, sp_entity_id, state):
          
          name_format = idp_policy.get_name_form(sp_entity_id)
          attrconvs = idp.config.attribute_converters
          idp_policy.acs = attrconvs
          attribute_filter = []
          for aconv in attrconvs:
              if aconv.name_format == name_format:
                  all_attributes = {v: None for v in aconv._fro.values()}
                  attribute_filter = list(idp_policy.restrict(all_attributes, sp_entity_id, idp.metadata).keys())
                  break
          attribute_filter = self.converter.to_internal_filter(self.attribute_profile, attribute_filter)
          satosa_logging(logger, logging.DEBUG, "Filter: %s" % attribute_filter, state)
          return attribute_filter
docs: Returns a list of approved attributes
  
          :type idp: saml.server.Server
          :type idp_policy: saml2.assertion.Policy
          :type sp_entity_id: str
          :type state: satosa.state.State
          :rtype: list[str]
  
          :param idp: The saml frontend idp server
          :param idp_policy: The idp policy
          :param sp_entity_id: The requesting sp entity id
          :param state: The current state
          :return: A list containing approved attributes