2012年7月22日日曜日

[Active Directory] Active Directoryドメイン名のベストプラクティス

ちょっと調べる必要があったので、Webで調べた結果と自分の経験を踏まえて表にまとめてみました。ユーザビリティについてはNetBIOS名やUPNの設定次第でユーザーになじみ易い形にできるので、サブドメイン名を使用するのが一番のように思えます。
What's in an Active Directory DNS Name?
Active Directory .local domain design and Office 365.
DNS 名前空間の計画
<Active Directoryドメイン名の比較表>
前提:パブリックなDNSドメイン名がexample.comの場合パブリックな
ドメイン名と
同じドメイン名
サブドメイン名
(MS推奨)
パブリックな
別TLDの
ドメイン名
プライベートなTLDの
ドメイン名
具体的なADドメイン名
example.comcorp.example.comexample.netexample.local
ユーザ
ビリティ
ユーザーにとって覚えやすくなじみ易いドメイン名か
→○:YES、×:NO
×
×
×
管理性インターネット用と社内用とでDNSを分け、相互に転送や委任を設定して管理負荷を軽減できるか
→○:YES、×:NO
×
名前空間
衝突の
潜在的
リスク
他社と名前空間が重複し、M&A等でADの連携/統合が必要になった場合に障害となる可能性はないか
→○:ほぼなし、×:あり
○/×
×
ドメイン名
確認が
できない
ことによるリスク
証明書発行等ドメイン名確認が必要な申請が却下されるリスクはないか
→○:ほぼなし、×:あり
○/×
×
備考
○/×の箇所は、ドメイン名を所有していれば○、所有していなければ×

[Active Directory] オブジェクトに対する権限を特定のセキュリティグループに付与するには

Active DirectoryではOUを分割して、そのOUの管理をセキュリティグループに委任するのが一般的です。これに対し、あるOU直下にフラットに格納されているオブジェクトに対して、サブOUに分割することなく、特定のセキュリティグループに権限を付与できないかを調べました。

結果、Windows Server 2008以降で追加されたOWNER RIGHTSというセキュリティプリンシパルで実現できそうなことがわかりました。
やり方は下記の通りです。私の場合、あるセキュリティグループのメンバーに、一部ユーザーアカウントのパスワードリセット権限を付与することが上手くいきました。
  1. 権限を付与したいセキュリティグループを、オブジェクトのOwnerとして指定
  2. オブジェクトまたは格納先OUのセキュリティ設定で、OWNER RIGHTSを追加し、付与したい権限を指定
OUに権限を委任する場合と異なり、誰が権限を持っているか分かりづらくなるのが欠点ですが、上手く使えばOUの階層を浅く保ちつつ権限を分割することができそうです。

2012年6月28日木曜日

[Office 365] ドメイン名に企業の商標等が含まれていると、StartSSLの無償証明書発行が却下されます

先日の記事で紹介したStartSSLに無償の証明書の発行を申請したところ、却下されてしまいました。却下の理由は下記の通りで、ドメイン名に「office365」が含まれていたことが原因です。ドメイン名は商標等を含まないものにしておいた方が無難ですね。
simply high profile brands and names should be generally avoided, but are not possible in the Class 1 (free) level at all. We can not issue the requested certificate containing office365 (a brand name of Microsoft).

2012年6月27日水曜日

[Office 365] AD FS用証明書を無償or安価で使用する

Office 365のAD FS(Proxy)では、インターネットから利用する場合や、社内からでもOWA以外でExchange Onlineを利用する場合には、Microsoft Federation Gateway(MFG)が信頼しているルートCAが発行した証明書が必要となります。証明書が必要な理由については、下記リンク先が参考になります。
AD FS Proxyの役割 « 日々徒然 
AD FS(AD FS Proxy)で利用するSSL証明書 « 日々徒然
その証明書ですが、無償のものでは以下が使えるようです。StartComの方はMFGが信頼しているCA一覧には載っていないのですが、海外の記事で使えたという報告を見つけました。(2012/7/1追記)FreeSSLも一覧にはありませんが、私個人の検証環境で使えることを確認しました。
Comodo(90日間)
StartCom(1年間)
FreeSSL(30日間)
一方、無償のものはどうしても有効期限があるので、期限がなくできるだけ安価なものを探したところ、Comodo Positive SSLにたどり着きました。Namecheap.comで9ドル/1年で購入可能な上、MFGが信頼しているCA一覧に載っているため、安心して使えそうです。購入の流れは下記リンク先が参考になります。
720円で SSL を導入する方法 | TipsZone
私は当面無償のもので評価しつつ、有効期限が切れたら有償のものにトライしてみたいと思います。

2012年6月5日火曜日

[Windows 8 CP] ワイヤレスネットワークのプロファイルを編集するには

遅まきながら、Windows 8 Consumer Preview版をPCに入れてみました。自宅の無線LANに繋ごうとプロファイルを作成したのですが接続に失敗し、プロファイルを編集しようとしても、編集画面にたどり着けない事態に遭遇。
色々調べたところ、最終的にはTechNet Forumの投稿を参考にして解決することができました。「ファイル名を指定して実行」から以下のコマンドを実行してオープンした画面から、ワイヤレスネットワークのプロファイルを編集することができます。
explorer.exe shell:::{1fa9085f-25a2-489b-85d4-86326eedcd87}

2012年3月22日木曜日

[Lync] ADでアカウントが無効化されてもLyncクライアントを使用できてしまうケースについて

海外のブログで興味深い記事を見つけたので紹介します。内容は、ADでアカウントを無効化してもLyncクライアントが使用できてしまう仕様の解説と、その対応方法です。
Disabling a User in AD Does Not Disable the User In Lync
記事の要約は以下の通りです。

  • Lync ServerがLyncクライアントを認証する方法には、以下の3つがある。
    • Kerberos
    • NTLM
    • クライアント証明書

  • クライアント証明書は、KerberosやNTLMで認証が成功すると生成されて(有効期間:180日)サーバー側DBとクライアント側証明書ストアに格納され、以降の認証の高速化や可用性向上に寄与する。

  • ADでアカウントを無効化した場合、KerberosとNTLMによる認証はできなくなるが、クライアント証明書は無効化されない。従って、ADでアカウントが無効化されたユーザーであっても、クライアント証明書を使った認証によってLyncクライアントでサインインし、他のユーザーとコミュニケーションすることができてしまう。

  • これを防止するには、ADでアカウントを無効化するだけでなく、Lync Serverでも「Disable-CsUser」コマンドレットを実行し、クライアント証明書の失効とユーザーの無効化を行う必要がある。

なお、元の記事のコメントには、無効化には「Set-CsUser -Enabled $false」の方が属性が削除されず適しているのではないか、というコメントがあります。ただ、以前記事にした通り、「Set-CsUser -Enabled $false」はクライアント証明書を失効させませんので、元の記事にある通り「Disable-CsUser」を実行する必要があります。

[Lync] サービスの識別子を確認するには

Lyncのコマンドレットでは、Identityパラメーターでサービスの識別子を指定することで、プールやサイトよりもさらに限定された範囲で構成を適用することができます。例えば、「New-CsMediaConfiguration」コマンドレットは、Identityパラメーターにサイトの他、音声ビデオ会議、メディエーション、アプリケーションのいずれかのサービスを指定可能です。

Identityパラメーターで指定するサービスの識別子は、「Get-CsService」コマンドレットの実行結果から確認できます。実行例は下記の通り。
> Get-CsService | select Identity

Identity
--------
UserServer:rtc01.contoso.com
Registrar:rtc01.contoso.com
UserDatabase:rtc01.contoso.com
FileStore:rtc01.contoso.com
WebServer:rtc01.contoso.com
ConferencingServer:rtc01.contoso.com ←音声ビデオ会議サービスの識別子
ApplicationServer:rtc01.contoso.com ←アプリケーションサービスの識別子
ApplicationDatabase:rtc01.contoso.com
CentralManagement:rtc01.contoso.com
CentralManagementDatabase:rtc01.contoso.com
FileStore:ARC01.contoso.com
ArchivingServer:ARC01.contoso.com
ArchivingDatabase:ARC01.contoso.com
MonitoringServer:ARC01.contoso.com
MonitoringDatabase:ARC01.contoso.com
EdgeServer:EDGE01.contoso.com
ManagementServer:EDGE01.contoso.com
PstnGateway:GW01.contoso.com
MediationServer:rtc01.contoso.com ←メディエーションサービスの識別子

2012年2月15日水曜日

[Lync] Set-CsUser -Enabled $falseとDisable-CsUserの違い

ユーザーのLyncクライアント利用を停止させたい場合、掲題のコマンドレットのいずれかを実行しますが、これらは下記の通り実行結果が異なります。ユーザーへのSIPアドレスや電話番号の割り当てを維持したい場合はSet-CsUser -Enabled $false、それらをリリースして他のユーザーに割り当てたい場合はDisable-CsUserが適しています。

  • Set-CsUser -Enabled $false
    • Lyncに関するユーザーのAD属性の内、msRTCSIP-UserEnabledをFalseに設定します。その他の属性はそのままです。
    • クライアント証明書を失効させません。

  • Disable-CsUser
    • Lyncに関するユーザーのAD属性(msRTCSIP-*)を全てクリアします。
    • クライアント証明書を失効させます。

[Lync] LyncクライアントがインストールされたPCからLync Web Appで会議に参加するには

Lyncの会議開催通知メールに書かれたURLにアクセスすると、LyncクライアントやLync AttendeeがインストールされたPCでは、それらが優先で起動されます。しかし、URLの末尾に「?sl=」を付加してアクセスすることで、優先での起動を回避して、Lync Web Appで会議に参加することができます。URLの例は下記の通りです。
https://meet.contoso.com/user01/7FSJC8W2?sl=
Lync Web Appは機能が劣るため、LyncクライアントやLync AttendeeがインストールされたPCで積極的に使う機会は少ないと思いますが、テストやトラブルで切り替える必要が生じた場合には、上記方法でアンインストール/再インストールの手間を省けます。

2012年2月3日金曜日

[SharePoint Workspace] ファイルタイプによる共有のブロックを解除するには

SharePoint WorkspaceのLaunchbarから[File]メニュー → [Option] → [General]の[Preferences] → [Security]タブの[Block restricted file types]チェックボックス(下記スクリーンショット参照)をオフにすることで、ファイルタイプによる共有のブロックを解除できます。


なお、ブロックされるファイルタイプは下記スクリーンショットの通り。

[Lync] ダイヤルインユーザーの名前を録音させる機能を無効にするには

Lync Serverではダイヤルインで会議に参加するユーザーのなりすましを防止するため、PINを使用しないユーザーに対しては、会議参加前に名前を音声で記録させ、それを主催者側で確認する機能が備わっています。デフォルトで有効になっているこの機能を無効にするには、「Set-CsDialInConferencingConfiguration」コマンドレットを下記の通り実行します。
Set-CsDialInConferencingConfiguration -Identity Global -EnableNameRecording $false
このコマンドレットでは他にも、ユーザーが会議に参加/退出した時のアナウンスに関する設定を行うことが可能です。詳細はTechNetを参照。このコマンドレットによる設定は、Lync Server Control Panelから確認・変更することはできない(対応する画面なし)ようなので、設計・展開時に漏れないよう注意が必要です。

2012年2月1日水曜日

[Lync] ユーザーがサインアウトした日時を取得するには

TechNet Forumの投稿より。以前ユーザーのサインイン日時を取得する方法を記事にしましたが、監視サーバーを展開済みであれば、サインイン日時に加えてサインアウト日時も監視用DB(LcsCDR)から取得できます。SQL文のサンプルは下記の通り。
select u.UserUri, r.RegisterTime as "Sign-in time", r.DeRegisterTime as "Sign-out time" from LcsCDR.dbo.Registration r inner join LcsCDR.dbo.Users u on r.UserId = u.UserId
サインイン日時とサインアウト日時が分かれば、ある期間にユーザーが合計何時間サインインしていたかを割り出して、ユーザーの利用度合いを測る、といった応用が考えられます。

2012年1月28日土曜日

[Lync] Lync Serverを構築したノートPC

Lync Serverを構築したノートPCのスペックは以下の通りです。

Model:Dell Latitude E6410
CPU:Core i5 M560 2.67GHz (Dual-core)
Memory:8.0GB
HDD:232GB + 149GB
OS:Windows Server 2008 R2 Enterprise Edition (64-bit)

また、仮想化ソフトウェアはVirtualBoxを使用しました。

[Lync] アーカイブ/監視サーバーの展開

フロントエンドサーバーを展開後、Step-by-Step インストール ガイドの内、「Lync Server 2010 ステップバイステップ ガイド Enterprise Edition アーカイブおよび監視サーバー編」に沿って、Lync Serverのアーカイブ/監視サーバーを展開しました。展開時に気付いた点/ハマった点は以下の通り。

  • 「Enterprise Edition」とありますが、フロントエンドサーバーをStandard Editionで展開していても全く問題なくガイドを流用できます。

  • ガイドではアーカイブサーバーと監視サーバーを別立てする構成になっていますが、1台のサーバーに同居させることも可能です。
    同居させる場合は、Topology Builderでアーカイブサーバーの設定と監視サーバーの設定を一度に行なってからトポロジーを公開すると、その後のLync Serverコンポーネントのセットアップを1度で済ませることができて手間を減らせます。

  • アーカイブ/監視サーバー用DBをホストするSQL Serverでは、ネットワーク構成でTCP/IP接続を有効にしておきます。無効の場合はアーカイブ/監視サーバーのセットアップが失敗します。SQL ServerのDeveloper Editionでは既定で無効になっているので、特に注意が必要です。

  • 監視サーバーレポート用のSQL Server Reporting ServicesおよびそのDBは、監視サーバーや監視サーバー用DBと同じサーバー/インスタンスに配置する必要はありません。

[Lync] バックエンドDBのFQDNをコマンドレットから取得するには

手前味噌ですが、TechNet Forumの投稿より。Lync Server Manageme Shellから「Get-CsService」コマンドレットを下記の通り実行することで、フロントエンドプールが関連付けられているバックエンドDBのFQDNを取得できます。
Get-CsService -PoolFqdn <プールのFQDN> -UserServer | Select-Object UserDatabase

[Lync] アーカイブされたコンテンツを閲覧するには

アーカイブされたIMや会議の入退室記録、およびファイルを閲覧するには、「Export-CsArchivingData」コマンドレットを実行してエクスポートします。必須オプションのみ指定する場合は下記の通り実行します。
Export-CsArchivingData -DBInstance <アーカイブ用DBサーバーのFQDN&インスタンス名> -OutputFolder <出力先フォルダー> -StartDate <開始日>
実行後、P2Pや会議のセッション単位で出力先フォルダーにOutlook Express Electronic Mail (EML) ファイルが生成されるので、Outlookで開きます。

もしOutlookがインストールされていないマシンで閲覧したい場合は、拡張子を.emlから.mhtに変更してIEで開くことで、IMや会議の入退室記録などテキスト部分のみ閲覧することが可能です。

2012年1月26日木曜日

[Lync] アドレス帳が正常にダウンロードできるかを確認するには

Lync Clientはサインイン後、既定で0~60分の間でランダムに待機時間をおいてから、バックグラウンドでアドレス帳のダウンロードを開始します。これは、朝の業務開始時など負荷が集中するタイミングで、アドレス帳のダウンロード処理がLync Serverやネットワークにもたらす負荷を時分割するための仕組みです。

しかし、アドレス帳のダウンロードが失敗してトラブルシュートをしている時には、即時でダウンロードの可否を確認できた方が便利です。即時で確認するには、ブラウザから下記URLにアクセスします。
【アドレス帳ダウンロード確認用のURL】
https://<Web servicesのFQDN>/abs/handler/<アドレス帳のファイル名>
例:https://rtc01.contoso.com/abs/handler/C-0fba-0fbb.lsabs
ダウンロードが可能な場合は、ファイル保存のダイアログが表示されます。ダウンロードが不可能な場合はエラーが返るので、その内容によって、ネットワークの問題なのか証明書の問題なのかといった切り分けを行うことが可能です。アドレス帳のファイル名は、フロントエンドプールの共有フォルダ配下(下記)を参照し、その中から任意の一つを指定します。
【アドレス帳ファイルの格納場所】
\\<共有フォルダ>\1-WebServices-1\ABFiles\00000000-0000-0000-0000-000000000000\00000000-0000-0000-0000-000000000000
なお、クライアント側のレジストリで「GalDownloadInitialDelay」のパラメーターを0に設定することで、サインイン後即座にダウンロードを実行させることも可能です(詳細は下記KBを参照。OCSのKBですが、Lyncにも当てはまります)。ただ、トラブルシュート時は、エラーの切り分けが可能な上記の方法が有用かと思います。
Network performance issues that are caused by Global address list (GAL) file downloads or by GAL delta file downloads in Office Communicator 2007 R2 

2012年1月23日月曜日

[Lync] ユーザーが最後にサインインした日時を取得するには

Lyncでユーザーが最後にサインインした日時は、Lync ServerのDB上に格納されており、簡単なSQL文で取得することができます。詳しい方法は下記サイトを参照。
How to Get the Last Time a User Registered with a Front End
注意すべきは、OCSではバックエンドDBに格納されるが、Lync Serverではフロントエンドのローカル構成ストア(RTCLOCALインスタンス)に格納されるようになったという点です。

ユーザーが最後にサインインした日時を定期的に取得し、過去1週間に1度でもサインインしたユーザーの数を集計する等しておけば、Lyncがどれだけユーザーに普及しているかの概況を把握するのに使えます。

2012年1月22日日曜日

[Lync] フロントエンドサーバーの展開

Lync Serverは製品概要だけでなく、インストール手順も各コンポーネントごとに公開されており、初学者でも簡易に環境を構築することが可能です。
Step-by-Step インストール ガイド
このインストールガイドを元に、ノートPCの仮想環境上にLync Serverを構築してみました。今後しばらくは、構築中に気付いた点やハマった点を記事にしていきたいと思います。

最初に、「Lync Server 2010 ステップバイステップ ガイド Standard Edition 編」に沿って、Lync Serverのフロントエンドサーバーを展開しました。展開時に気付いた点/ハマった点は以下の通り。

  • Lync Serverでは、AD DSと証明書インフラが必須となります(※)。ガイドでは手順が省略されているので、不慣れな人には下記リンク先が参考になるでしょう。

  • Exchange Serverの展開が必要となるのは、フロントエンドサーバー展開後、Lync ClientからExchange Serverとの連携機能を利用したり、Outlook+Lync Add-inで会議の招待メールを送るためです。
    従って、Exchange Serverの展開はフロントエンドサーバーの展開後でも構いませんし、前記機能の確認が不要であれば展開しないという選択肢もありです。
    なお、Exchange Serverの展開手順は下記サイトの「インストール編」を参照。

  • ガイドでは触れられていませんが、Exchange Serverを展開する場合、DNSでAutodiscoverを構成しないと、Lync ClientからEWS(Exchange Web Service)への接続が失敗します。詳細は下記サイトを参照。

  • これもガイドでは触れられていませんが、手順「Lync Server Systemのインストール」前に、DNSに「dialin.contoso.com」と「meet.contoso.com」のAレコード(※)を登録してください(IPアドレスはフロントエンドサーバーのもの)。
    登録しない場合、これらをURLに含むフロントエンドサーバーのWebサービスに対して、 Lync ClientやAdd-inからのアクセスが失敗します。
    一応、Topology Builderでトポロジーを公開後、to-doリストで注意を喚起されますが、ガイド通りに進めていると見落としてしまうと思います。
    ※CNAMEレコードでもいいかと思うのですが、MS公開情報上はAレコードと指定されているので。