Windows8 RPからOffice365に接続する

Windows 8 Release PreviewとWindows Server 2012 Release Candidateが出ました。世間では皆さんインストールして色々試されているみたいですので、私も少し触ってみます。

Windows 8から大きく変わった点としては、スマホやタブレットなどの環境を意識した作りになっており、メール・カレンダーが標準で入っていてActive Syncに対応しているという点になります。

スタートメニューでメールを選択します。

Exchange Onlineのアカウント(メールアドレスとパスワード)を入力すると、Autodiscoverで自動的に接続されます。メールアドレスとログオンユーザ名が違う場合は、ログオンユーザ名が聞かれます。

ちなみにADFSのシングルサインオン環境のアカウントでも特に問題なく利用できます(ActiveSyncの場合はクライアントから見た場合の差は無いですから当然と言えば当然ですが)

アカウントが追加され、Active Syncポリシーに従ってセキュリティ保護を強化するかどうかのダイアログが表示されますので、「これらのポリシーを適用する」を選択します。

以上の作業で、メール・予定表・連絡先が同期されるようになります。デフォルトでは、過去2週間分のデータがプッシュ通知で受信されますので、設定を変更したい場合は「設定」の「アカウント」から変更します。

ちなみに、Exchangeから見た場合は、以下の様なActiveSyncデバイスからアクセスが来たと認識されております。「デバイス名:WIN8RP」「デバイスのモデル:Windows PC」「デバイスの種類:WindowsMail」

Exchange ActiveSyncですので、リモートワイプを行うこともできます。スマートフォンとは違い、Exchangeから同期したアカウントの設定・コンテンツのみが消されるという形になりますので、運用上は比較的使いやすいかもしれません。

また、ADFS環境の場合、Exchange OnlineからADFS(ADFS Proxy)に渡されてくるクレーム情報は以下の感じです。プロトコルはMicrosoft.Exchange.ActiveSync、User AgentはWindowsMail/16.4.3364.0511です。

IPアドレスが、アクセス元のIPではなくExchange OnlineになっているのはCASとMBXのDCが分かれた場合に出るという症状でしょうか? POP/IMAPではたまに出るアカウントとかありましたが、ActiveSyncで出たのは始めてなのでちょっと調べてます。

ただ、あくまでActiveSyncプロトコルを利用しておりますので、余りに長い期間のコンテンツを同期対象としてしまうと動作が非常に遅くなってしまいますので、メインで利用するのはOutlookもしくはOWAとして、モバイル端末に設定して補完するような用途とした方が好ましいかと思います。

ただ、OWAと違ってわざわざブラウザのウィンドゥを立ち上げておかなくても、バックグラウンドでプッシュ通知で自動的に更新が反映されますし、モバイル用途には非常に向いているように見えます。上手く使い分けできると良いかもしれませんね。

【参照】
Windows 8 での Office 365 ベース電子メール アカウントの構成(公式Wiki)
Windows 8 Consumer Preview + Exchange Online を使用したデバイスの管理(SEの雑記さん)

[自習書] ADFSによるSSO環境構築で気になる点

人気の日本オリジナルコンテンツ、「AD FS によるシングルサインオン環境構築のステップバイステップガイド」の第2版が公開されました。いつもこの自習書シリーズは色々と参考にさせて頂いていて大変良いコンテンツです。

今回、ADFSの自習書の中で、いくつか自分で誤記であったり、自分で書くのであればこういった書き方ではなくこうするといったポイントがいくつかあるので、この中で簡単に纏めさせて頂きます。

「どっちが正しい」というよりは、あくまでそういった見方も有るという形でごらんを頂けると幸いです。

項番 自習書原文 気になるポイント
4.1 SQL Server 2005 Express Editionにて対応する手順を記載しております。 ※多分今はSQL Server 2008/2008R2 Express Editionに変更されているかと
4.2 Active Directory Federation Services 2.0 は、Windows Server 2008 または Windows
Server 2008 R2 で展開します。
※ADFS(非Proxy)の方は接続用のPowerShellの要件があるので余程の事情が無い限りはR2の方が良いと思います。
5.1 Microsoft Online Servicesディレクトリ同期ツール:
SQL Server 2005 Express
Identity Lifecycle Manager 2007
SQL Server 2008 ExpressまたはSQL Server 2008R2 Express
Identity Lifecycle Manager 2007またはForefront Identity Manager 2010
同期頻度:
初回の同期後は、3時間ごとに同期が行われます。またレプリケーション期間は構成できません。
レプリケーション間隔の変更はサポートされませんが、管理者が手動で同期することは可能です。
5.2 AD FSプロキシの展開:
ユーザーが会社のネットワークの外部から接続している場合に展開する必要があります。
ユーザーが会社のネットワークの外部から接続している場合、もしくはOWA以外からのメールクライアントからExchange Onlineに接続する必要がある場合に展開する必要があります。
8 各ツールの用意
ADFS01
 .NET Framework 3.5 SP1
 Microsoft Online Services Sign-In Assistantツール 不可 ※3

.NET Framework 3.5.1
※事前ダウンロード可能になりました。
Microsoft Online Services サインイン アシスタント (IDCRL7) – 32 ビット版
Microsoft Online Services サインイン アシスタント (IDCRL7) – 64 ビット版
9.2 ドメイン登録情報の変更
外部DNS上に以下のTXTレコードを追加しています。
“mskkonline.com MS=ms12345678”  ※数字部分はドメインによって異なります。
レコードということであれば、 “MS=ms12345678” か、あえて丁寧に言うのであれば “@ MS=ms12345678”
9.3 ドメインの所有確認
7. 再び、[ドメイン]に戻り、追加したドメインの状態が”アクティブ”になっていることを確認します。
7. 再び、[ドメイン]に戻り、追加したドメインの状態が”確認済み”になっていることを確認します。
表4下
SIPレコード(Lync Online)
SIPレコード、_sipfederationtls._tcpレコード(Lync Online)
10.1 UPNサフィックスの追加
AD と SMTP のドメイン名が異なる場合、UPNの設定が必要となります
ADのUPN名が自社が所有していないドメイン名やインターネットから引けないアドレス(????.localなど)の場合、代替UPNサフィックスの設定が必要となります
10.6 ディレクトリ同期の確認
“Microsoft Identity Integration Server”サービスの状態が以下のようになっていることを確認して下さい。
“Microsoft Identity Integration Server”サービスまたは”Forefront Identity Manager Syncronization Service”の状態が以下のようになっていることを確認して下さい。
11.1.3 SSL証明書の発行
また証明書の有効期間は1年間となりますので、必要に応じて、更新をご検討下さい。
また証明書には有効期間(例えば1年など)が定められておりますますので、必要に応じて、複数年度購入や更新をご検討下さい。
11.7 AD FSの冗長化
また、2台以上で構成する場合は、冗長化構成の為NLBの設定が必要です。
また、2台以上で構成する場合は、冗長化構成のためNLBの設定もしくはハードウェアLBが必要です。
11.9 Microsoft Online Services ID フェデレーション管理ツールのインストール Windows PowerShell 用 Microsoft Online Services モジュールに名称が変更されてます。
12.2 Hostsファイルの編集
※AD FSを複数台構成し、NLB(ネットワーク負荷分散)による冗長化を行った場合は、…
※ADFS ProxyはDMZに配置しますので、普通はNLBではなくHLB(ハードウェアLB)で冗長化します。
12.9 ポート要件
TCP 443
Outlook Web App
Lync 2010 client
※参照元のMSのドキュメントも誤ってますが、独自ドメインの場合はSSLによるAutodiscoverのプロセスがSSL証明書のCNの不一致で失敗し、HTTPにフェールオーバーして行われますので、TCP 80&443です。
13.3 アクセス制御
(表)
社内
デバイス OWA/Outlook
IP制限 ○
IP制限は社内でもOWA以外へのExchange Onlineからの要求のみしか行えません(たとえば、社内の特定の拠点のIPからのみOWAを利用させたいなど)
表で言うなら、社内は以下の通り。ただ、普通ActiveSyncはモバイルアクセスになるので、アクセス元のIP制御は実効上出来ないと思いますが…デバイス  OWA/SharePointOnline/LyncOnline    Outlook、ActiveSync、POP/IMAP
IP制限   △(ADFS Proxy経由かそうでないかのみ制御可能)  ○
14.1 認証失敗ログ(AD FS によって制御されたログ)
・アクセス元の IP アドレス
・アクセス プロトコル (RPC/HTTPS, POP/IMAP, ActiveSync など)
・アクセス アプリケーション (Outlook であればバージョンやエディション)
前の章でもそうですが、IP,Protocol,Agentを付与してくるのはExchange Onlineのみです。
Exchange Onlineの場合アクセス元の IP アドレス
Exchange Onlineの場合アクセス プロトコル (RPC/HTTPS, POP/IMAP, ActiveSync など)
Exchange Onlineの場合アクセス アプリケーション (Outlook であればバージョンやエディション)
14.2 認証成功ログ(AD FS によって認証されたログ) ※そもそも、14.3の工程を行い、「成功の監査」を記録できるようにしないとこのログは記録されません。

私自身の認識が間違っているなど有れば、コメントなどで連絡を頂ければ確認して適宜訂正をさせて頂きます。

Exchange OnlineへのSP2適用

昨年末から6ヶ月間かけて展開が計画されていたExchange Onlineサービスですが、概ねゴールデンウィーク前後に終了したようです。(OWAの接続先がsin,hknではなくsix,hkxで始まるサイト名になっていることで確認ができます。)

大々的には出してはいませんが、この更新によってSP1ベースがSP2ベースに変わっているようです。これに伴い、一部挙動が変更されている機能がありますので紹介します。

  1. メールボックスの自動マッピング機能の制御が可能に
    • 従来は、Outlookから接続した場合、Full Controlアクセス権限を有する全てのメールボックスに対しても自動的に接続されておりました。多くのメールボックスにFull Control権限を持つユーザの場合、処理に時間が掛かることがありましたが、Add-MailboxPermissionコマンドレットに新しく追加されたAutoMappingオプションによりこれを制御することができるようになりました。
  2. 訴訟ホールド対象のメールボックスに対する操作の扱いが変更に
    • 訴訟ホールドが有効化されているメールボックスは、普通の操作では無効化/削除ができなくなりました。これを回避するには、事前に訴訟ホールドを無効化するか、Remove-Mailboxコマンドレットなどに追加されたIgnoreLegalHoldオプションを利用する必要があります。

フューチャーフォンからのアクセスが可能になるOWA mini(OwaMailboxPolicy上は一応有効化されてますけど)とかGAL分割とかに活用できそうなアドレス帳ポリシーとかは残念ながら提供されていないのですかね。

Exchange 2010 SP2 の新機能

Office365での独自ドメインの利用(RocketNet)

Office365で独自ドメインを利用する場合、Lync Onlineで利用するSRVレコードを追加して下さいという指示が来ます。

ただ、世の中を見回してみますとDNSホスティングサービスでSRVレコードを提供している物は少ない…というか殆ど無いというのが現状です。今回は、対応している数少ない事業者さんの中でGMOさんの提供されているRocketNetというサービスを紹介します。

DNSサービスは、ホスティングサービス(”年”額1000円から)を契約するか、扱っているドメインの種別は限定されますが、ドメインを新規で取るか移管を行えば利用できます。

操作は、ロケット操縦席という管理コンソールから行います。

一覧からドメインを選択します。

DNSゾーンのタブを選択

新しいレコードを選択

Office365の認証用のTXTレコードを追加します。

しばらく待って確認が取れるとOffice365で独自ドメインが利用できるようになります。

指示だと、このままNSレコードをOffice365に切り替えるということになりますが、ここは移行のタイムラグが大きい工程なので、事前に現在のDNSにもレコードを登録して影響が最小限になるようにしたいと思います。(なお、プランEの場合はDNSを切り替えなくて良いので、この次の工程までで完了です。)

まずは、登録するべき情報をOffice365で取得します。

続いて、これを先ほどのDNS管理のレコードの追加で登録します。

SRVレコードのみ、追加が少し分かりづらいですが以下の様に入力します。ゾーンの名称は「_sipfederationtls._tcp」になります。

この状態で、ネームサーバーのタブからOffice365のDNSサーバに切り替えを行えば完了です。

ちなみにこちらのサービスですが、DNSの方は上記の通り利用可能なドメインの種別が少ない(同じGMOさんのサービスですが、お名前.comの方が断然多いです)のと、取得したドメインのwhois情報がGMOに固定になる(通常はwhois公開代行と呼ばれている機能)ということで、少し利用可能な環境を選ぶかもしれません。

ただ、Webサービスを購入すればDNS管理も利用できるっぽいので、公開Web用を兼ねて借りても良いかもですね。

Exchange OnlineのGALに何も表示されない

Office365のExchange Onlineを利用する場合、ネットワーク的に離れているということもあり、キャッシュモードでの利用が推奨され、アドレス帳もオフラインアドレス帳を利用するのが一般的かと思います。ただし、オフラインアドレス帳の更新は1日1回であり、その時間もサービス仕様としては定められておりませんので、環境によってはグローバルアドレス一覧を直接利用したいというニーズもあるかと思います。

今回は、グローバルアドレス一覧を開いた際に発生する事象について紹介したいと思います。まず、アドレス帳を開いて、「グローバルアドレス一覧」をリストから選びます。

すると、通常はアドレス一覧が表示されているはずなのに何も表示されていない状態となります。

一見すると、グローバルアドレス一覧に接続できていないように見えますが、実際は「その他のフィールド」のラジオボタンにチェックを入れて検索を行うと、検索することが可能です。

この事象ですが、MicrosoftのKBも出ており対策用のFixITも出ているのですが、要約しますと『日本語版のOutlook2007/2010はふりがなによるソートがデフォルトの「名前のみ」の状態で有効になっているが、接続先のExchangeのCASが日本語で無い場合、ふりがなによるインデックス化が行われない為、何も表示されない』ということのようです。(「名前のみ」を解除し、ふりがな以外で検索することは可能)

Outlook 2007 または Outlook 2010 で、Exchange Server 2007 または Exchange Server 2010 の GAL の検索結果が正しく表示されない

オンプレミスの環境であればいかようにでも対策は取れますが、残念ながらOffice365はマルチテナントのサーバであり、かつ日本語以外の環境のテナントも数多く収容されているマルチリンガルなサーバーですので、改修(システム言語を日本語に…)というのは難しい気がします。

という訳で、解決法は大きく2つ

  1. オフラインアドレス帳を普段は利用し、グローバルアドレス一覧は最新の情報を検索する場合にのみ利用する
  2. Outlookを英語版と同じ環境(ふりがなが有効化されていない設定)に変える

という形となります。後者に関しては、Fix ITが出てます。手動でやる場合は、HKEY_CURRENT_USERSoftwareMicrosoftExchangeExchange Provider に DisableGALPhoneticをDWORDで作成し「1」を設定します。

これにより、グローバルアドレス一覧を開いた際にもデフォルトでユーザー一覧が表示されるようになります。(ふりがなの欄は消えてしまいますが)

 

P.S.ちなみに、ふりがな自体はPowerShellのSet-Userコマンドレットで投入することは可能です。

Exchange Online送信時のアドレス表記について

Exchange Onlineでは、Fromのメールアドレスが 表示名 <username@domain.name> の形式でアドレスが表示され、これを自由に変更することはできません。(※SMTP接続で送信している場合のみ、メーラーで設定された形式で表示されます。)

グローバルに展開する企業など、Fromに日本語の文字が混じってしまうことを好ましく思われない場合もございますので、今回はこれをカスタマイズする方法を紹介します。

Exchangeには、マルチバイトが格納可能な表示名(DisplayName)の他に、ASCII文字しか入力できない簡易表示名(SimpleDisplayName)という領域が用意されています。ここに適切な値を入力し、外部送出時にこの値をセットするように設定することで、要件を満たすことができます。

こちらの処理は、GUIでは用意されていませんので、PowerShellから実施する必要があります。Exchange Onlineに接続後にSet-UserコマンドとSet-RemoteDomainコマンドで設定を行ないます。今回は、以下の条件を設定してみます。

  1. admin(表示名は管理者)に「administrator」という簡易表示名を設定する
  2. 外部の全ドメインに送信する際に簡易表示名を利用する
Set-User admin -SimpleDisplayName administrator
Set-RemoteDomain default -UseSimpleDisplayName $true

以前は 管理者 <admin@xxxx.onmicrosoft.com> と表示されていた物が、無事 administrator <admin@xxxxx.onmicrosoft.com> と表示されるようになりました。

ちなみに、この設定の影響を受けるのは外部への配信のみになりますので、内部での配送は今までどおりの 表示名 <username@domain.name>  の形式で行なわれます。

ADFSで監査ログを取得する

Office365のシングルサインオンの為に利用されるADFSは、既定ではクレームルールでアクセスが拒否された場合、アプリケーションとサービスログ-ADFS2.0-Adminのイベントログにエラーレベルで「いつ・誰がアクセス拒否されたか」に続き、情報レベルで「そのユーザーの制御に用いた情報」が記録されます。(クレームのサイズに応じて複数に分割して表示されます)

これにより、不正なアクセス要求が無いかどうか、ならびに既存のクレームルールの不備は無いかということが判別することができます。クレームルールの検証・新規作成や監査目的など、要求が成功した場合でもこの記録を取りたいというケースが有りますので、今回はその取得方法について紹介します。

これを行うには、ADFSで監査ログを有効にする必要があります。

  1. まず、監査ログを生成できる権限をADFSのサービスアカウントが有しているかどうかを確認します。通常通りのウィザードで展開した場合は、有効になっているはずです。
  2. 次に、auditpol.exeで成功・失敗の監査を有効にします。ただし、KBなどに記載のコマンドをそのまま実行してもエラーが出ます。原因は、サブカテゴリ名が日本語になっているので、そこをコマンド内でも日本語にする必要があるからです。
    auditpol.exe /set /subcategory:”Application Generated” /failure:enable /success:enable

    auditpol.exe /set /subcategory:”生成されたアプリケーション” /failure:enable /success:enable
    参考:サブカテゴリ一覧の出力
    auditpol.exe /list /subcategory:*
  3. 最後に、ADFSの管理で取得するログの種類で成功の監査、失敗の監査を選択します。

これで、イベントログにADFS監査ログが記録されるようになります。

一件のアクセスで大量のログが吐かれますので、適宜ログサイズの確認ならびに最大ログサイズの設定などを行なってください。

Exchange Onlineで転送専用のエイリアスを作成する

Office365で、メールボックスは持たないけど、あるメールアドレス宛のメールを受信したい場合があります。

例えば、

  • ある商品キャンペーンの受付専用でアドレスを持ちたい
  • 問い合わせ窓口などで利用する共有のアドレスを持ちたい
  • 普段はOffice365のメールボックスは利用していないユーザーが、Office365に登録しているメールドメインのアドレスを利用したい

などの場合です。この場合、それを割り当てる先のユーザに応じて、

  • 内部の特定ユーザの場合 ⇒ そのユーザーの電子セカンダリアドレスとして追加する
  • 内部(外部を含めることも可)の複数ユーザーの場合 ⇒ 配布グループを利用する、外部のユーザーに対しては外部の連絡先に追加する

などを利用することもできますが、今回はメールユーザー(メールが有効なユーザー)を作成して、外部からのメールを受け付けて外部に転送することができるアカウントを作成してみたいと思います。

受信するアドレス:forward@example.com
ユーザー名   :forward
パスワード   :P@ssw0rd
転送するアドレス:user01@contoso.com

メールユーザーの作成は、PowerShellからのみ実施することができます。

$LiveCred = Get-Credential (管理者IDとパスワードを入力)
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session

として、Exchange Onlineに接続して以下のコマンドを実行します。

New-MailUser -Name forward -MicrosoftOnlineServicesID forward@example.com -Password (ConvertTo-SecureString -String 'P@ssw0rd' -AsPlainText -Force) -ExternalEmailAddress user01@contoso.com

これで、forward@example.com宛に来たメールはuser01@contoso.comに転送されるようになります。

更に、管理者が、Office365ポータルからforward@example.comにサブスクリプションを与えれば、今回指定したID/PASSを利用してSharePoint Onlineに接続することができるようになります。

残念ながら、ポータルで作成した既存のメールボックスが有効で無いユーザの外部メールを有効化するという-UseExistingMicrosoftOnlineServicesIDというコマンドのオプションは現在実装されていないようですので、上記のような利用法をされたいユーザはポータルからではなく、Exchange Online側から作成をする必要があるようです。

また、1点注意事項ですが、今回のメールユーザーでは、外部のアドレス(今回の場合はuser01@contoso.com)を受信可能なアドレスであるProxyAddressesとして保持をしますので、他のキャンペーンのアドレス、例えばcampaign@example.comのアドレスもuser01@contoso.comに転送を行いたいという場合は、新たにメールユーザを作成するのではなく、既存のメールユーザーに内部アドレスを追加するというオペレーションになります。以下、コマンド例です。

Set-MailUser -Identity forward -EmailAddresses "SMTP:user01@contoso.com","smtp:forward@example.com","smtp:campaign@example.com"

(参考)メール ユーザーの作成
http://technet.microsoft.com/ja-jp/exchangelabshelp/dd207277

Lync 2010(クライアント)のインストールエラー

検証の間、一時アンインストールしていたのですが、Lync 2010クライアントをOffice365ポータルの「ダウンロード」ページから再度インストールする機会がありました。

すると、インストーラーが動いているはずなのにうんともすんとも言いません。タスクマネージャーを見ると、インストーラーは起動しているものの、1コアをほぼ占有した状態でハングアップしているようです。

以前インストールしたときはこんなことは無かったのですが…。

コミュニティで確認したところ、昨年から出ているインストーラーのバグのようで、インストールする環境(インストールされたプログラムの履歴のレジストリのゴミで起こることも有るらしい)に依存して発生するとのこと。

暫定的な解決策としては古いバージョンのインストーラーをインストールすればインストールして利用が可能とのことで、早速コミュニティの回答に指示された以下のurlからインストールを実施します。

32bit版 http://c2r.microsoft.com/oconline/en-us/7577.280/x86/ja-JP/LyncSetup.exe
64bit版 http://c2r.microsoft.com/oconline/en-us/7577.280/x64/ja-JP/LyncSetup.exe

すると、無事に何ともなくインストール完了しました。

少しバージョンが古い(7577.280)とのことですが、Windows Updateをかけて出てくるKB(Lyncの累積アップデート)は当てることができます。

これで無事最新化(7577.4061)できました。

(4/1追記)
3月末に「ダウンロード」のリンクからダウンロード出来るパッケージが更新されて、4.0.7577.4087になりました。一部の環境では上記エラーが解消されたという話も受けておりますが、私の環境では残念ながら同じようにまだインストーラーが起動できない状態です。

(5/15追記)
4月後半に更新されたパッケージで解消されたそうです。良かった良かった。

ディレクトリ同期のセットアップエラー

最近、環境によってディレクトリ同期のセットアップが「Microsoft Online ServicesサインインアシスタントサービスのインストールによりFAILが返されました」というエラーで失敗するようになりました。

1638のエラーコードで調べても詳細が分からなかったので、状況から考えまてみます。

  • 2ヶ月前に同じ手順でインストールした際は出なかった。
  • サインインアシスタントは既にADFSのセットアップ時にインストールしている。

…バージョンがクサいですかね?

他のサーバからディレクトリ同意ツールのセットアップ時に自動インストールあれるバージョンは7250.4285.0ということがわかります。

対して、現在インストールされていたサインインアシスタントのバージョンを確認したところ7250.4287.0と少し新しい状態でした。というわけで、一度Micrsoft Online Services Sign-in Assistantをアンインストールしてから、再度ディレクトリ同期ツールをセットアップしたところ、無事インストール完了できました。

と言うわけで、Windows PowerShell 用 Microsoft Online Services モジュールやADFSなど、先にサインインアシスタントをインストールした場合はご注意頂ければと思います。(ちなみに、4285から4287はWindows Updateで表示されますが、インストール不要と出ます。)