Sachverhalt: Sachverhalt: A. Die D._ AG lieferte und montierte im Spätsommer/Herbst 1992 an einem Neubauprojekt an der E._strasse in Zürich die Fenster für einen Betrag von insgesamt Fr. 107'439.--. Sie erhielt dafür eine Anzahlung von Fr. 54'000.--. Die unbezahlt gebliebene Restforderung von Fr. 53'439.-- trat sie am 17. Mai 1999 an die B._ AG, Zug (Klägerin), ab. A. Die D._ AG lieferte und montierte im Spätsommer/Herbst 1992 an einem Neubauprojekt an der E._strasse in Zürich die Fenster für einen Betrag von insgesamt Fr. 107'439.--. Sie erhielt dafür eine Anzahlung von Fr. 54'000.--. Die unbezahlt gebliebene Restforderung von Fr. 53'439.-- trat sie am 17. Mai 1999 an die B._ AG, Zug (Klägerin), ab. B. Die Klägerin machte den Zahlungsausstand am 3. April 2000 beim Kantonsgericht Glarus gegen die A._ AG (Beklagte), geltend. Die Beklagte verkündete in der Klageantwort der C._ AG (Litisdenunziatin), den Streit. Diese schloss sich anlässlich der Hauptverhandlung vom 20. Februar 2001 der Klägerin als Nebenintervenientin an. Das Kantonsgericht bejahte mit Urteil vom 21. August 2001 insbesondere die Passivlegitimation der Beklagten, die von dieser bestritten worden war, und hiess die Klage im Umfang von Fr. 53'439.-- nebst 6% Zins seit 14. April 1994 und Zahlungsbefehlskosten gut. Eine dagegen erhobene kantonalrechtliche Berufung der Beklagten wies das Obergericht des Kantons Glarus am 18. März 2004 ab und bestätigte das Urteil des Kantonsgerichts vollumfänglich. B. Die Klägerin machte den Zahlungsausstand am 3. April 2000 beim Kantonsgericht Glarus gegen die A._ AG (Beklagte), geltend. Die Beklagte verkündete in der Klageantwort der C._ AG (Litisdenunziatin), den Streit. Diese schloss sich anlässlich der Hauptverhandlung vom 20. Februar 2001 der Klägerin als Nebenintervenientin an. Das Kantonsgericht bejahte mit Urteil vom 21. August 2001 insbesondere die Passivlegitimation der Beklagten, die von dieser bestritten worden war, und hiess die Klage im Umfang von Fr. 53'439.-- nebst 6% Zins seit 14. April 1994 und Zahlungsbefehlskosten gut. Eine dagegen erhobene kantonalrechtliche Berufung der Beklagten wies das Obergericht des Kantons Glarus am 18. März 2004 ab und bestätigte das Urteil des Kantonsgerichts vollumfänglich. C. Die Beklagte beantragt mit eidgenössischer Berufung, das Urteil des Obergerichts vom 18. März 2004 aufzuheben und die Klage abzuweisen. Eventuell sei die Angelegenheit zur Feststellung und Ergänzung des rechtserheblichen Sachverhalts an das Obergericht zurückzuweisen. Die Klägerin schliesst auf Abweisung der Berufung. Die Litisdenunziatin hat sich innert Frist nicht vernehmen lassen.