kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio Team Servicesを会社で使う場合の考慮事項

最近「会社でVisual Studio Team Servicesを使うとき、アカウント管理どうすればいいんでしょう?」という相談をちらほら受けるようになったので、まとめておきます。

Visual Studio Team Servicesのアカウント管理方法について

  • MSアカウント
  • 組織アカウント

Visual Studio Team Services(VSTS/旧Visual Studio Online)は上記どちらかの方法でサインアップできます。MSアカウントを使う場合は無償のoutlook.comアカウントでもいいですし、個人が保有するISPのメールアドレスがあれば、ISPのメールアドレスをMSアカウントで使用するメールアドレスにしてもいいです。

余談ですが、MSアカウントで使用できるメールアドレス(outlook.com以外も含めてISPの独自アドレスでも)は後から変更することができます。MLとか登録して迷惑メールくるのでもういいやーというときはアカウントとしてははそのままで、メールアドレスだけ別のものにすればきれいになります。

MSアカウントに紐づくメールアドレスを変えた場合の注意点として、Windows 10 mobileなどのモバイルデバイスを使っている場合は一度デバイスをリセットする必要がありますが、Windows 8以降のデスクトップOSであればMSアカウントのメールアドレス変更にはちゃんと追従します。

組織アカウントとは何か?

さて、イマイチわかりやすそうでわかりにくい、組織アカウントというものが出てきました。最近MSのサイトでは組織アカウントかMSアカウントのいずれかを選択する画面を見たことがあるでしょう。こんな選択肢です。上が個人アカウントで、下が組織アカウントのアイコンです。

f:id:kkamegawa:20160116180438p:plain

非常によく勘違いされるのですが、この「組織アカウント」というのは、「会社のメールアドレス」では「ありません」。上に書いたように、それこそ会社のメールアドレスを使って個人のMSアカウントとすることができます。

azure.microsoft.com

Microsoftのサイトで記載されている組織アカウントというのは誤解を恐れずに言えば、Azure Active Directory(Azure AD)で管理さているアカウントのことです。例えば、Office 365やAzureのサービスはAzure ADで管理されています。MSアカウントでAzureを登録したとしても、裏ではAzure ADで管理されています。

azure.microsoft.com

AzureへのサインアップはMSアカウントが必要に見えますが、そんなことはありません。No1のサイトでMSアカウントなしでAzureサブスクリプションを作る方法が公開されています。

組織アカウントだけでAzureにサインアップする | ブチザッキ

ちなみにAzure ADは認証だけ(正確には50000オブジェクトまで)なら無料で使えます。

azure.microsoft.com

普通の組織なら、かかる費用はドメイン維持手数料だけですね。

Azure ADに関しては、私よりも専門家がいるので、そちらの方々のブログを見てください。今一番熱い領域の一つでもあるので、英語でもガンガン情報が発信されています。もちろんほかにもいっぱいあります。

azuread.net

IdM実験室

genkiw.wordpress.com

Visual Studio Team Servicesを組織アカウントで使う場合の手順

Visual Studio Team ServicesもAzure ADかMSアカウントのどちらで選べるか、選択できます。組織で使う場合、このようにすればいいかと思います。

  • 独自ドメインをとる(ある場合は使う)
  • Azure ADを作成する
  • MSDNサブスクリプションから登録する f:id:kkamegawa:20160116165404p:plain

  • MSDNサブスクリプションに組織アカウントをリンクする f:id:kkamegawa:20160116165403p:plain

  • AzureポータルからVisual Studio Team Servicesのテナントを作成する(MSDNのサブスクリプションからでもできます)

  • Azure ADに組織アカウントのメンバーを登録(Office 365で作られているAzure ADであれば、そのままでもOK)

これで、組織アカウントでVisual Studio Team Servicesが使えるようになります。

Azure ADと連携したグループ管理

注意点として、Azure ADでグループを作っていたとしても、Visual Studio Team ServicesではAzure ADのグループを参照して使用することはできないようです。

アカウント アクセスの管理

Manage Team Services account access with Azure AD | Team Services

Manage Team Services account access with Azure Active Directory groups | Visual Studio Team Services

FAQにも載っていますが、この辺は現在の技術的な課題というか、おそらく同期の仕組みの話なのな、と想像しています。オブジェクト数上限もありますが、Azure ADをマスターにして、グループに追加したら自動的にVSTS側のグループにも反映するようなスクリプトなどを自分で作る必要があるかもしれません。

REST APIにはないようなので、TFSのClient APIを使うしかないでしょうか。

Identity Class (Microsoft.TeamFoundation.Server)

(1/19訂正)Azure ADのグループに追加したメンバーをVSTSのグループとして引き継ぐことができるようです。すいません。

2015-October 8 Release Notes | Visual Studio Online

管理者が退職・異動するとき

Azure ADのサブスクリプションの所有者は一人のみです。共同管理者という形で複数の人がAzureサブスクリプションを管理することができます。また、所有者が退職するといった際は譲渡することもできます。

azure.microsoft.com

同様に、MSアカウントで作ってしまったAzureサブスクリプションを組織アカウントに移行することもできますので、既存のアカウントがある場合でも安心です。とはいっても、怖いので私はやったことがありません(^^;。

Visual Studio Team Servicesのテナントもオーナーの変更ができるようです。(account).visualstudio.com/admin/home/settings からアカウントを変更してください。

f:id:kkamegawa:20160116165405p:plain

会社のActive DirectoryとAzure ADでシングルサインオンする

会社が保有しているドメイン(exsample.co.jpなど)をAzure ADに使う場合、DNSにTXTレコードの登録が必要になるので、事前に会社のDNSサーバを管理している人に変更できるかどうか相談しておきましょう。

クライアントOSにWindows 10を使っている場合、Azure ADへのログオンもサポートされていますが、オンプレミスのようなグループポリシーなどの機能は今のところほとんどありません。現在はクラウド上で動作するWebアプリケーションに認証機能を提供するもの、と思っていただければいいかと思います。

ユーザーの管理もAzureポータルや、PowerShellコマンドレットで可能ですし、複数のWebアプリケーションを提供する場合とか認証機能を作りこまなくていいので、便利だと思います。

さて、組織内の話に戻せば毎回Azure ADと認証させるのは面倒だという場合、シングルサインオンを考えたくなります。この辺りも日進月歩なので、半年前の情報が古くなってしまう状態ですが、まずはこの辺から見てください。

www.atmarkit.co.jp