ADFSインストールから350日でSSO不可

MicrosoftスクリプトセンターでMicrosoft Office 365 Federation Metadata Update Automation Installation Toolというスクリプトが公開されました。

こちらですが、やっていることは単純でインストール時に入力した資格情報を元に、毎日0時にUpdate-MsolFederationDomainを実行してくれるという物です。

これの何が嬉しいかと言いますと、Office365のADFSではトークン署名証明書はデフォルトで有効期限が1年間の自己証明書として発行されます。また、自動ロールオーバーの機能によって有効期限の20日前、すなわちインストール時から345日後に新しい証明書が発行され、その5日後(インストールから350日後)に差し替えられます。

この差し替えられた証明書ですが、自動ではOffie365側には登録されないため、インストール後345~350日後の間にOffice365に情報を伝送させておく必要があるということで、これを解決するためにとりあえず毎日情報の更新をOffice365に対して行っておこうというツールです。

Microsoft Office 365 Federation Metadata Update Automation Installation Tool
http://gallery.technet.microsoft.com/scriptcenter/Office-365-Federation-27410bdc

インストールは簡単で、ADFSサーバ上で実行し、Office365の管理者IDの資格情報とローカルサーバ上の資格情報を入力すれば、自動的にC:Office365-Scripts配下にMicrosoft-Office365-Update-MSOLFederatedDomain-CONTOSO.COM.ps1(ドメイン名入り)というps1ファイルと、同じ名前のDailyタスク(毎日0:00起動)を作成してくれます。

私の環境では、ADFS2.0のRU1が出た際に一度再セットアップとUpdate-MsolFederatedDomainを掛けてしまったので、まだこう言った事象には出くわしたことが無いのですが、気づくとこういった物は期限になっていたりするので、今のうちにやっておきましょうという感じですね。

【参考】
シングル サインオンを確認および管理する
トークン署名証明書の有効期限が毎年切れる:既定では、AD FS 2.0 は、毎年有効期限の切れる 20 日前に、自己署名証明書のトークン署名証明書を新たに生成します。証明書のロールオーバー、すなわち証明書の有効期限が近づいたときに新しい証明書を生成してプライマリ証明書に昇格させる機能は、AD FS 2.0 によって生成された自己署名証明書にのみ適用されます。
AD FS 2.0 が新しいトークン署名証明書を生成するタイミングを構成できます。証明書のロールオーバーの時期が近づくと、既存の証明書と名前が同じで秘密キーと拇印が異なる新しい証明書が AD FS 2.0 によって生成されます。新しい証明書は生成後、セカンダリ証明書として 5 日間経過した後プライマリ証明書に昇格します。既定で 5 日間に設定されていますが、変更が可能です。 

ひと目でわかるADFS

日経BPさんより、先週「ひと目でわかるADFS2.0 & Office365連携」が発売されました。

発表時に「ひと目でわかるADFS(仮)」というタイトルだったので、一部で「本当か!?」とささやかれておりましたが、無事発売となったようなので早速購入して来ました。

ページ数は220Pで、1章から6章までの章立てです。

  1. 本書で学習する前に
  2. 認証と認可(承認)
  3. AD FS2.0の基本
  4. AD FS2.0のインストールと構成
  5. ローカルActive DirectoryとOffice365の連携
  6. クライアントアクセスポリシー

内容のレベルについてはOffice365やADFSのトレーニング+ハンズオンをくっつけたような感じで、トラブルシュートや運用系の部分は若干薄めですが、ADFSのさわりを扱うにはとてもよくまとまっている良い書籍かと思います。

ただ、良くも悪くも、各章ごとに知っておくべき事を必要十分な情報量を掲載しています。ADFSを触ったことのある人ならよく分かると思うのですが、認証/認可、RP/CPとか証明書まわりとか、重い部分が2章~3章に重なっており、ここをいかに華麗にマスター…さもなくばスルーするかがひと目で分かるポイントかと思います。

Office365でADFSをとりあえず利用する上では、殆ど選択肢無しのウィザード形式で実装できます。敢えて、4章から読み始めて仕組みでは無く効能・手順から入るようにするのも良いかもしれません。

Office365まとめ・公開始めます

個々の記事とは別に、まとめ記事として上の固定ページの方に「Office365まとめ」の公開を始めます。とはいっても、結構前から上に出てましたけどね;;;

Office365まとめ
https://blog.o365mvp.com/o365/

元は自分の作業のメモ書き程度に利用してましたが、これからは意図してちゃんとこちらのページの方も一緒に更新していきたいと思います。

うまく纏めていって、TIPS集にしていければと思います。

期間限定訴訟ホールドをPowerShellから設定

期間限定訴訟ホールドとは、単一アイテムの回復期限(各メールボックスの削除済みアイテムを復活できる期間:デフォルト14日)を延長することにより、特定のメールボックスにおいて一定期間情報を保全する機能です。

こちらの期限の延長は、30日までであれば通常のExchange Onlineプラン1などでも実施することはできたのですが、利用しようと思うと従来は都度サービスリクエスト(SR)を上げて設定して貰う必要があり、かつメールボックス単位で設定を入れる必要があるので、全メールボックスで期間を30日にするなどの処理は非常に大変でした。

今年に入ってからのサービスの改善で、30日以内の変更であれば、この処理をPowerShellから管理者が実行できるようになりました。コマンドは、PowerShellでExchange Onlineに接続した後に、

 Set-Mailbox -Identity [対象] -RetainDeletedItemsFor [保存期間]

です。例によって、-Identityは省略不可です。また、保存期間は DD.HH:MM:SS形式(例えば30日は30.00:00:00)ですが、省略してDDのみ(30とだけ入力すれば30日と解釈)でも可能です。また、この-RetainDeletedItemsForはTab補完ができませんが、パラメーターとしては存在するので頑張って入力しましょう。

また、31日以上にする場合は、Exchange Onlineのプラン2以上のライセンスが必要になり、かつコマンドからも設定はできませんので、従来通りSRを上げて対応しましょう。

こちらは、特に追加費用無く設定することができますので、標準でデプロイする際に設定しても損は無いかもしれません。

Office365 ライトニングトーク第2回

5月に引き続き、7/6に品川のマイクロソフト本社で第2回のOffice365ライトニングトークが開催されます。

Office365 ライトニングトーク第2回 「俺にOffice365についてしゃべらせろ!」

前回はアクセス制御の部分の話をしましたが、今回はもう少しOffice365の全般的な話をしたいと思っています。

普段からちょこちょこと「Office365まとめ」にメモを書いているのですが、Office365のカスタマイズ(設定変更)について簡単に話をしようかなと思います。

ワールドワイドで見ると、結構日本ではOffice365のデフォルト設定がうまく現在の運用やポリシーに適合しないことがあるので、その辺のところを喋れればなと思います。

ご都合よろしければご来場いただけると幸いです。

ディレクトリ同期のオブジェクト上限値

Office365のディレクトリ同期ツールを利用すると、社内のActiveDirectoryの以下のオブジェクトをOffice365に(使用するしないに関わらず)同期してくれます。

こちらのMicrosoftのドキュメントをチェックすると、この同期のオブジェクト数には上限値が定められていて、それ以上はSRを上げて上限値を引き上げないといけないとあります。この閾値は20000と定められており、こちらはオンプレミスのAD上で「展開準備ツール(Deployment Rediness Tool)」を実行することにより、おおよその数値を知ることが可能です。

カウント対象となるのは以下のオブジェクトです。

  • ユーザー
  • グループ(配布グループ、セキュリティグループ)
  • 外部連絡先
【参考】ディレクトリ同期を準備する
http://onlinehelp.microsoft.com/ja-jp/Office365-enterprises/ff652544.aspx
社内ドメインのオブジェクトの合計数が 20,000 個を超えると、ディレクトリ同期をアクティブ化する前に Office 365 サポートに連絡する必要があります。

殆どのオブジェクトがオンプレミスで同期して利用している場合は問題にならないのですが、例えばExchangeの配布グループはOffice365側で作成(※セルフサービス型で利用したい為)など、ディレクトリ同期するオブジェクトの他に相当数のオブジェクトがクラウドID(非同期オブジェクト)で存在する場合、20000には達していないのに、以下の様なアラートが発生する場合があります。

Unable to add this user because the total number of allowed objects has already been reached.
 + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.Quota  
ExceededExcption.Microsoft.Online.ADministration.Automation.NewUser

試しに、数十個のオブジェクトだけディレクトリ同期した環境にひたすらオブジェクト(ユーザー)を作っていくと、確かに20000弱(今回の場合は19960個目)のオブジェクトで上記のエラーが出ます。

また、これが発生するとディレクトリ同期ツールからオンプレミスで新規でできたオブジェクトを追加することはできません。どうやら、20000というクォータは同期したオブジェクトの数ではなく、Office365上で作成したオブジェクトも含む数値のようです。

参考までに、これは一時的にではありますが突破することは可能です。

Exchange OnlineからGUIやCSV経由でユーザーを新規作成し、後からOffice365ポータルに同期してサブスクリプション割り当てなどという事を行うことができるのですが、こちらは上記の影響は受けないので作成→ポータルに同期が可能です。

新規で作成したオンプレミスのオブジェクトと同じメールアドレスを持たせて作成すれば、ソフトマッチで同期オブジェクトとすることも可能です。

皆様におかれましてはこうならないように、大規模環境の場合は、上記条件を考慮の上計画的にオブジェクト数を監視して、クォータ上限の引き上げを行って頂ければと思います。

管理者のセルフパスワードリセット機能を無効化する

Office365で、全体管理者のアカウントでログオンを行なおうとすると、一部通常とは異なる挙動となります。

画面がグレーアウトし、「引き続きアカウントにアクセスできるようにする」とポップアップします。IDとPassを入力してサインインすると、(設定されていなければ)携帯の番号とOffice365以外のe-mailアドレスの入力を求められます。

全体管理者は最初1名しか設定されておらず、かつ他のユーザーからパスワード変更を行なうことは勿論ですができません。その唯一の管理者がパスワードを忘れてしまった場合、何も操作ができなくなってしまう事態になるので、これを防止するために作られている機能になります。昨年末くらいのバージョンアップで実装されました。

ちなみに、上記の画面はESCを押したり閉じたりできないのですが、アドレスバーを一度選択して押下(同じアドレスに再接続)もしくはリロードボタンを押せば閉じることができます。

さて、この機能ですが、例えば全体管理者のアカウントが複数あり、相互にパスワードのリセットが可能な状況などの場合は無くても問題ない場合があります。

また、例えば最初に作った管理アカウントadmin@xxxx.onmicrosoft.comなど、個人に紐づいていない管理者アカウントに携帯電話番号など無いと言う場合も有るかと思います。(もちろん、ダミーで入れておくという手も有りますが)

こちらを無効化するには、PowerShellでSet-MsolCompanySettingsのSelfServePasswordResetEnabledにて制御を行なうことが可能です。

Set-MsolCompanySettings -SelfServePasswordResetEnabled $false

これをfalseに設定しておけば、上記のような画面が出ずに、通常通り管理者アカウントでログインできるようになります。

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 の新機能