W latach 1978-1990 należał do Polskiej Zjednoczonej Partii Robotniczej. Brał udział w obradach Okrągłego Stołu, jako ekspert strony rządowej ds. reform politycznych. Był jednym z założycieli Socjaldemokracji Rzeczpospolitej Polskiej. Od 1991 roku poseł na Sejm. W II kadencji (1993-1995) był rzecznikiem prasowym klubu parlamentarnego SLD. W latach 1994-1996 należał do Krajowej Rady Sądownictwa. W 1995 roku był rzecznikiem kampanii prezydenckiej Aleksandra Kwaśniewskiego, a następnie podsekretarzem stanu w Kancelarii Prezydenta RP i zastępcą szefa Biura Bezpieczeństwa Narodowego. W lutym 1996 r. został mianowany ministrem spraw wewnętrznych w rządzie Włodzimierza Cimoszewicza, od października 1996 r. z uprawnieniami zastępowania premiera w nadzorze nad działalnością Urzędu Ochrony Państwa. Od stycznia do października 1997 r. był członkiem Rady Ministrów, koordynatorem służb specjalnych. Jednocześnie sprawował funkcję sekretarza Kolegium ds. Służb Specjalnych. W kolejnej kadencji Sejmu (1997-2001) był członkiem Komisji ds. Służb Specjalnych. W październiku 2001 roku został sekretarzem stanu w Kancelarii Prezesa Rady Ministrów. Funkcję piastował do czerwca 2002 r. W latach 2001-2002 był ostatnim szefem Urzędu Ochrony Państwa. 29 czerwca 2002 r. mianowany szefem Agencji Wywiadu. Oskarżony w raporcie sejmowej Komisji ds. Służb Specjalnych o udzielanie fałszywych informacji w trakcie wyjaśniania okoliczności zatrzymania byłego szefa "Orlenu" w 2002 r. W kwietniu 2004 r. podał się do dymisji, której premier Leszek Miller nie przyjął. 1 sierpnia 2007 r. został skazany na rok więzienia w zawieszeniu za przechowywanie w swoim domu tajnych dokumentów b. Urzędu Ochrony Państwa
Jest absolwentem Wydziału Dziennikarstwa i Nauk Politycznych Uniwersytetu Warszawskiego. Pracował jako asystent i adiunkt w Instytucie Nauk Politycznych UW