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 ←メディエーションサービスの識別子