【新機能】アドレス帳ポリシーによるGAL分割

(この投稿はプレビュー版での情報を元に作成されています。正式版リリースの際には変更されている可能性もあるのでご注意ください。)

前回のカスタムアドレス帳に加えて、今回はそれらのアドレス帳をユーザーによってフィルタする機能であるアドレス帳ポリシーについて説明したいと思います。

詳細な実装などについてはTechnetの記事「アドレス帳ポリシーの作成」などを参照頂ければと思いますが、基本は「アドレス帳セット・グローバルアドレス帳・オフラインアドレス帳の作成」「アドレス帳ポリシーの作成」「ユーザーへのアドレス帳ポリシーの割り当て」の順番になります。

基本は前回作ったアドレス帳をベースとして、今回はグローバルアドレス帳(GAL)とオフラインアドレス帳(OAB)を追加で作成します。GALは、一緒に追加しようとしているサブセットであるアドレス帳の内容を全て含む必要があります。

New-GlobalAddressList -Name "Contoso GAL" -RecipientFilter '((Alias -ne $null) -and (CustomAttribute1 -eq ''1''))'
New-GlobalAddressList -Name "Fabrikam GAL" -RecipientFilter '((Alias -ne $null) -and (CustomAttribute1 -eq ''2''))'
New-OfflineAddressBook -Name "Contoso OAB" -AddressLists "Contoso GAL"
New-OfflineAddressBook -Name "Fabrikam OAB" -AddressLists "Fabrikam GAL"

この状態で、今度はContoso用とFabrikam用のアドレス帳ポリシーを作成します。固定で必要なものの他に、表示させたいものを選んで作成します。

New-AddressBookPolicy -Name "Contoso ABP" -AddressLists "All Contoso List","Contoso Rooms","Contoso Users","Contoso Groups","Contoso Contacts" -RoomList "Contoso Rooms" -GlobalAddressList "Contoso GAL" -OfflineAddressBook "Contoso OAB"
New-AddressBookPolicy -Name "Fabrikam ABP" -AddressLists "All Fabrikam List","Fabrikam Rooms","Fabrikam Users","Fabrikam Groups","Fabrikam Contacts" -RoomList "Fabrikam Rooms" -GlobalAddressList "Fabrikam GAL" -OfflineAddressBook "Fabrikam OAB"

そして、最後にこれをユーザーに割り当てます。(ユーザーはデフォルトではアドレス帳ポリシーはどれも適用されてませんので、全部のアドレス帳が参照できる状態になっています。) 今回はPowerShellで該当する属性を持つ全ユーザーに一括してアドレス帳ポリシーを適用します。

Get-Mailbox -RecipientTypeDetails UserMailbox -Filter {CustomAttribute1 -eq '1'} | Set-Mailbox -AddressBookPolicy "Contoso ABP"
Get-Mailbox -RecipientTypeDetails UserMailbox -Filter {CustomAttribute1 -eq '2'} | Set-Mailbox -AddressBookPolicy "Fabrikam ABP"

これで、ContosoはContosoの中だけ、FabrikamはFabrikamの中だけのアドレス帳が参照されます。例えばContosoのユーザーでログインするとこんな感じになります。
20130214_01

これで、グループ企業などで共同利用する際に、通常は必要としないアドレス帳情報にアクセスする必要がなくなり、オフラインアドレス帳のダウンロードサイズも小さくなるなどのメリットを受けることができます。

ただ、それでも同一ディレクトリ上にユーザー情報が混在する形になるので、当然異なるABPを持つユーザー間でも組織内として扱われますし、名前解決もします。ABRグループをまたいだグループを作成した場合は向こう側の組織で所属しているグループメンバも分かる形になります。セキュリティ的な意味での厳密な分割というよりは、基本的には使い勝手の面での分割ととらえるのが良いかと思います。

広告

EMCからOffice365への接続(Exchange 2010 SP3)

以前の投稿で、オンプレミスのExchange管理コンソールからExchange 2013ベースの新しいOffice365のテナントに接続できないという話をしたかと思います。

新たにオンプレミスのExchange 2010 SP3がリリースされたので、接続を試みてみました。

接続できました!
20130213_01

残念ながら、操作可能な機能は既存のテナントへの接続に比べると制限されるようです。従来は、組織の構成の方も触れましたが、今回は受信者の構成しか触れません。

リモートドメインやトランスポートルール、OWAMailboxPolicyや保持ポリシーなどは触れないので、Exchange管理センターかPowerShellから接続する形になります。

【新機能】アドレス帳のカスタマイズ

(この投稿はプレビュー版での情報を元に作成されています。正式版リリースの際には変更されている可能性もあるのでご注意ください。)

新しいOffice 365について、着々とリリースに向けて情報が公開され始めてきております。今回は、あまり紹介はされていないのですが、個人的には特に中~大規模ユーザーには非常に有益な機能なのではないかと自分的には考えている新機能「アドレス帳のカスタマイズ」について紹介します。

機能自体はオンプレミスでは実装されているのですが、権限の問題の為でしょうか今までのOffice 365(Exchange Online)では公開されておらず、オンプレミスと比較しての制約として明示されていた物が解消された形になります。

具体的にこれがどういう機能かと言いますと、従来のグローバルアドレス帳(ならびにオフラインアドレス帳)では、社内の全アカウントがずら~~~っと同じ画面上に名前順に並んでいたかと思います。
20130213_01

画面で表示が可能な数十ユーザーまでの規模であればこれでも良いのですが、例えばこれが数百や数千の規模になった場合、これを目的別(例えば事業部別やロケーション別)に分割した物を作成したいというニーズが発生します。これを実現するのがグローバルアドレス帳(GAL)のサブセットであるアドレス帳のカスタマイズと呼ばれる機能になります。

1点注意が必要なのは、この機能はあくまで利便性向上の為に分割するものであり、個人が見れる範囲をセキュリティ上限定するという用途のために利用する機能ではありません。

それでは、使い方を見てみましょう。この機能を利用するためには、管理者の役割で「Address Lists」という権限が必要です。プレビュー版では、全体管理者が所属するOrganization Managementにもこの権限が割り当てられていないようなので、まずはこの権限を作業を行う管理者アカウントに付与します。

今回は、Organization ManagementにAddress Listsの権限を付与します。【アクセス許可】【管理者の役割】からリストから選択して追加します。
20130213_02

続いて、アドレス帳を作成するためにPowerShellに接続します。新しいバージョンのExchange Onlineに接続するには、最後のImport-PSSessionのところに-AllowClobberを付けて接続します。

$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session -AllowClobber

ここで、作成するカスタムアドレス帳について少し解説します。アドレス帳自体は、Company(会社)、Department(部門)、StateOrProvince(都道府県)またはCustomAttribute1-15(カスタム属性)やその他Exchange関連属性をベースに作成します。各オブジェクト(ユーザーメールボックスやリソースメールボックス、グループ、メール連絡先など)に応じて入力可能な項目が異なるため、統一的なリストを作成するために、全種類のオブジェクトで利用可能なカスタム属性(15+5個存在します)を利用する事が多いです。

ただし、外部連絡先のメールアドレスは一意である必要があるので、例えばContoso、Fabrikamの両社に共通する社外の取引先などを追加しようとした場合にアドレス重複で追加できなません。実際の運用では両者のリストに含める必要があるオブジェクトについては、もう少し工夫が必要な場合もあります。(※2013/3/3注 Set-MailContactコマンドで外部連絡先にも拡張属性がセットできたので修正します)

ここでは、CustomAttribute1に会社の属性を1…Contoso社、2…Fabrikam社と事前に入力しているとします。-Containerオプションは、階層構造で親となるアドレス帳を指定できます。

New-AddressList -Name "All Contoso List" -RecipientFilter '((Alias -ne $null) -and (CustomAttribute1 -eq ''1''))'
New-AddressList -Name "Contoso Rooms" -RecipientFilter '((Alias -ne $null) -and (((RecipientDisplayType -eq ''ConferenceRoomMailbox'') -or (RecipientDisplayType -eq ''SyncedConferenceRoomMailbox'')) -and (CustomAttribute1 -eq ''1'')))' -Container "All Contoso List"
New-AddressList -Name "Contoso Users" -RecipientFilter '((Alias -ne $null) -and (((((ObjectCategory -like ''person'') -and (ObjectClass -eq ''user'') -and (-not(Database -ne $null)) -and (-not(ServerLegacyDN -ne $null)))) -or (((ObjectCategory -like ''person'') -and (ObjectClass -eq ''user'') -and (((Database -ne $null) -or (ServerLegacyDN -ne $null)))))) -and (CustomAttribute1 -eq ''1'')))' -Container "All Contoso List"
New-AddressList -Name "Contoso Groups" -RecipientFilter '((Alias -ne $null) -and (ObjectCategory -like ''group'') -and (CustomAttribute1 -eq ''1''))' -Container "All Contoso List"
New-AddressList -Name "Contoso Contacts" -RecipientFilter '((Alias -ne $null) -and (ObjectCategory -like ''person'') -and (ObjectClass -eq ''contact'') -and (CustomAttribute1 -eq ''1''))' -Container "All Contoso List"
New-AddressList -Name "All Fabrikam List" -RecipientFilter '((Alias -ne $null) -and (CustomAttribute1 -eq ''2''))'
New-AddressList -Name "Fabrikam Rooms" -RecipientFilter '((Alias -ne $null) -and (((RecipientDisplayType -eq ''ConferenceRoomMailbox'') -or (RecipientDisplayType -eq ''SyncedConferenceRoomMailbox'')) -and (CustomAttribute1 -eq ''2'')))' -Container "All Fabrikam List"
New-AddressList -Name "Fabrikam Users" -RecipientFilter '((Alias -ne $null) -and (((((ObjectCategory -like ''person'') -and (ObjectClass -eq ''user'') -and (-not(Database -ne $null)) -and (-not(ServerLegacyDN -ne $null)))) -or (((ObjectCategory -like ''person'') -and (ObjectClass -eq ''user'') -and (((Database -ne $null) -or (ServerLegacyDN -ne $null)))))) -and (CustomAttribute1 -eq ''2'')))' -Container "All Fabrikam List"
New-AddressList -Name "Fabrikam Groups" -RecipientFilter '((Alias -ne $null) -and (ObjectCategory -like ''group'') -and (CustomAttribute1 -eq ''2''))' -Container "All Fabrikam List"
New-AddressList -Name "Fabrikam Contacts" -RecipientFilter '((Alias -ne $null) -and (ObjectCategory -like ''person'') -and (ObjectClass -eq ''contact'') -and (CustomAttribute1 -eq ''2''))' -Container "All Fabrikam List"

これで、All Contoso Listをトップの階層とするContosoのみのグローバルアドレス帳とAll Fabrikam ListをトップとするFabrikamのみのグローバルアドレス帳が作成されます。残念ながらOWAでは階層構造は表現されませんが、Outlookの中では階層的に表示されます。
20130213_03 20130213_04

1点TIPSとして紹介しますが、新規でカスタムアドレス帳を作成したあと、その反映までに非常に(何日もかかる場合も)時間が掛かります。オンプレミスの環境では通常Update-Addresslistコマンドで手動更新を行いますが、このコマンドは現時点で開放されていないようです。

この為、カスタムアドレス帳を作成した場合、それに該当するオブジェクトの何かの属性(例えばCustomAttribute15)をダミーの値に変更してオブジェクトに手動で更新をかけてあげれば即時に反映されます。

Get-Mailbox | Set-Mailbox -CustomAttribute15 0
Get-DistributionGroup | Set-DistributionGroup -CustomAttribute15 0

次はアドレス帳ポリシーについて紹介しようと思います。