Source 1: Official Chinese figures
The Chinese government has admitted the existence of these camps, claiming that they are for "anti-extremist ideological education, psychological correction, and behavior correction". If they ever put out official figures for how many people have been admitted to the camps, I will edit this answer and make note of it here.
(Edit: In September 2020 the Chinese government admitted it had "relocated" 2.6 million Uyghurs between June 2019 and June 2020. It also claimed it was providing "vocational training" to 1.29 million Uyghurs every year from 2014 to 2019. The phrase "vocational training" was not defined and outside analysts believe it may refer to forced labor as well as internment.)
The population of Xinjiang is 1.5% of China's total population, but in 2017, 21% of all arrests in China were made in Xinjiang, a total of 227,882 people, according to official Chinese figures. These figures show a 700% year-on-year increase in arrests. The type of sentencing for these arrests was not specified.
From January to March 2018, 461,000 residents in Xinjiang villages were "relocated" according to a report in Global Times. The specific destination of these residents was not specified other than "other parts of the region."
Source 2: Mizutani Naoko
Adrian Zenz published a peer-reviewed article in 2018 giving two major sources for the figure of 1 million: Zenz, A. (2018). “Thoroughly reforming them towards a healthy heart attitude”: China’s political re-education campaign in Xinjiang. Central Asian Survey, 1–27. doi:10.1080/02634937.2018.1507997
The first of Adrian Zenz's sources is Mizutani Naoko 水谷尚子, currently an associate professor at Meiji University. Mizutani comes from an anti-imperialist angle, beginning her research with a vindication of the Japanese war crime testimonials given by the Association of Returnees from China, which was positively reviewed in Japanese academic journals. Her research specialized in using Chinese sources to elucidate the relationship between the Nationalists and Communists in the 20th century. Starting in 2007 she became a critic of modern colonialist techniques in Xinjiang and published a book based on interviews with dissidents.
The figures used by Mizutani in her Newsweek article were obtained by the Istanbul-based Uyghur dissident source Istiqlal TV. However, Mizutani herself did not naively accept the numbers but cross-referenced them against publicly available data on total Uyghur populations and her own knowledge of Xinjiang administration:
この表は県単位で収容者数が記されており、ウルムチ市、ホタン市、イーニン(グルジャ)市など、市単位での数値が欠けている。中国の行政単位としては県が市より下となる。おそらく、大きな行政単位の中心市レベルと末端の県レベルでは管轄部署が異なり、このデータをリークした公安警察は、県レベルのデータ管理者だったのだろう。
This table records camp inmates by prefecture, and is missing values for cities such as Ürümqi, Hotan, and Yining (Ghulja). Chinese administrative divisions rank prefectures below cities. The administrative units at the level of large central cities may vary in method of control, so we may assume that the public official who leaked this data is charged with managing data at the prefectural level [only].
She adds that the data was likely current as of late 2017. Zenz uses these prefectural figures of 892,000, 12.3% of the prefectural population, and combines them with public data on the Uyghur population in cities to extrapolate a total figure of 1,060,000.
Mizutani continues to speak out about this issue, most recently discussing oppression of Uyghurs in an interview with the Communist Party of Japan.
Source 3: Radio Free Asia
Zenz's second source is a Radio Free Asia article, but it is not based on an anonymous leak like the Istiqlal TV data. The source is not named but is explicitly identified:
The security chief of Kashgar city’s Chasa township recently told RFA on condition of anonymity that “approximately 120,000” Uyghurs are being held throughout the prefecture, based on information he has received from other area officials.
“I have great relationships with the heads of all the government departments and we are in regular contact, informing each other on the current situation,” he said, adding that he is also close with the prefecture’s chief of security.
Tens of thousands of people are detained within Kashgar city alone, the Chasa township security officer said, citing statistics from the city’s subdistricts.
“Around 2,000 [are detained] from the four neighborhoods of Kashgar city, as well as an additional 30,000 in total from the city’s 16 villages,” he said.
Zenz notes that this figure of 120,000 is 10.4% of the city's Uyghur population, claiming it is a pattern.
It would be very easy for the Chinese government to refute this statistic: simply provide the name of the security chief of Kashgar city’s Chasa township in January 2018 and have him deny the comments. I do not see evidence that this has happened.
Zenz also cites another RFA article with the bare statistic that
A staff member who answered the phone at Bayanday’s No. 3 Village committee told RFA on condition of anonymity that his office had been instructed to send “10 percent” of the 4,131 residents living in 1,073 households under its supervision to re-education camps.
This claim, too, would be easy to debunk by producing a specific number for Bayanday’s No. 3 Village. No one has done so.
Source 4: Resident interviews
Zenz's group also conducted anonymous interviews with Xinjiang residents which he used to confirm his figure of roughly 10% of the Uyghur population being imprisoned.
Additional circumstantial evidence
Additional evidence such as satellite photos of camps is available in this ChinaFile article and this Quartz article.
edit, March 2021: Additional evidence uncovered since this answer was written in mid-2020 have been compiled into an independent investigation by the Newlines Institute for Strategy and Policy.