Like you said there are many ways to do it. Computer controlled and usually expensive.
Dynamometers.
These are the tools built exactly for this type of task. Obviously they are amognst the most expensive for the job. The most difficult part would be to determine the specs (what is the maximum torque, what is the control resolution, is it computer controlled etc ). You can see what a dynamometer is at various links (e.g. 1.
Electrical system with inverter and motor
What you can do is connect your shaft to a generator/motor, and control though an inverter the torque. Basically, the motor is free to turn, but as you increase the electric current passing through the coils it is harder and harder to move the rotor.
Similar idea but reversed is the following. you could connect the shaft to a generator and connect it to a inverter which is connected to the grid. You could control how much power is absorbed (and therefore the torque), and you could put that energy to the grid (so you would have a human generator).
In both cases you'd need a encoder for the shaft rpm.
Pros:
- torque should be controlled quite nicely (barring friction and cogging torque)
Cons:
- expensive
- requires programming knowledge
Mechanical brakes
There are many variations here. The main problem is controlling the torque accurately. Basically you will be relying on the coefficient of friction, which can change depending on wear, and other conditions e.g. humidity.
Wear might not seem relevant however, because you will be applying it constantly, it will become an issue sooner rather than latter.
you could use the computer to actuate the brake and control whether the applied torque.

this is a similar to the drum brake.
you can use a belt and apply tension on the belt in order to increase the friction force between belt and trum. If the drum is connected to the shaft it connect the torque on the shaft.

Constant torque and constant force in mechanical systems
One main problem when using friction to mechanically control torque is that the torque might exhibit large variations. In order to mitigate that it is important to apply a constant force on the friction surface. One (good) way to do that is insert a spring between the actuator and the controlled surface. Then the displacement of the actuator will control the displacement of the spring and indirectly the force. If you have a sufficiently long travel for the spring then you can have a very good control on the force. A nice (but rather old) description is at this link.