Team Foundation Server Nasıl Kurulur 2

Yazar: Kadir Sümerkent
Kategori: Visual Studio ve Araçlar
Eklenme Tarihi: 30.10.2007 14:50:24



Team Foundation Server kurulumunu ele alan yazı dizisinin 2. bölümü. Bu bölümde Team Foundation Server Kurulumunda Güvenlik konusunu ele alıyoruz.

 

Team Foundation Server Kurulumunda Güvenlik

Team Foundation Server Kurulumunda İhtiyaç Duyulan Kullanıcı Hesapları
Team Foundation Server kurulumunda gerekecek kullanıcı hesaplarının, tercih edilen kurulum modeline göre farklılık göstereceğini bilmemizde fayda var. Örneğin Single-Server kurulumda Active Directory domain kullanıcı hesaplarını veya kurulumun yapıldığı bilgisayar üzerinde yer alan yerel kullanıcı hesaplarını kullanabilme imkanımız vardır.

Single-Server Deployment
Team Foundation Server'ı, bir Active Directory domain üyesi bilgisayara kurarken (aşağıdaki listede belirtilen) üç Active Directory kullanıcısına gereksinim duyarsınız.

Team Foundation Server'ı, bir workgroup üyesi bilgisayara yüklemek içinse yerel kullanıcı hesaplarını kullanabilirsiniz. Team Foundation Server'ın kurulumu ve servislerin çalıştırılmasında yerel kullanıcı hesaplarını kullanmanız halinde domain kullanıcılarını Team Foundation Server'a ekleyemezsiniz ve domain kullanıcıları proje oluşturamazlar.

Dual-Server Deployment
Team Foundation Server'ı dual-server deployment ile kurmak için kullanılacak her iki bilgisayarın da bir Active Directory domainine üye olması ve kurulum için 3 adet domain kullanıcı hesabı gerekmektedir.

Gerekli Kullanıcı Hesapları
Team Foundation Server'ı kurmaya başlamadan önce kurulum sırasında kullanacağınız kullanıcı hesaplarını tanımlamanız gerekir. Ben tfs installation guide'a bağlı kalarak örnek kullanıcı isimlerini kullanıyorum ancak elbette siz kullanıcı adlarını değiştirebilirsiniz ancak kullanıcı hesaplarını tanımlarken farklı isimler kullanacaksanız veya varolan bazı kullanıcıları kullanacaksanız, kurulum sırasında örnek kullanıcı adları ile değiştirirken hata yapmadığınızdan emin olmanız gerekir.

TFSSETUP
- Team Foundation Server Kurulumunu çalıştırmak için kullanılır.
- Bu kullanıcı hesabı Team Foundation Server bilgisayarlarında Administrator seviyesinde olmalıdır.
- Bu kullanıcı hesabı diğer iki servis hesabı ile aynı domainde bulunmalıdır.

Örneğin iki servisi domain accountu ile çalıştırıp, kurulumu local bir account ile çalıştıramazsınız.

TFSSERVICE
- Team Foundation Server Windows Services (Code Coverage Analysis Service ve TFSServerScheduler) ve Sharepoint Timer Service tarafından servis hesabı olarak kullanılır.
- Team Foundation Server Application Pool (VSTF AppPool) ve Windows Sharepoint Services application pool'ları (TFWSS ve WSS_AppPool) tarafından application pool identity olarak kullanılır.
- Team Foundation Server bilgisayarlarında Log on Locally yetkisine sahip olmalıdır.
- Daha etkin bir güvenlik sağlamak için bu account Team Foundation Server bilgisayarlarında Administrator seviyesinde olmamalıdır ve Active Directory üzerinde Account is sensitive and cannot be delegated seçeneği seçili  olmalıdır.

TFSREPORTS
- SQL Server Reporting Services tarafından servis hesabı olarak kullanılır.
- Bu kullanıcı hesabı Team Foundation Server bilgisayarları üzerined Administrator seviyesinde olmamalıdır.
- Bu kullanıcı hesabının Team Foundation Server bilgisayarları üzerinde Log on locally yetkisi olması gerekir.

TFSPROXY
- Team Foundation Server Proxy tarafından, Team Foundation Application-Tier ve Data-Tier bilgisayarlarından farklı bir domainde bulunan bir bilgisayarda kullanılır.
- Bu servis remote bilgisayarlarda Administrators grubuna dahil olmalıdır.
- Bu servis proxy'i kullanan Team Foundation Server'ın bulunduğu bilgisayarda Team Foundation Valid Users grubunun üyesi olmalıdır.

Gerekli Portlar
Team Foundation Server ve istemciler arasındaki iletişimin sağlanabilmesi için bu bileşenler arasındaki firewall / firewall'ların gerekli TCP portlarından iletişime izin verdiğinden emin olmanız gerekir. Eğer Windows Firewall açıksa ve Exception'lara izin verecek şekilde konfigure edilmişse, Team Foundation Server kurulum sihirbazı gerekli port tanımlamalarını yapacaktır. Eğer firewall exception'lara izin vermiyorsa veya 3. parti bir firewall kullanıyorsanız, gerekli port tanımlamalarını manuel olarak yapmanız gerekecektir.

SQL Server 2005 için gerekli portlar
Microsoft SQL Server 2005 (Developer, Standart ve Enterprise Edition) aşağıdaki portları kullanır:

Uygulama

Msiproperty.ini'deki Key ismi

TCP Port

SQL Service

SQL_SERVICES

1433

SQL Browser Service

SQL_BROWSER

1434

SQL Monitoring

SQL_MONITORING

1444

SQL Server Analysis Service Redirector

SQL_ANALYSIS_REDIRECTOR

2382

SQL Server Analysis Services

SQL_ANALYSIS

2383

SQL Server Reporting Services

VSTF_WSSSQL_PORT

80

 

Windows Sharepoint Services için gerekli portlar

Uygulama

Msiproperty.ini'deki Key ismi

TCP Port

Windows Sharepoint Services

VSTF_WSSSQL_PORT

80

Sharepoint Central Administration

VSTF_WSS_ADMIN_PORT

17012


Team Foundation Server için gerekli portlar

Uygulama

Msiproperty.ini'deki Key ismi

TCP Port

Team Foundation Server

VSTF_WEBSITE_PORT

8080

Team Foundation Server Proxy

VSTF_WEBSITE_PORT

8081

Team Foundation Build Remoting

Yok

9191

 

Team Foundation Server Güvenlik Grupları
Team Foundation Server'ın güvenliği, Windows domain ve yerel güvenlik gruplarından farklı olarak Team Foundation Server güvenlik grupları tarafından yönetilir.

Team Foundation Server Security Group

Açıklama TCP Port

Team Foundation Administrators

- Bu grubun üyeleri Team Foundation Server üzerinde her türlü işlemi yapmaya yetkilidir.

- Kurulum sihirbazı varsayılan olarak kurulumu çalıştıran kullanıcıyı bu gruba dahil eder.

Service Accounts

Bu grup, Application Pool Identity'leri gibi Team Foundation Server servis hesaplarını içerir.

Team Foundation Valid Users

Bu grup sunucuya erişim yetkisi olan tüm kullanıcı ve grupları içerir.

 

Team Foundation Server kurulum sihirbazı, kurulumu çalıştıran kullanıcıyı Team Foundation Administrators grubuna dahil eder, Bu gruba farklı kullanıcıları eklemek için Team Foundation Administrators grubuna dahil olan bir kullanıcı hesabını kullanmanız gerekir.Kurulum tamamlandıktan sonra, kurulumu çalıştırdığınız account ile oturum açarak Team Foundation Administrators grubuna diğer kullanıcıları eklemeniz gerekir.

Team Foundation Server aynı zamanda Team Foundation Server Servis hesabını Service Accounts grubuna dahil eder.

Team Foundation Administrators Uygulama Grubuna Kullanıcıların Eklenmesi
Team Foundation Server'ın güvenliği, Windows domain ve yerel güvenlik gruplarından farklı olarak Team Foundation Server güvenlik grupları tarafından yönetildiğini ve Team Foundation Administrators grubunun üyelerinin Team Foundation Server üzerinde her türlü işlemi yapmaya yetkili olduğunu söylemiştik.

Kullanıcıların yeni projeler oluşturmasını sağlamak için kullanıcıları bu gruba dahil etmeli ve Windows Sharepoint  Services ve SQL Server Reporting Services üzerinde ilgili rollerle ilişkilendirmemiz gerekir. Bu prosedürü tamamlayabilmek için Team Explorer'a gereksinim duyarız.

Bir Kullanıcı Hesabını Team Explorer'ı Kullanarak Team Foundation Administrators grubuna dahil etmek için

1. İstemci bilgisayara, Team Foundation Administrators grubunun üyesi olan bir kullanıcı hesabı ile oturum açın.
2. Team Explorer'ı kurun.
3. Visual Studio'yu çalıştırın ve Team Foundation Server'a bağlanın.
4. Team Explorer'da ilgili Team Foundation Server'ı seçin.
5. Team menüsünden Team Foundation Server Settings'i, sonra Group Membership'i tıklayın.
6. Global Groups diyaloğundan kullanıcı eklemek istediğiniz grubu seçin ve Properties'i tıklayın.
7. Team Foundation Server Group Properties diyaloğunda Members sekmesini tıklayın ve Windows User or Group'u seçtikten  sonra Add'i tıklayın.
8. Select User Names or Groups diyaloğunda domain adını ve eklemek istediğiniz kullanıcı adlarını microsoft\kadirs  formatında girin. Birden çok sayıda kullanıcı eklemek için kullanıcı adları arasına noktalı virgül (;) koyun.
9. Ok'i tıklayarak ekranı kapatın.

Bir Kullanıcı Hesabını TFS Group Security Client Tool'u (TFSSecurity.exe) Kullanarak Team Foundation Administrators grubuna dahil etmek için

1. İstemci bilgisayara, Team Foundation Administrators grubunun üyesi olan bir kullanıcı hesabı ile oturum açın.
2. Team Foundation Server'ın kurulum klasöründe yer alan Tools klasörünü açın. Bu klasör varsayılan olarak sürücü:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Tools adresinde yer alır.
3. File menüsünden Tools'u seçin ve CMD Prompt Here'ı tıklayın.
4. Command prompt ekranında Team Foundation Server Administrators grubuna bir kullanıcı eklemek için TFSSecurity uygulamasına /g+ parametresini eklemeniz gerekir. Kurulum sırasında aşağıdaki tanımlamaları ve Team Foundation Server sunucusunu belirtmeniz gerekmektedir.
- Adm: Kullanıcının global administrators grubuna dahil edileceğini belirtir.
- n: eklenecek domain ve kullanıcı adını belirtir.
- /server: Application Tier için Team Foundation Server sunucusunu belirtir.

Kullanıcıların Team Projeleri Oluşturmasını Sağlamak
Team projeleri oluşturmak için kullanıcılar aynı zamanda SQL Server Reporting Services ve Windows Server Sharepoint Services'ta da gerekli rollere dahil edilmiş olması gerekir.

- Kullanıcıları Windows Sharepoint Services'ta Administrator rolüne eklemek için http://<application-tier>/_layouts/1033/user.aspx sayfasını kullanabilirsiniz.
- Kullanıcıları SQL Server Reporting Services'ta Content manager rolüne eklemek için SQL Server Reporting Services anasayfasını kullanabilirsiniz: http://<application-tier>/Reports .

Güvenlik
Bu prosedürü tamamlayabilmek için kullanıcı hesabınızın veya grubunuzun Edit server-level information yetkilendirmesinin Allow olarak set edilmiş olması gerekir. Team Foundation Server kurulumu için kullanılan kullanıcı hesabı için bu tanımlama otomatik olarak yapılır ve kurulum sırasında kullanıcı ekleme işlemi yapılabilir. Daha detaylı bilgi için Team Foundation Server Administrator's Guide'da (http://msdn2.microsoft.com/en-us/library/ms181758.aspx) "Team Foundation Server Permissions" başlığına bakabilirsiniz.

Team Foundation Server'da Güvenlik Rolleri
Bu bölümde Team Foundation Server'da, Windows Sharepoint Services'ta ve SQL Server Reporting Services'ta kullanacağımız güvenlik rollerini ele alıyor olacağız.

Güvenlik Rol Üyelikleri
Bir kullanıcı hesabını Team Foundation Server güvenlik rolüne eklerken, ilgili kullanıcı hesabını aynı zamanda ilgili Windows Sharepoint Services ve SQL Server Reporting Services rollerine de eklemeniz gerekir.

Yeni bir Team Project oluşturabilmek için, Team Foundation Server Administrators, Windows Sharepoint Services Administrator ve SQL Server Reporting Services Content Manager gruplarının üyesi olmanız gerekir. Aşağıdaki tablo Team Foundation Server'daki global güvenlik grupları için her üründeki doğru güvenlik rol üyeliklerini göstermektedir.

Team Foundation Server Güvenlik Grubu

Windows Sharepoint Services Rolü

SQL Server Reporting Services Rolü

[Server]\Team Foundation Administrators

Administrator (top-level site)

Content Manager (system-level role)

[Server]\Team Foundation Valid Users

X1

X1

[Server]\Service Accounts

X2

X2


1Team Foundation Valid Users grubu sunucuya erişimi olan tüm kullanıcı ve grupları içermektedir. Bu grup sunucu üzerindeki team projelerinin üyesi olan tüm kullanıcıları içermektedir. Bu grubun üyeliklerini düzenlemeye gerek yoktur.

2
Service Accounts grubundaki kullanıcı hesapları Windows Sharepoint Services ve SQL Server Reporting Services'ta güvenlik rollerine üyelik gerektirmemektedir.

Yeni bir team projesi oluşturduktan sonra proje bazında kullanıcıları farklı rollere atayarak yetkilendirme yaparız. Windows Sharepoint Services siteleri güvenlik tanımlamalarını top-level siteden inherit etmezken SQL Server Reporting Services item-level security, system-level rolleri inherit eder. Aşağıdaki tablo, her ürün grubunda proje seviyesinde güvenlik tanımlamaları yapmak için doğru güvenlik rollerini listelemektedir.

Team Foundation Server Güvenlik Grubu

Windows Sharepoint Services Rolü

SQL Server Reporting Services Rolü

[ProjectName]\Project Administrators1

Administrator

Content Manager

[ProjectName]\Contributor1

Contributor

Browser

[ProjectName]\Reader1

Reader

Browser


1Bu isim MSF for Agile Software Development process template'ten türetilmiştir, Project-Level güvenlik gruplarının gerçek isimleri, seçilen process template'e göre farklılık gösterecektir.

Windows Sharepoint Services ve SQL Server Reporting Services için güvenlik rol grup üyeliklerinin yönetimi ile ilgili detaylı bilgi, ilgili ürünlerin dokumantasyonunda, technet ve msdn'de bulunabilir.