Microsoft MVP성태의 닷넷 이야기
Team Foundation Server: 16. 팀 프로젝트 읽기 전용 사용자 등록 [링크 복사], [링크+제목 복사],
조회: 24166
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

팀 프로젝트 읽기 전용 사용자 등록


물론, 이 단계 이전에 TFS 설치나 Team Project 만드는 방법 등이 선행되어야 하겠지만, 그 부분은 이미 TFS를 조금이라도 다루실 줄 아는 분들이라면 모두 아실 것이기 때문에 굳이 언급하지 않겠습니다. (아니면, 나중에 필요하면 언급하겠습니다.)

대신, 이번에는 "개발자" 환경 설정이라기 보다는, "프로젝트"를 살펴볼 수 있는 권한만을 가진 사용자를 위한 설정을 해보겠습니다.

단계는 크게 다음과 같은 설정으로 나뉠 수 있습니다.

  1. 새로운 사용자 계정을 TFS 보안 그룹에 추가
  2. 해당 사용자에 대한 팀 프로젝트 단위의 보안 설정
  3. 해당 사용자에 대한 버전 컨트롤의 보안 설정
  4. 해당 사용자에 대한 Area 보안 설정
  5. 해당 사용자에 대한 WSS 사이트 보안 설정
  6. 해당 사용자에 대한 Report Server 보안 설정

그럼, 단계별로 하나씩 알아보겠습니다.



1. 새로운 사용자 계정을 TFS 보안 그룹에 추가
VS.NET 2005를 실행시키고, "Team" / "Team Foundation Server Settings" - "Group Membership..." 메뉴를 선택합니다. 여기서는 Workgroup 버전으로 예를 들것이므로, "Team Foundation Licensed Users" 그룹에 원하는 사용자를 추가해야 합니다. (물론, 사용자가 아닌 그룹 단위로 설정하는 것이 권장되어집니다.)

howto_connect_to_tfs_9.png

위의 그림에서 "Properties..." 버튼을 누른 후 나오는 대화창에서 "Windows User or Group"을 선택하고 "Add..." 버튼을 누르면 다음과 같이 사용자를 선택할 수 있는 대화창이 나옵니다.

howto_connect_to_tfs_10.png

적절한 계정을 입력하고 확인을 눌러주면, 해당 사용자는 TFS에 정상적으로 접속이 가능합니다.




2. 해당 사용자에 대한 팀 프로젝트 단위의 보안 설정
TFS 접근 권한을 가진 사용자는 이제, 특정 "Team Project"에 대해서도 접근할 수 있도록 설정되어져야 합니다. 이를 위해서 "Team" / "Team Project Settings" - "Group Membership..." 메뉴를 선택합니다. 그러면 다음과 같은 대화창을 볼 수 있습니다.

howto_connect_to_tfs_11.png

여기서는 특정 사용자에 대해 프로젝트의 "읽기 권한"만을 줄 것이기 때문에 "Readers"를 선택하고, "Properties..." 버튼을 눌러줍니다. 그러면 아래와 같은 대화창이 나오게 되고, "Add Member"의 유형을 "Windows User or Group"으로 선택 후 "Add..." 버튼을 누르고 원하는 Windows 사용자 계정 또는 그룹을 선택해 줍니다. (물론, 이 단계에서 기존 TFS 그룹에 사용자를 포함시키지 않고 별도의 새로운 TFS 사용자 그룹을 만들어서 포함시켜 줄 수도 있습니다.)

howto_connect_to_tfs_12.png




3. 해당 사용자에 대한 버전 컨트롤의 보안 설정
만약, 해당 사용자를 TFS에 미리 정의된 "Readers" 그룹에 포함시켰다면 이 과정은 필요가 없습니다. 하지만, "사용자 정의 TFS 그룹"을 만들어서 윈도우즈 계정을 포함시킨 경우라면 이 단계에서 해당 "사용자 정의 TFS 그룹"에 대해서도 버전 컨트롤 보안 설정을 해줘야 합니다.



소스 코드를 열람하기 위해서는 Team Project와는 별도로 "소스 컨트롤"에 대해서도 보안 설정을 해줘야 합니다. 이를 위해서는 "Source Control Explorer"에서 해당 소스 컨트롤의 노드를 오른쪽 마우스 버튼으로 클릭해서 나오는 메뉴의 "Properties..."를 선택합니다. 그러면 대화창이 뜨게 되고, "Security" 탭을 누르면 다음과 같은 화면이 보입니다.

howto_connect_to_tfs_13.png

"읽기 권한"을 주게 될 계정 또는 그룹을 입력하고 "Permission"에는 "Read"만을 허용한 상태에서 확인을 눌러줍니다.




4. 해당 사용자에 대한 Area 보안 설정
이번 과정 역시 버전 컨트롤 설정과 마찬가지로 해당 사용자를 TFS에 미리 정의된 "Readers" 그룹에 포함시켰다면 이 과정은 필요가 없습니다.



"작업 항목"에 대한 열람 권한을 주기 위해서는 "Area" 영역에 대해 보안 권한을 주어야 합니다. 이를 위해서 "Team" / "Team Project Settings" - "Areas and Iterations..." 메뉴를 선택하여 다음과 같은 대화창을 실행합니다.

howto_connect_to_tfs_14.png

대화창의 우측 하단에 보이는 "Security..." 버튼을 누르면 다음과 같이 보안 설정을 하는 대화창이 뜨게 됩니다.

howto_connect_to_tfs_15.png

만약 WorkItem을 추가하고 싶은 경우라면, 위에서 "Edit work items in this node"를 선택해 줘야 합니다.




5. 해당 사용자에 대한 WSS 사이트 보안 설정
TFS와는 별도로, WSS 웹 사이트의 보안 설정을 해줘야 합니다. 사실, TFS 그룹조차도 연동이 안되는 것 같은데요. 일례로, TFS에서 새로운 사용자 그룹을 추가해도 WSS 웹 사이트에는 보이지 않습니다. (개인적으로, 이 부분이 참 아쉬운 부분 같습니다.)

일단, 보안 설정을 위해서는 해당 Team Project와 연결된 포탈 사이트로 접속을 해야 합니다. 이를 위해서는 "Team" / "Show Project Portal..." 메뉴를 선택합니다. 그런 후에는 "/sites/[TeamProject 이름]/_layouts/1033/webadmin.aspx" 사이트로 접속을 하면 사용자/그룹을 추가/생성/삭제할 수 있는 웹 페이지가 나옵니다.

howto_connect_to_tfs_16.png

여기서 "Manage users" 링크를 선택하고 이후 나타나는 화면에서 지시하는 데로 사용자를 추가해 주면 됩니다. 보통 읽기를 목적으로 하는 경우 "Readers" 그룹에 포함시켜주면 되지만, 만약 사용자 정의 TFS 그룹을 만들었다면 "Manage users"를 선택하기 이전에 "Manage site groups"를 선택해서 비슷한 역할의 그룹을 만들어서 사용자 추가를 해줄 수도 있습니다.




6. 해당 사용자에 대한 Report Server 보안 설정
마지막 단계로, "Report Server"에 대한 보안 설정이 남았습니다. 역시 이것도 TFS 그룹과는 아무런 관련이 없으며 Windows 사용자 계정에 의한 설정으로 직접 "Reports" 서비스로부터 제공되는 웹 사이트에 접속해서 보안 설정을 해줘야 합니다.

TFS의 AppTier 측 서버에 로그온 한 후, 웹 브라우저를 이용하여 "http://127.0.0.1/Reports/"로 접속하면, 화면에 현재 TFS에 등록된 프로젝트들이 나열되게 됩니다. 이때 원하는 Team Project를 선택하고 들어가면 아래와 같은 화면으로 바뀌게 됩니다.

howto_connect_to_tfs_17.png

"속성" 탭을 선택하면 "일반", "보안" 메뉴가 나오게 되는데, 이 중에서 "보안" 탭을 선택해주면 다음과 같은 화면으로 바뀌게 됩니다.

howto_connect_to_tfs_18.png

이제, "항목 보안 편집" 메뉴를 선택하면 "새 역할 할당" 버튼이 다시 나타나게 됩니다. 다시 "새 역할 할당" 버튼을 선택해 주면 최종적으로 윈도우즈 사용자 그룹 또는 계정에 대해 Report Services에 대한 권한을 할당해주는 화면이 나옵니다.

howto_connect_to_tfs_19.png

위와 같이 적절한 권한을 주고 확인 버튼을 눌러주면 모든 것이 완료됩니다. 이제 해당 사용자 계정으로 TFS 서버의 Team Project에 접속하게 되면 아래와 같은 식의 화면이 나오게 됩니다.

howto_connect_to_tfs_8_ok.png

반면에 아래에서 보는 것처럼 폴더 아이콘에 빨간색의 "X" 마크가 있으면, 지금까지의 과정에서 해당 작업에 대한 설정에 오류가 있음을 나타냅니다.

howto_connect_to_tfs_8_error.png




[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/23/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 16  [17]  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13521정성태1/11/202410349닷넷: 2199. C# - 한국투자증권 KIS Developers OpenAPI의 WebSocket Ping, Pong 처리
13520정성태1/10/202410032오류 유형: 888. C# - Unable to resolve service for type 'Microsoft.Extensions.ObjectPool.ObjectPool`....' [1]
13519정성태1/10/20249702닷넷: 2198. C# - Reflection을 이용한 ClientWebSocket의 Ping 호출파일 다운로드1
13518정성태1/9/202410475닷넷: 2197. C# - ClientWebSocket의 Ping, Pong 처리
13517정성태1/8/20249633스크립트: 63. Python - 공개 패키지를 이용한 위성 이미지 생성 (pystac_client, odc.stac)
13516정성태1/7/20249794닷넷: 2196. IIS - AppPool의 "Disable Overlapped Recycle" 옵션의 부작용
13515정성태1/6/20249711닷넷: 2195. async 메서드 내에서 C# 7의 discard 구문 활용 사례 [1]
13514정성태1/5/20249615개발 환경 구성: 702. IIS - AppPool의 "Disable Overlapped Recycle" 옵션
13513정성태1/5/20249717닷넷: 2194. C# - WebActivatorEx / System.Web의 PreApplicationStartMethod 특성
13512정성태1/4/202410065개발 환경 구성: 701. IIS - w3wp.exe 프로세스의 ASP.NET 런타임을 항상 Warmup 모드로 유지하는 preload Enabled 설정
13511정성태1/4/20249725닷넷: 2193. C# - ASP.NET Web Application + OpenAPI(Swashbuckle) 스펙 제공
13510정성태1/3/20249492닷넷: 2192. C# - 특정 실행 파일이 있는지 확인하는 방법 (Linux)
13509정성태1/3/202410641오류 유형: 887. .NET Core 2 이하의 프로젝트에서 System.Runtime.CompilerServices.Unsafe doesn't support netcoreapp2.0.
13508정성태1/3/202410100오류 유형: 886. ORA-28000: the account is locked
13507정성태1/2/202411173닷넷: 2191. C# - IPGlobalProperties를 이용해 netstat처럼 사용 중인 Socket 목록 구하는 방법파일 다운로드1
13506정성태12/29/202310309닷넷: 2190. C# - 닷넷 코어/5+에서 달라지는 System.Text.Encoding 지원
13505정성태12/27/202312160닷넷: 2189. C# - WebSocket 클라이언트를 닷넷으로 구현하는 예제 (System.Net.WebSockets)파일 다운로드1
13504정성태12/27/202311296닷넷: 2188. C# - ASP.NET Core SignalR로 구현하는 채팅 서비스 예제파일 다운로드1
13503정성태12/27/202310457Linux: 67. WSL 환경 + mlocate(locate) 도구의 /mnt 디렉터리 검색 문제
13502정성태12/26/202311033닷넷: 2187. C# - 다른 프로세스의 환경변수 읽는 예제파일 다운로드1
13501정성태12/25/202310324개발 환경 구성: 700. WSL + uwsgi - IPv6로 바인딩하는 방법
13500정성태12/24/202310838디버깅 기술: 194. Windbg - x64 가상 주소를 물리 주소로 변환
13498정성태12/23/202312535닷넷: 2186. 한국투자증권 KIS Developers OpenAPI의 C# 래퍼 버전 - eFriendOpenAPI NuGet 패키지
13497정성태12/22/202310721오류 유형: 885. Visual Studiio - error : Could not connect to the remote system. Please verify your connection settings, and that your machine is on the network and reachable.
13496정성태12/21/202310592Linux: 66. 리눅스 - 실행 중인 프로세스 내부의 환경변수 설정을 구하는 방법 (gdb)
13495정성태12/20/202310863Linux: 65. clang++로 공유 라이브러리의 -static 옵션 빌드가 가능할까요?
... 16  [17]  18  19  20  21  22  23  24  25  26  27  28  29  30  ...