Azure DevOps 服務
瞭解如何在公用和私人之間變更 Azure DevOps 專案的可見度,並瞭解每個可見度設定的安全性和存取影響。
這很重要
只有已啟用 「允許公用專案」原則 的組織才能建立專案,或將專案的可見度變更為公用。 尚未使用該政策的組織不再可以使用該政策。 Microsoft 建議使用 GitHub 來滿足您所有的公用專案需求。
公開專案時的變更
將專案設為公開會影響權限、存取層級和可用功能。
這很重要
當您將專用專案變更為公開可見性時, 所有專案內容都會變成公開存取。 您無法選擇性地將某些儲存庫、區域路徑或建置構件保留為公用專案中的私有。
安全性和權限變更
當您將專案可見度從私人切換為公開時,會發生下列變更:
- 會忽略拒絕權限:任何明確設定為「拒絕」的權限都不會針對公用使用者強制執行
- 授予的最低存取權限:非成員會自動獲得公共內容的基準讀取權限
- 建置管線範圍:設定為 Project Collection 範圍的管線會自動與 Project 範圍一起執行,以增強安全性
存取層級差異
| 使用者類型 | 私人專案存取權 | 公共項目訪問 |
|---|---|---|
| 匿名用戶 | 沒有存取權 | 對大多數內容的唯讀存取 |
| 利害關係人 | 有限的 Boards 存取權,沒有 Repos 存取權 | 對 Repos 和 Boards 的完全訪問權限 |
| 基本使用者 | 測試計劃以外的完整存取權 | 測試計劃以外的完整存取權 |
| 基本 + 測試計劃 | 完整存取權,包括 Test Plans | 完整存取權,包括 Test Plans |
非會員的功能可用性
下表顯示非專案成員的使用者可以使用哪些功能:
| 服務區域 | 非會員訪問 | 註釋 |
|---|---|---|
| 儀表板 | 唯讀、有限的小工具 | 許多小部件不可用 |
| Wiki | 唯讀 | 完整內容可見 |
| 面板 | 僅讀取工作專案 | 隱藏的待辦專案、面板、短期衝刺 |
| Repos | 唯讀 Git 存放庫 | 隱藏的 TFVC 存放庫 |
| 管線 | 讀取建置/發行結果 | 編輯器和庫隱藏 |
| 測試計劃 | 沒有存取權 | 無法使用手動測試 |
| Search | 完整的搜尋功能 | 跨可存取內容 |
| 設定 | 沒有存取權 | 隱藏的管理功能 |
必要條件
變更專案可見度之前,請確定您符合下列需求:
| Requirement | 詳細資訊 |
|---|---|
| 許可 | 專案集合系統管理員 或組織擁有者 |
| 組織設定 | 必須啟用「允許公用專案」原則 |
| 安全性審查 | 完成 移轉檢查清單 |
移轉前安全性檢查清單
警告
公用專案會公開歷程記錄資料,包括舊認可、工作專案和建置記錄。 在公開專案之前,請仔細審查所有內容。
組織和身分曝光
- [ ] 會員資訊:所有組織成員的姓名和電子郵件地址都會可見
- [ ] 組織設定:公開所有組織和專案設定的唯讀檢視
- [ ] 處理中繼資料:組織專案中的所有選項清單值都會顯示
- [ ] 建置歷史記錄:來自建置觸發器和公開的 Git 提交的名稱和電子郵件地址
跨專案考量
- [ ] 連結成品:檢查可能暴露敏感資訊的私人專案連結
- [ ] 共用資源:檢閱專案所存取的組織層級資源
內容安全性審查
工作專案和敏捷式工具
- [ ] 歷程記錄工作專案:檢閱所有工作專案,包括已關閉的工作專案,以取得敏感性資訊
- [ ] 區域路徑安全性:確認沒有區域路徑具有特殊安全性限制(在公共專案中忽略拒絕的權限)
- [ ] 討論和註解:檢查所有工作專案討論是否有敏感或不適當的內容
原始程式碼儲存庫
- [ ] 提交歷史記錄:查看整個 Git 歷史記錄是否有憑證、安全漏洞或專有程式碼
- [ ] 提交訊息:檢查所有提交訊息是否有敏感資訊或不當內容
- [ ] 檔案內容:確保沒有檔案包含憑證、API 金鑰或機密資料
建置和發行管線
- [ ] 管線定義:檢閱公開的認證、內部 URL 或環境詳細資料
- [ ] 組建記錄:檢查歷程組建記錄中是否有敏感資訊
- [ ] 服務連線:確認沒有非成員無法存取的私人摘要相依性
構件和套件
- [ ] 套件內容:檢閱專案範圍摘要中的所有套件,以瞭解隱私權問題
- [ ] 摘要設定:瞭解公用專案摘要的上游設定已停用
擴充功能和自訂
- [ ] 自訂擴充功能:驗證擴充功能是否適用於非成員
- [ ] 工作專案表單自定義:測試具有非成員存取權的自訂控制項和欄位
步驟 1:為您的組織啟用公用專案
登入您的組織 (
https://dev.azure.com/{yourorganization})。選取組織設定。
選取原則。
在安全性原則下,開啟允許公用專案。
步驟 2:變更專案可見度
導覽至您的專案 (
https://dev.azure.com/{yourorganization}/{yourproject})。選取 [專案設定]。
選取 [概觀]。
在 Visibility 下拉式功能表中,選擇 Public 或 Private (公開)。
選取 [儲存]。
管理公用專案中的參與者
新增專案成員
將參與者新增至公用專案的方式與私人專案相同:
- 移至 專案設定>[許可權]。
- 選取 [ 新增 ] 以邀請使用者。
- 指派適當的存取層級 (專案關係人、基本或基本 + 測試計劃) 。
如需詳細資訊,請參閱 將使用者新增至您的組織。
外部使用者考量
當您 邀請外部使用者 加入公用專案時:
- 他們可以存取您組織中的所有公開內容
- 如果您在其他地方有敏感性內容,請考慮為公用專案建立個別組織
敏感內容的替代方法
選項 1:公開專案的個別組織
如果您目前的組織包含敏感資料:
- 建立專門用於公共專案的新組織
- 僅將非敏感性內容移轉至新組織
- 將敏感專案保留在原始私人組織中
選項 2:選擇性內容遷移
移動敏感性工作專案
- 使用 移動工作專案功能 將敏感性專案傳輸至私人專案
- 跨專案連結會繼續適用於成員,但對非成員保持隱藏狀態
Git 存放庫提示移轉
對於有問題歷程記錄的儲存庫,請僅移轉目前狀態:
警告
此動作會建立一個與原始儲存庫沒有連線的新儲存庫。 提取要求歷程記錄和變更追蹤會遺失。
# Clone the existing repository
git clone <original_clone_URL>
cd <repository_name>
# Ensure you're on the desired branch
git checkout main
# Remove Git history
rm -rf .git # On Windows: rmdir /s .git
# Initialize new repository
git init
# Connect to new repository in public project
git remote add origin <new_public_repo_URL>
# Push current state as initial commit
git add .
git commit -m "Initial public release"
git push --set-upstream origin main
非會員的限制
公用專案的非成員無法執行下列動作:
- 編輯或建立任何內容 (檔案、工作專案、管線)
- 查看項目成員的電子郵件地址或聯繫信息
- 存取管理設定或組態頁面
- 在整個組織中使用進階搜尋功能
- 在相同組織中的多個公用專案之間瀏覽
- 收藏或關注構件
疑難排解公用專案存取權
常見問題
問題:非成員在公開專案後無法存取專案
- 解決方案:確認組織的「允許公用專案」原則已啟用
問題:某些內容仍然受到限制
- 解決方案:檢查可能影響特定區域的拒絕權限
問題:外部使用者無法貢獻
- 解決方案:確保他們被新增為具有適當存取層級的專案成員