uncategorized

用Azure Conditional Access限制公司以外地區不可以連入VSTS

就目前微軟以雲端服務為優先情況,VSTS的功能是越來越強大,再加上本身VSTS也可以與地端整合,所以,使用VSTS來做為版控工具是一個不錯選擇,不過,很多人知道好處,但畢竟是雲端服務又會很擔心,如果在公司外部讓公司有心人進入後,把所有程式碼都拿走就慘了,安全性的管理一直想用VSTS的一個。

其實只要透過Azure Conditional Access就可以解決這問題。畢竟,在整個微軟雲端服務中,無論是Office 365或是VSTS都是在Azure上面的一個SaaS服務,換句話說其帳號是在Azure AD中被管理,透過下圖可以知道就可以知道

因此,就來看看Conditional Access機制可以幫忙做到那些事情

進入Azure Conditional Access


使用VSTS時候,記得要讓Azure與VSTS綁定,可以到Team Services accounts看是否有被綁定進來,此外,還必須注意就是Azure AD的Subscription與VSTS被指定的Subscription是否有相同,如果是沒有多個Subscription基本就不會有問題,不然會發生怎樣設定都無法成功,因為被設定在不同的Subscription上面,如果是從Team Services accounts建立的VSTS問題是最少的

前置作業都確定差不多,就可以去Azure AD的Conditional Access功能

一進去就可以看到Conditional Access說明

開始新增規則


這裡可以設定多個規則,我們來設定一組規則試試看,按下新增規則,可以看到有下面幾點可以設定

分成工作指派存取控制,前者是設定相對應的條件,後者是規範在前者條件下是否可以有存取權限,看似似乎不太難設定

使用者和群組

有哪些人員要被規範,原則上都是全部人員,可以設定要包括人員或是排除那些人員不被限制

雲端應用程式

這裡則是設定有被Azure AD管理的服務,就這組測試用的案例來說,只有VSTS有被Azure AD管理,只會出現VSTS,當然如果想要所有雲端應用程式都套用,就直接選定全部吧

像是正式環境,又有使用O365,所以,這邊列表的APP又多了Office 365,且基本上有用到微軟雲端服務的產品,都會被歸納進來,如Hockeyapp

條件設定

在條件設定可以設定分別有

  • 登入風險
  • 裝置平台 : 可以套用那些平台上面
  • 位置 : 主要設定白名單,有列在名單中才可以存取,這是最重要設定選項之一
  • 用戶端應用程式

其中位置設定,若是公司網路,可以把公司網路範圍區域設定為白名單,這邊必須採用CIDR標示法,如果不知道要怎樣標示,也可以透過工具www.ipaddressguide.com/cidr幫忙

這邊情境我們設定如下

存取控制

上面條件設定完成後,就是設定若是符合這些條件,需要進行那些動作,可以設定鎖定或是有條件的進入,先來設定全部封鎖存取

設定完成後,就可以多一個條件原則,這時候我們再去VSTS測試看看

用網頁登入後,就會出現這提示,表示你現在可能不在公司或是已經你現在網路位置是不被允許登入的,當然用Visual Studio也沒辦法連入了

如果這時候想要某些IP可以連入情況,就去排除選項把信任IP放入就可以,除了IP還可以設定被授予裝置,只是這部分需要與Intune整合就是


透過這樣條件組合,就可以在增強VSTS使用上的安全性,也可以符合每家企業對於安全性的不同定義。

參考資料

https://docs.microsoft.com/en-us/azure/active-directory/active-directory-conditional-access