def from_dict(cls, data):
        """
        :type data: dict[str, str]
        :rtype: satosa.internal.InternalData
        :param data: A dict representation of an InternalData object
        :return: An InternalData object
        """
        auth_info = AuthenticationInformation.from_dict(
            data.get("auth_info", {})
        )
        instance = cls(
            auth_info=auth_info,
            requester=data.get("requester"),
            requester_name=data.get("requester_name"),
            subject_id=data.get("subject_id"),
            subject_type=data.get("subject_type"),
            attributes=data.get("attributes"),
            user_id=data.get("user_id"),
            user_id_hash_type=data.get("hash_type"),
            name_id=data.get("name_id"),
            approved_attributes=data.get("approved_attributes"),
        )
        return instance