“and it is not clear if I can penalize a solution that does not place any atom of A in contact with any atom of one specific chain of B”
The constraints need to specify which atoms they concern, but you can build constraints via AmbiguousConstraints that only affect the score in a generic fashion. See this post for an example: http://www.rosettacommons.org/node/2358#comment-2441
Basically, you might run 100 docking runs to get an idea of where a B-A interface might be, with 100 potential contacts. Then, you use AmbiguousConstraint and MultiConstraint (with judicious grouping) to say, “one of these 10 groups of constraints must be satisfied”, but you don’t enforce which one. This lets you force B to stick to a particular A, but doesn’t define the orientation.
You may also be able to get away with a wide-well CoordinateConstraint on the center of mass atoms of B, which restrict it to being above a particular A.