Quantcast
Channel: Office365 –日々徒然
Viewing all 47 articles
Browse latest View live

AAD ConnectでExchange属性が同期されない

$
0
0

ディレクトリ同期(AAD Sync含む)を利用する環境下において、Exchange Onlineで利用されるユーザーなどの情報は全てオンプレミスのActive Directoryから同期され、管理されます。

このため、アドレス帳非表示やふりがななど、メールボックスの動作を制御する一部の属性はオンプレミス側で設定し、同期する必要があります。オンプレミスにExchange Serverが無い場合は、その設定用にスキーマ拡張のみして属性を設定するというTIPSは比較的昔から存在していました。
20161210_01

こういった環境のユーザーがAAD Connectに移行すると、アドレス帳非表示の設定が消えるなどの影響が出る可能性があり、注意が必要です。

なぜかと言いますと、AAD Connectはマルチフォレスト(特にリソースフォレストモデルのExchange環境)のサポートを行うために、デフォルトの同期ルールが以前と変わっています。

具体的には、ユーザーの属性を取得する際に、Exchange関連の属性は[mailNickname]が存在するフォレストから取得するようになっています。

従来:
Azure Active Directory に同期した属性値のリスト

AAD Connect:
Azure AD Connect Sync: 既定の構成について

MailNicknameは、Exchangeにおける[Alias]として利用されている物であり、Exchange関連のオブジェクトであれば必須のパラメータとなっています。しかし、ADSIエディタなどでアドレス帳非表示を制御するmsExchHideFromAddressListsなどの属性を加える運用を行っている場合、mailNicknameには値が入っていないというケースが多くあります。

PowerShellから、Exchange属性であるmsExchHideFromAddressListsを同期しているルールを確認すると、[In from AD – User Exchange]というルールで同期されており、そのフィルタの条件はmailNicknameがNOTNULLということが分かります。
20161210_02

Get-ADSyncRule | ? {$_.AttributeFlowMappings -like "*msExchHideFromAddressLists*" -and $_.SourceObjectType -eq "user"} |  ft Name,Identifier
(Get-ADSyncRule -Identifier [上記で表示されたID]).ScopeFilter.ScopeConditionList

同様に、ルールエディタからも確認ができます。
20161210_03 20161210_04

※このルールはExchangeのスキマー拡張がされていない環境では作成されません。また、マルチフォレスト、マルチドメイン環境では複数作成されます。

さて、では対応するためにどうしていけばいいかですが、アプローチとしては2つあります。

  1. [In from AD – User Exchange]のデフォルトルールを変更し、mailNicknameによる条件フィルタ自体を削除する
  2. [In from AD – User Exchange]をコピーして新たなルールを作成し、条件をmailNickname = NULLにする

いずれも、全ユーザーに対してExchange関連属性を設定するという意味では同じですが、今後ソフトウェア更新をした際にデフォルト設定に戻る可能性があるリスクを考えると2番の方がメンテナンス性は良いかと個人的には考えてます。

手順ですが、Syncroniztion Rule Editorを管理者として起動し、[In from AD – User Exchange]のEditを選択する。この際、[YES:既存のルールのコピーを作成し、オリジナルのルールを無効化する][No:既存のルールの変更を続ける]の確認が表示されるので、[はい(Y)]を選択する。
20161210_05 20161210_09

Precedenceに既存と重複せず、元のルールより低い(数値の大きい)値を設定する。(ここでは200とした。)Scoping Filterの項目を開き、プルダウンのISNOTNULLをISNULLに変更する。
20161210_06 20161210_07

もう一度[In from AD – User Exchange]の[Edit]を選択し、今度は[いいえ(N)]を選択してオリジナルのルールを開く。[Disabled]のチェックを外して保存。
20161210_08


AAD Connect更新時のSfB属性

$
0
0

AAD ConnectでExchange属性が同期されない の記事でオンプレミスのExchange関連のスキーマについて記載させて頂いた所、Skype for Business(Lync)関連のスキーマについてはどうなのかと質問を頂きましたので、簡単に調べた範囲で記載したいと思います。

オンプレミスのADスキーマがSkype for Business(Lync)用の拡張がされていた場合、以下の3つの同期ルールが作成されます。

・In from AD – User Lync
対象:user
以下の属性を同期する:
msRTCSIP-ApplicationOptions
msRTCSIP-DeploymentLocator
msRTCSIP-Line
msRTCSIP-OrganatorSid
msRTCSIP-OwnerUrn
msRTCSIP-PrimaryUserAddress
msRTCSIP-UserEnabled
msRTCSIP-OptionFlags

・In from AD – InetOrgPerson Lync
対象:inetOrgPerson
以下の属性を同期する:
msRTCSIP-ApplicationOptions
msRTCSIP-DeploymentLocator
msRTCSIP-Line
msRTCSIP-OwnerUrn
msRTCSIP-PrimaryUserAddress
msRTCSIP-UserEnabled
msRTCSIP-OptionFlags

・In from AD – Contact Lync
対象:contact
以下の属性を同期する:
msRTCSIP-DeploymentLocator
msRTCSIP-Line
msRTCSIP-PrimaryUserAddress
msRTCSIP-OptionFlags

20161214_01

msRTCSIP-OrganatorSid 以外の属性では、既存のディレクトリ同期ツールにおいては無条件で(存在する場合)同期されていました。

msRTCSIP-OrganatorSid については、リソースフォレストモデルでの展開の際に利用されるものですので、AAD Connectから新規で追加された同期ルールになります。

従いまして、Exchangeの様に特に同期する対象を限定するスコープなど設定されていないため、アップグレード前後で同期属性が変化することは、Skype for Business Serverをリソースフォレストモデルで展開していない限りはないと言えます。

DirSyncのAADConnectへのアップグレードが失敗する(その2)

$
0
0

前回の投稿では、古いバージョンのディレクトリ同期ツールからAAD Connectへのアップグレードの際にエラーが出ないようにする手順について紹介させて頂きました。

しかしながら、気づかずにこちらを実施せずアップグレードをしてしまうと、結構悲惨な状態になります。[問題が発生したため、統合を完了できません – Syncronization Serviceをインストールできません。詳細については、イベントログを参照して下さい。]と表示され、アップグレードが失敗します。

ログを確認すると、

[21:38:17.249] [ 12] [ERROR] PerformConfigurationPageViewModel: Caught exception while installing synchronization service.
Exception Data (Raw): System.Exception: Synchronization Service をインストールできません。詳細については、イベント ログを参照してください。 ---> System.DirectoryServices.AccountManagement.NoMatchingPrincipalException: Group 'FIMSyncAdmins' was not found.
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Framework.AccountManagementAdapter.GetGroupBySamAccountName(String groupSamAccountName)
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Setup.SynchronizationServiceSetupTask.<>c__DisplayClass9.<ValidateOrCreateSyncServiceGroups>b__8()
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Framework.ActionExecutor.Execute(Action action, String description)
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Setup.SynchronizationServiceSetupTask.InstallCore(String logFilePath, String logFileSuffix)
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Framework.ActionExecutor.ExecuteWithSetupResultsStatus(SetupAction action, String description, String logFileName, String logFileSuffix)
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Setup.SetupBase.Install()
   --- 内部例外スタック トレースの終わり ---
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Setup.SetupBase.ThrowSetupTaskFailureException(String exceptionFormatString, String taskName, Exception innerException)
   場所 Microsoft.Azure.ActiveDirectory.Synchronization.Setup.SetupBase.Install()
   場所 Microsoft.Online.Deployment.OneADWizard.Providers.EngineSetupProvider.SetupSyncEngine(String setupFilesPath, String installationPath, String sqlServerName, String sqlInstanceName, String serviceAccountName, String serviceAccountDomain, String serviceAccountPassword, String groupAdmins, String groupBrowse, String groupOperators, String groupPasswordSet, Int32 numberOfServiceInstances, ProgressChangedEventHandler progressChanged, NetworkCredential& serviceAccountCredential, SecurityIdentifier& serviceAccountSid)
   場所 Microsoft.Online.Deployment.OneADWizard.Runtime.Stages.InstallSyncEngineStage.ExecuteInstallCore(ISyncEngineInstallContext syncEngineInstallContext, ProgressChangedEventHandler progressChangesEventHandler)
   場所 Microsoft.Online.Deployment.OneADWizard.Runtime.Stages.InstallSyncEngineStage.ExecuteInstall(ISyncEngineInstallContext syncEngineInstallContext, ProgressChangedEventHandler progressChangesEventHandler)
   場所 Microsoft.Online.Deployment.OneADWizard.UI.WizardPages.PerformConfigurationPageViewModel.ExecuteSyncEngineInstallCore(AADConnectResult& result)

と表示されており、FIMSyncAdminsグループが存在しない為に発生したエラーだということが推測されます。

しかしながら、FIMSyncAdminsグループを作成後に[再試行]をクリックしても、[指定されたファイルが見つかりません。]というエラーが表示されて、続行できません。参照されたログファイルを見ても、続きを実施する方法は分かりません。

しかも都合の悪いことに、前のバージョンのディレクトリ同期は既にアンインストールされており、切り戻しもできません。再度インストーラーを走らせると新規インストールになってしまいます。

全てデフォルト設定で利用していた場合はそれで良いかもしれませんが、同期フィルタなどを設定していた場合はどんな設定をしただろう…?って途方に暮れてしまうこともあるかと思います。

根気強くログファイルを見ていくと、見つけました!

[21:27:25.520] [ 10] [INFO ] AnalyzeDirSyncInstallation: Backing up DirSync upgrade settings to C:\Users\syncadm\AppData\Local\AADConnect\DirSyncSettings20161214-212725.xml.

どうやら、Appdata\Local\AADConnect配下に作業ファイルとして古い設定データがxmlで保存されているようです。(syncadmはAAD Connectのインストールを実行したユーザー名ですので、皆さんの環境に合わせて読み替えて下さい)

※OUの除外設定などもきちんと残っています。

これさえ分かれば、後は並列デプロイと同じ方式で移行を継続できます。

PS C:\> cd "C:\Program Files\Microsoft Azure Active Directory Connect\"
PS C:\Program Files\Microsoft Azure Active Directory Connect> .\AzureADConnect.exe /migrate

設定ファイルをインポートする画面が出ますので、先ほどのフォルダ配下の.xmlファイルを指定します。また、[既存のサービスアカウントを使用する]のチェックボックスを外して[次へ]を選択します。
 

ここから先は通常のアップグレードと同じです。Azure ADの管理者アカウントの情報を入力し、次にオンプレミスのActive DirectoryのEnterprise Adminsのアカウント情報を入力し、最後に[インストール]を実施します。

これでインストールは完了です。インストール後の状態は、ステージングモードというエクスポートのみ行わない状態になっています。

MIISClientなどで既存のフィルタがきちんと移行されているかを確認(新しいMIISClientのパスはC:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exeです。実行には一度ログオフが必要です)した後に、ステージングモードを解除します。

Azure AD Connectを起動し、[構成][ステージングモードの構成][次へ]を選択。Azure ADの管理者情報を入力、[ステージングモードを有効にする]のチェックボックスを外して[次へ]をクリックし、最後に[構成]をクリックします。
 

これで、無事AAD Connectの環境に移行できました。

良いAADライフを!

AAD ConnectでExchange属性が同期されない(その2)

$
0
0

先日の記事を投稿したところ、友人より「GUIだと手順が面倒だし、美しくない」と優しいコメントを頂きましたので、PowerShellで書き直してみました。

これだと既存のコネクタが一時的にDisableになったりしませんし、後から自分で追加したカスタムルールということが明示できるので今後のソフトウェアのアップデートなどの際に分かりやすいかもしれません。

※こちらのスクリプトはExchangeスキーマを拡張していない環境では実施しないで下さい(参照先のルールが存在しませんので)。また、マルチドメイン環境には対応していません。

# Get Connector ID
$conID = (Get-ADSyncConnector | ? {$_.Type -eq "AD"} | select -first 1).Identifier.Guid

New-ADSyncRule `
  -Name 'Custom rule from AD(Exchange)' `
  -Description 'User object with Exchange schema in Active Directory. (without mailNickname)' `
  -Direction 'Inbound' `
  -Precedence 200 `
  -SourceObjectType 'user' `
  -TargetObjectType 'person' `
  -Connector $conID `
  -LinkType 'Join' `
  -SoftDeleteExpiryInterval 0 `
  -ImmutableTag 'Custom rule from AD(Exchange)' `
  -OutVariable syncRule

# Get attribute flow mapping from existing rule "In from AD - User Exchange"
$AttributeFlowMappings = (Get-ADSyncRule | ? {$_.Name -eq "In from AD - User Exchange"}).AttributeFlowMappings
foreach ($mapping in $AttributeFlowMappings){
  Add-ADSyncAttributeFlowMapping -SynchronizationRule $syncRule[0] $mapping
}

New-Object `
  -TypeName 'Microsoft.IdentityManagement.PowerShell.ObjectModel.ScopeCondition' `
  -ArgumentList 'mailNickname','','ISNULL' `
  -OutVariable condition

Add-ADSyncScopeConditionGroup `
  -SynchronizationRule $syncRule[0] `
  -ScopeConditions @($condition[0]) `
  -OutVariable syncRule

Add-ADSyncRule -SynchronizationRule $syncRule[0]

 

第18回 Office365勉強会が開催されます

$
0
0

3/11(土) 13:00より、飯田橋のIIJセミナールームをお借りして第18回のOffice 365勉強会が開催されます。

今回のテーマは ”Identity&Security” Office 365から広がるクラウドの世界とそのセキュリティ対策 ということで、私も話を是非聴きたいと思っていた著名なスピーカーの方々をお招きしてOffice 365とそれを取り巻くセキュリティ関連の最新情報をお話しして頂く予定となっております。

既に満席になっている可能性はありますが、毎回一定数のキャンセルは発生しますので、是非キャンセル待ちに登録を頂ければと思います。

詳細は こちら をご参照下さい。

 

Office 365プロダクトのサービス一覧を調べる

$
0
0

この投稿はOffice 365 Advent Calendar 2017に参加しています。

Office 365ですが、どんどん日々進化しておりE3やE5のSuiteに含まれるサービスも増えていっています。また、今年はMicrosoft 365など、更なるバンドルライセンスも増えてきました。

6年以上前にblogのエントリーを書いた際と比較すると、例えばOffice 365 E3に含まれるパッケージは以下の様にサービス数でいうと3倍以上になりました。

今回は、現時点(2017.12.03)での各ライセンスとそれに含まれるサービスを調査してみました。

調査方法は、ライセンスプラン(SKUとも呼ばれます)と、それに含まれるライセンスプランをGet-MsolAccountコマンドレットを使って調査しました。また、対応する名前は管理者ポータルから確認しています。

結果、以下のリストの通りの出力となりました。

プラン一覧(50個/CSV)Download 2017/12/03更新
サービス一覧(85個/CSV)Download 2017/12/03更新

詳細は以下の通りです。


調査コマンド:

PS C:\> Get-MsolAccountSku

AccountSkuId                        ActiveUnits WarningUnits ConsumedUnits
------------                        ----------- ------------ -------------
nttcom:ENTERPRISEPACK               100         0            81
nttcom:EMS                          100         0            81

PS C:\> Get-MsolAccountSku | ? {$_.SKUPartNumber -eq "ENTERPRISEPACK"} | % {$_.ServiceStatus}

ServicePlan           ProvisioningStatus
-----------           ------------------
BPOS_S_TODO_2         Success
FORMS_PLAN_E3         Success
STREAM_O365_E3        Success
Deskless              Success
FLOW_O365_P2          Success
POWERAPPS_O365_P2     Success
TEAMS1                Success
PROJECTWORKMANAGEMENT Success
SWAY                  Success
INTUNE_O365           PendingActivation
YAMMER_ENTERPRISE     Success
RMS_S_ENTERPRISE      Success
OFFICESUBSCRIPTION    Success
MCOSTANDARD           Success
SHAREPOINTWAC         Success
SHAREPOINTENTERPRISE  Success
EXCHANGE_S_ENTERPRISE Success

まず、300人以下の規模の中小の組織向けに展開されているBusinessプランです。

Office 365 Business(O365_BUSINESS) 月額900円/ユーザー

FORMS_PLAN_E1 Microsoft Forms (プラン E1)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
SHAREPOINTWAC Office Online
ONEDRIVESTANDARD OneDrive for Business (プラン 1)
OFFICE_BUSINESS Office 365 Business

Office 365 Business Essentials(O365_BUSINESS_ESSENTIALS) 月額540円/ユーザー

BPOS_S_TODO_1 To-Do (プラン 1)
FORMS_PLAN_E1 Microsoft Forms (プラン E1)
FLOW_O365_P1 Flow for Office 365
POWERAPPS_O365_P1 PowerApps for Office 365
TEAMS1 Microsoft Teams
PROJECTWORKMANAGEMENT Microsoft Planner
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
SHAREPOINTWAC Office Online
YAMMER_ENTERPRISE Yammer Enterprise
EXCHANGE_S_STANDARD Exchange Online (プラン 1)
MCOSTANDARD Skype for Business Online (プラン 2)
SHAREPOINTSTANDARD SharePoint Online (プラン 1)

Office 365 Business Premium(O365_BUSINESS_PREMIUM) 月額1360円/ユーザー

Deskless Microsoft StaffHub
BPOS_S_TODO_1 To-Do (プラン 1)
MICROSOFTBOOKINGS Microsoft Bookings
FORMS_PLAN_E1 Microsoft Forms (プラン E1)
FLOW_O365_P1 Flow for Office 365
POWERAPPS_O365_P1 PowerApps for Office 365
O365_SB_Relationship_Management Outlook Customer Manager
TEAMS1 Microsoft Teams
PROJECTWORKMANAGEMENT Microsoft Planner
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
SHAREPOINTWAC Office Online
OFFICE_BUSINESS Office 365 Business
YAMMER_ENTERPRISE Yammer Enterprise
EXCHANGE_S_STANDARD Exchange Online (プラン 1)
MCOSTANDARD Skype for Business Online (プラン 2)
SHAREPOINTSTANDARD SharePoint Online (プラン 1)

Microsoft 365 Business(SPB) 月額2180円/ユーザー

Deskless Microsoft StaffHub
BPOS_S_TODO_1 To-Do (プラン 1)
MICROSOFTBOOKINGS Microsoft Bookings
INTUNE_A Intune A Direct
FORMS_PLAN_E1 Microsoft Forms (プラン E1)
STREAM_O365_E1 Stream for Office 365
YAMMER_ENTERPRISE Yammer Enterprise
TEAMS1 Microsoft Teams
SWAY Sway
SHAREPOINTWAC Office Online
SHAREPOINTSTANDARD SharePoint Online (プラン 1)
PROJECTWORKMANAGEMENT Microsoft Planner
POWERAPPS_O365_P1 PowerApps for Office 365
OFFICE_BUSINESS Office 365 Business
O365_SB_Relationship_Management Outlook Customer Manager
MCOSTANDARD Skype for Business Online (プラン 2)
INTUNE_O365 Mobile Device Management for Office 365
FLOW_O365_P1 Flow for Office 365
EXCHANGE_S_STANDARD Exchange Online (プラン 1)
AAD_SMB Azure Active Directory
INTUNE_SMBIZ Microsoft Intune
WINBIZ Windows Business

Office 365 Business Premium = Office 365 Business + Office 365 Business Essentials

Microsoft 365 Business = Office 365 Business Premium + Intune + AzureAD(SMB専用プラン) + Windows 10

という感じでしょうか。Enterprise向けプランとは内容が少し異なりそうですが、それでも月額2180円/ユーザーは破格の値段だと思います。


続いてはエンタープライズ向けのプランです。

Office 365 ProPlus(OFFICESUBSCRIPTION) 月額1310円/ユーザー

FORMS_PLAN_E1 Microsoft Forms (プラン E1)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
SHAREPOINTWAC Office Online
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
ONEDRIVESTANDARD OneDrive for Business (プラン 1)
OFFICESUBSCRIPTION Office 365 ProPlus

Office 365 Enterprise E1 (STANDARDPACK) 月額870円/ユーザー

BPOS_S_TODO_1 To-Do (プラン 1)
FORMS_PLAN_E1 Microsoft Forms (プラン E1)
STREAM_O365_E1 Stream for Office 365
Deskless Microsoft StaffHub
FLOW_O365_P1 Flow for Office 365
POWERAPPS_O365_P1 PowerApps for Office 365
TEAMS1 Microsoft Teams
SHAREPOINTWAC Office Online
PROJECTWORKMANAGEMENT Microsoft Planner
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
YAMMER_ENTERPRISE Yammer Enterprise
MCOSTANDARD Skype for Business Online (プラン 2)
SHAREPOINTSTANDARD SharePoint Online (プラン 1)
EXCHANGE_S_STANDARD Exchange Online (プラン 1)

Office 365 Enterprise E3(ENTERPRISEPACK) 月額2180円/ユーザー

BPOS_S_TODO_2 To-Do (プラン 2)
FORMS_PLAN_E3 Microsoft Forms (プラン E3)
STREAM_O365_E3 Stream for Office 365
Deskless Microsoft StaffHub
FLOW_O365_P2 Flow for Office 365
POWERAPPS_O365_P2 PowerApps for Office 365
TEAMS1 Microsoft Teams
PROJECTWORKMANAGEMENT Microsoft Planner
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
YAMMER_ENTERPRISE Yammer Enterprise
RMS_S_ENTERPRISE Azure Rights Management
OFFICESUBSCRIPTION Office 365 ProPlus
MCOSTANDARD Skype for Business Online (プラン 2)
SHAREPOINTWAC Office Online
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)
EXCHANGE_S_ENTERPRISE Exchange Online (プラン 2)

Office 365 Enterprise E5(ENTERPRISEPREMIUM) 月額3810円/ユーザー

BPOS_S_TODO_3 To-Do (プラン 3)
FORMS_PLAN_E5 Microsoft Forms (プラン E5)
STREAM_O365_E5 Stream for Office 365
THREAT_INTELLIGENCE Office 365 Threat Intelligence
Deskless Microsoft StaffHub
FLOW_O365_P3 Flow for Office 365
POWERAPPS_O365_P3 PowerApps for Office 365
TEAMS1 Microsoft Teams
ADALLOM_S_O365 Office 365 Advanced Security Management
EQUIVIO_ANALYTICS Office 365 Advanced eDiscovery
LOCKBOX_ENTERPRISE Customer Lockbox
EXCHANGE_ANALYTICS Microsoft MyAnalytics
SWAY Sway
ATP_ENTERPRISE Exchange Online Advanced Threat Protection
MCOEV 電話システム
MCOMEETADV 電話会議
BI_AZURE_P2 Power BI Pro
INTUNE_O365 Mobile Device Management for Office 365
PROJECTWORKMANAGEMENT Microsoft Planner
RMS_S_ENTERPRISE Azure Rights Management
YAMMER_ENTERPRISE Yammer Enterprise
OFFICESUBSCRIPTION Office 365 ProPlus
MCOSTANDARD Skype for Business Online (プラン 2)
EXCHANGE_S_ENTERPRISE Exchange Online (プラン 2)
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)
SHAREPOINTWAC Office Online

※E5には、電話会議が提供されていない地域向けの Office 365 Enterprise E5 (電話会議なし)(ENTERPRISEPREMIUM_NOPSTNCONF) という物もございます。

Office 365 F1(DESKLESSPACK) 月額440円/ユーザー

BPOS_S_TODO_FIRSTLINE To-Do (Firstline)
FORMS_PLAN_K Microsoft Forms (プラン K)
STREAM_O365_K Stream for Office 365 K1
FLOW_O365_S1 Flow for Office 365 K1
POWERAPPS_O365_S1 PowerApps for Office 365 K1
TEAMS1 Microsoft Teams
Deskless Microsoft StaffHub
MCOIMP Skype for Business Online (プラン 1)
SHAREPOINTWAC Office Online
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
YAMMER_ENTERPRISE Yammer Enterprise
SHAREPOINTDESKLESS SharePoint Online Kiosk
EXCHANGE_S_DESKLESS Exchange Online Kiosk

Enterprise Mobility + Security E3(EMS) 月額950円/ユーザー

ADALLOM_S_DISCOVERY Cloud App Security Discovery
RMS_S_PREMIUM Azure Information Protection プラン 1
INTUNE_A Intune A Direct
RMS_S_ENTERPRISE Azure Rights Management
AAD_PREMIUM Azure Active Directory Premium プラン 1
MFA_PREMIUM Azure Multi-Factor Authentication

Enterprise Mobility + Security E5(EMSPREMIUM)  月額1610円/ユーザー

ADALLOM_S_STANDALONE Microsoft Cloud App Security
RMS_S_PREMIUM2 Azure Information Protection Premium P2
RMS_S_PREMIUM Azure Information Protection プラン 1
RMS_S_ENTERPRISE Azure Rights Management
INTUNE_A Intune A Direct
AAD_PREMIUM_P2 Azure Active Directory Premium P2
MFA_PREMIUM Azure Multi-Factor Authentication
AAD_PREMIUM Azure Active Directory Premium プラン 1

Microsoft 365 E3(SPE_E3) 月額3690円/ユーザー

BPOS_S_TODO_2 To-Do (プラン 2)
FLOW_O365_P2 Flow for Office 365
POWERAPPS_O365_P2 PowerApps for Office 365
FORMS_PLAN_E3 Microsoft Forms (プラン E3)
STREAM_O365_E3 Stream for Office 365
Deskless Microsoft StaffHub
TEAMS1 Microsoft Teams
WIN10_PRO_ENT_SUB Windows 10 Enterprise E3
RMS_S_PREMIUM Azure Information Protection プラン 1
MFA_PREMIUM Azure Multi-Factor Authentication
INTUNE_A Intune A Direct
AAD_PREMIUM Azure Active Directory Premium プラン 1
YAMMER_ENTERPRISE Yammer Enterprise
SWAY Sway
SHAREPOINTWAC Office Online
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)
RMS_S_ENTERPRISE Azure Rights Management
PROJECTWORKMANAGEMENT Microsoft Planner
OFFICESUBSCRIPTION Office 365 ProPlus
MCOSTANDARD Skype for Business Online (プラン 2)
INTUNE_O365 Mobile Device Management for Office 365
EXCHANGE_S_ENTERPRISE Exchange Online (プラン 2)

Microsoft 365 E5(SPE_E5) 月額6640円/ユーザー

BPOS_S_TODO_3 To-Do (プラン 3)
FLOW_O365_P3 Flow for Office 365
POWERAPPS_O365_P3 PowerApps for Office 365
FORMS_PLAN_E5 Microsoft Forms (プラン E5)
ADALLOM_S_STANDALONE Microsoft Cloud App Security
STREAM_O365_E5 Stream for Office 365
Deskless Microsoft StaffHub
THREAT_INTELLIGENCE Office 365 Threat Intelligence
TEAMS1 Microsoft Teams
WINDEFATP Windows Defender Advanced Threat Protection
WIN10_PRO_ENT_SUB Windows 10 Enterprise E3
RMS_S_PREMIUM2 Azure Information Protection Premium P2
AAD_PREMIUM_P2 Azure Active Directory Premium P2
RMS_S_PREMIUM Azure Information Protection プラン 1
RMS_S_ENTERPRISE Azure Rights Management
MFA_PREMIUM Azure Multi-Factor Authentication
INTUNE_A Intune A Direct
AAD_PREMIUM Azure Active Directory Premium プラン 1
YAMMER_ENTERPRISE Yammer Enterprise
SWAY Sway
SHAREPOINTWAC Office Online
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)
PROJECTWORKMANAGEMENT Microsoft Planner
OFFICESUBSCRIPTION Office 365 ProPlus
MCOSTANDARD Skype for Business Online (プラン 2)
MCOMEETADV 電話会議
MCOEV 電話システム
LOCKBOX_ENTERPRISE Customer Lockbox
INTUNE_O365 Mobile Device Management for Office 365
EXCHANGE_S_ENTERPRISE Exchange Online (プラン 2)
EXCHANGE_ANALYTICS Microsoft MyAnalytics
EQUIVIO_ANALYTICS Office 365 Advanced eDiscovery
BI_AZURE_P2 Power BI Pro
ATP_ENTERPRISE Exchange Online Advanced Threat Protection
ADALLOM_S_O365 Office 365 Advanced Security Management

Microsoft 365 F1(SPE_F1)  月額1090円/ユーザー

BPOS_S_TODO_FIRSTLINE To-Do (Firstline)
WIN10_ENT_LOC_F1 Windows 10 Enterprise E3 (ローカルのみ)
YAMMER_ENTERPRISE Yammer Enterprise
SWAY Sway
MCOIMP Skype for Business Online (プラン 1)
SHAREPOINTDESKLESS SharePoint Online Kiosk
POWERAPPS_O365_S1 PowerApps for Office 365 K1
SHAREPOINTWAC Office Online
INTUNE_O365 Mobile Device Management for Office 365
TEAMS1 Microsoft Teams
STREAM_O365_K Stream for Office 365 K1
Deskless Microsoft StaffHub
FORMS_PLAN_K Microsoft Forms (プラン K)
FLOW_O365_S1 Flow for Office 365 K1
EXCHANGE_S_DESKLESS Exchange Online Kiosk
MFA_PREMIUM Azure Multi-Factor Authentication
INTUNE_A Intune A Direct
AAD_PREMIUM Azure Active Directory Premium プラン 1

EMS = Azure Active Directory Premium + Azure RMS(Information Protection) + Intune

Microsoft 365 = Office 365 + EMS + Windows 10

という感じですね。Microsoft 365 E5とか、全部入りすぎて正直全機能を使いこなすのは至難の業じゃないでしょうか。


他にも、単体で買えるプランや特定のプランのオプションとして買える物も有ります。以下、主要な物だけとなりますが、調査した結果です。

Office 365 Advanced Security Management(ADALLOM_O365)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
ADALLOM_S_O365 Office 365 Advanced Security Management

 

Office 365 Advanced Compliance(EQUIVIO_ANALYTICS)
LOCKBOX_ENTERPRISE Customer Lockbox
EQUIVIO_ANALYTICS Office 365 Advanced eDiscovery

 

Exchange Online Kiosk(EXCHANGEDESKLESS)
INTUNE_O365 Mobile Device Management for Office 365
EXCHANGE_S_DESKLESS Exchange Online Kiosk

 

Exchange Online (プラン 1)(EXCHANGESTANDARD)
INTUNE_O365 Mobile Device Management for Office 365
EXCHANGE_S_STANDARD Exchange Online (プラン 1)

 

Exchange Online (プラン 2)(EXCHANGEENTERPRISE)
INTUNE_O365 Mobile Device Management for Office 365
EXCHANGE_S_ENTERPRISE Exchange Online (プラン 2)

 

Exchange Online Archiving for Exchange Online(EXCHANGEARCHIVE_ADDON)
EXCHANGE_S_ARCHIVE_ADDON ※表記無し、除外不可

 

Exchange Online Archiving for Exchange Server(EXCHANGEARCHIVE)
EXCHANGE_S_ARCHIVE ※表記無し、除外不可

 

Exchange Online Protection(EOP_ENTERPRISE)
EOP_ENTERPRISE ※表記無し、除外不可

 

SharePoint Online (プラン 1)(SHAREPOINTSTANDARD)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
INTUNE_O365 Mobile Device Management for Office 365
SHAREPOINTSTANDARD SharePoint Online (プラン 1)

 

SharePoint Online (プラン 2)(SHAREPOINTENTERPRISE)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
INTUNE_O365 Mobile Device Management for Office 365
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)

 

OneDrive for Business (プラン 1)(WACONEDRIVESTANDARD)
FORMS_PLAN_E1 Microsoft Forms (プラン E1)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
SWAY Sway
INTUNE_O365 Mobile Device Management for Office 365
SHAREPOINTWAC Office Online
ONEDRIVESTANDARD OneDrive for Business (プラン 1)

 

OneDrive for Business (Plan 2)(WACONEDRIVEENTERPRISE)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
SHAREPOINTWAC Office Online
ONEDRIVEENTERPRISE OneDrive for Business (Plan 2)
INTUNE_O365 Mobile Device Management for Office 365

 

Skype for Business Online (プラン 1)(MCOIMP)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
MCOIMP Skype for Business Online (プラン 1)

 

Skype for Business Online (プラン 2)(MCOSTANDARD)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
MCOSTANDARD Skype for Business Online (プラン 2)

 

Power BI Pro (POWER_BI_PRO)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
BI_AZURE_P2 Power BI Pro

 

Project Online Essentials(PROJECTESSENTIALS)
FORMS_PLAN_E1 Microsoft Forms (プラン E1)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
SWAY Sway
SHAREPOINTWAC Office Online
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)
PROJECT_ESSENTIALS Project Online Essentials

 

Project Online Professional(PROJECTPROFESSIONAL)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
SHAREPOINTWAC Office Online
SHAREPOINT_PROJECT Project Online Service
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)
PROJECT_CLIENT_SUBSCRIPTION Project Online デスクトップ クライアント

 

Project Online Premium(PROJECTPREMIUM)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
SHAREPOINTWAC Office Online
SHAREPOINT_PROJECT Project Online Service
SHAREPOINTENTERPRISE SharePoint Online (プラン 2)
PROJECT_CLIENT_SUBSCRIPTION Project Online デスクトップ クライアント

 

Visio Online プラン 1(VISIOONLINE_PLAN1)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
VISIOONLINE Visio Online
ONEDRIVE_BASIC OneDrive for Business Basic

 

Visio Online プラン 2(VISIOONLINE_PLAN2)
ONEDRIVE_BASIC OneDrive for Business Basic
VISIOONLINE Visio Online
VISIO_CLIENT_SUBSCRIPTION Visio Pro for Office 365
EXCHANGE_S_FOUNDATION ※表記無し、除外不可

 

Microsoft Flow Plan 1(FLOW_P1)
FLOW_P1 ※表記無し、除外不可

 

Microsoft Flow Plan 2(FLOW_P2)
FLOW_P2 ※表記無し、除外不可

 

Microsoft PowerApps Plan 1(POWERFLOW_P1)
FLOW_P1 Flow Plan 1
POWERAPPS_P1 PowerApps Plan 1

 

Microsoft PowerApps Plan 2(POWERFLOW_P2)
FLOW_P2 Flow Plan 2
POWERAPPS_P2 PowerApps Plan 2

 

Microsoft Stream Plan 1(STREAM_P1)
STREAM_P1 ※表記無し、除外不可

 

Microsoft Stream Plan 2(STREAM_P2)
STREAM_P2 ※表記無し、除外不可

 

Windows 10 Enterprise E3 (local only)(Win10_E3_Local)
WIN10_ENT_LOC ※表記無し、除外不可

 

Microsoft Cloud App Security(ADALLOM_STANDALONE)
EXCHANGE_S_FOUNDATION ※表記無し、除外不可
ADALLOM_S_STANDALONE Microsoft Cloud App Security

 

Intune(INTUNE_A)
INTUNE_A ※表記無し、除外不可

 

Azure Active Directory の基本(AAD_BASIC)
AAD_BASIC ※表記無し、除外不可

 

Azure Active Directory Premium P1(AAD_PREMIUM)
ADALLOM_S_DISCOVERY Cloud App Security Discovery
AAD_PREMIUM Azure Active Directory Premium プラン 1
MFA_PREMIUM Azure Multi-Factor Authentication

 

Azure Active Directory Premium P2(AAD_PREMIUM_P2)
ADALLOM_S_DISCOVERY Cloud App Security Discovery
MFA_PREMIUM Azure Multi-Factor Authentication
AAD_PREMIUM Azure Active Directory Premium プラン 1
AAD_PREMIUM_P2 Azure Active Directory Premium P2

 

Microsoft Azure Multi-Factor Authentication Premium スタンドアロン(MFA_STANDALONE)
MFA_PREMIUM ※表記無し、除外不可

 

Azure Information Protection プラン 1(RIGHTSMANAGEMENT)
RMS_S_PREMIUM Azure Information Protection プラン 1
RMS_S_ENTERPRISE Azure Rights Management

 

Azure Information Protection Premium P2(INFOPROTECTION_P2)
RMS_S_PREMIUM2 Azure Information Protection Premium P2
RMS_S_ENTERPRISE Azure Rights Management
RMS_S_PREMIUM Azure Information Protection プラン 1

如何でしたでしょうか。

今回、沢山のサブスクリプションを追加・削除したので、随分と汚いテナントになってしまいましたが、これからも定期的にウォッチしていきたいと思います。

ドメインとAzureADテナントの紐づけを調べる

$
0
0

今回はちょっとトリッキーなTipsです。

色々なテナントをテストで利用していて、ふと「あれ、この独自ドメイン紐づけていたのどのテナントだっけ」となったり、「あの会社確かOffice 365使っていると言っていたけどテナント(xxx.onmicrosoft.com)どこだろう」…と調べたくなることがあると思います。

こういったときには、Exchangeの管理シェルからGet-FederationInformationコマンドで調べられます。Exchange Onlineに接続し、以下のコマンドを実行してみます。

[PS] C:\>(Get-FederationInformation -DomainName mirogo-shoji.com -BypassAdditionalDomainValidation).DomainNames

Domain
------
mirogo.onmicrosoft.com
mirogo-shoji.com

この例では、mirogo-shoji.com のドメインが紐づけられているテナントは mirogo.onmicrosoft.com だということが分かります。逆の場合(特定の xxx.onmicrosoft.com に紐づけられているのはどんな独自ドメインか)も同様のコマンドで調べられます。

なお、この例では Autodiscover のDNSをきちんとOffice 365用に設定していないと調べられません。

その場合は、ちょっと面倒ですが、Exchange Server(バージョンはいくつでも良いです)を1台立てて、そのサーバ上のHostsファイルに autodiscover.[調べたいドメイン名] を autodiscover.outlook.com のどれかのIP(例えば40.100.154.56)に向けるように設定して、コマンドを実行すれば大丈夫です。

クライアントアクセスルールによるIP制限

$
0
0

今までと同じポリシーで利用したいということで、Exchange Online で IP アドレス制限を掛けたいという話は良く聞きます。これまでは、AD FSを利用したクレームルールを構成するか、Azure AD Premiumの条件付きアクセスの機能を利用する、あるいはサードパーティのツールを利用するなどして制御するしかありませんでした。

いずれも新規でサーバを立てるなり、追加でライセンスを購入するということでコストの掛かるソリューションでしたが、Exchange Onlineに実装された(現在、まだ全てのテナントで利用可能ではありませんが)クライアントアクセスルールを利用する事により、標準機能としてこれを実装できるようになりました。

Exchange Online のクライアント アクセス規則

また、この機能は現在 AD FS などを利用してIPアドレス制限を掛けている環境においても、その不足する部分を補完する存在になり得ますので、是非この機能は注目して頂ければと思います。

Exchange Online では認証を自身で行わずに Azure Active Directory(Azure AD) で行っています。アクセス制御についてもAzure AD側で実施をしており、認証のタイミングでの条件でアクセストークンが発行されます。トークンのあるユーザーに対しては既定で Exchange Online は無条件でアクセスを受け入れますので、例え、クライアント側でその条件が途中で満たされなくなっても理論上アクセスは継続されます。

簡単なイメージですが、モバイル PC を WiFi で社内 LAN につないで Exchange Online に接続したとします。AD FS を利用して社内からしかアクセスできないように制限をしていたとしても、この PC をそのまま外に持ち出してWiFiをスマートフォンのテザリングなどに切り替えても、アクセスが継続可能です。

これを、クライアントアクセスルールを併用して社内 LAN からインターネットに出ていく際のグローバルIPアドレスのみ許可するような設定をしていた場合、WiFiを切り替えた瞬間に利用できなくなります。

今までは、こういったケースに関しては「社内PCを外に持ち出す」「外で利用するPCを社内LANに接続させる」など別次元のセキュリティリスクの話として片付けるしか無かったのですが、クライアントアクセスルールの併用でそういった穴を塞ぐことができます。

また、注意事項が1つ。

クライアントアクセスルールの IP アドレス制限は、中間層アプリケーション、平たく言えば Outlook for iOS や Outlook for Android など、クライアントからの接続を中継するアプリケーションに関しては機能しません。

まあ、そもそも何処でも使えるモバイル環境に安全に、キャッシュを残さずに利用できるようにという思想の物ですので、社内だけで利用できてもあまり意味は無いですよね。どうしてもクライアントアクセスルールで塞ぎたければプロトコル(REST)ごと塞ぐという感じになるかと思います。


Exchange Online のアプリケーション偽装権限

$
0
0

Exchange Online と連携したアプリケーションを利用する際、アプリケーション偽装(ApplicationImpersonation)という特権(管理者権限)を利用するケースが多いです。

これを利用する事により、アプリケーションは自身の権限設定を利用して対象のユーザーになりすましてメールを取得したり、予定表を更新したりできます。

例えば、以下の様なことができます。

  1. モバイルアプリケーションがExchange Serverのメールを取得する
  2. 会議室有効利用のサービスが会議室の利用情報を取得、更新する
  3. メールの移行ツールが各ユーザーのメールボックスの中身を取得する

最近特にExchange Onlineと連携するアプリケーションやサービスが沢山出てきて、その中で利用されています。

導入手順などでは、単純に「①システムで利用するアカウントを作る ②作成したアカウントのパスワードを無期限に設定する ③作成したアカウントにApplicationImpersonationの権限を付与する」などの内容が詳細な手順と共に記載されていることが殆どです。

確かに、アプリケーション開発者の立場からするとそういった記載になるのは理解はできるのですが、Exchange管理者の立場としては、単にアプリケーションを利用するにはこの手順が必要だから…と思考停止せずに、きちんとこれを設定することの意味(リスクを含めた)を理解した上で設定する必要があります。

○権限に対する認識について

この特権は、全てのユーザーに偽装してメールを読み書きできます。つまり、このアカウントが悪用された場合、役員を含む全てのメールボックスの内容を見られてしまいます。

しかも、都合の悪いことに、このアカウントは平常時から様々なメールボックスにアクセスしているため、メールボックス監査のログからも悪用されていること自体が判別することが困難です。

役割ベースアクセス制御(RBAC)について

権限の付与にはExchangeの役割ベースアクセス制御(RBAC)という物が利用されます。これにより、設定された権限の組み合わせを元にした管理者役割グループの作成や、ユーザーへの権限の割り当てを行います。

この中に、管理役割スコープの設定という項目が有り、これを利用する事によりこの権限が有効な範囲を決定することができます。

例えば、一般社員向けにモバイルアクセスの為の権限付与で必要な場合に、そのスコープに役員を初めとしたモバイルを使わない社員を含めない事により、リスクを最小化することが可能です。

会議室のスケジューラーのアプリケーションには、会議室メールボックスに対する権限のみスコープに含めれば、例え会議室に設置されているKIOSKがハッキングされたとしても、その端末に設定されている権限を利用して社長のメールボックスにアクセスされるというリスクは少なくなります。

○アカウントの棚卸しについて

Exchangeの最上位である組織管理者(Organization Management)の権限については、それが付与されているユーザーについての棚卸しが行われているケースが多いかと思います。

ApplicationImpersonationの権限を持つユーザーに関しても、前述の通り非常に強い特権になりますので、同様にきちんと棚卸しをする必要があります。Get-ManagementRoleAssignment コマンドレットを利用すれば、その権限を付与されているユーザーもしくはグループの一覧が取得できます。(以下、出力例)

PS C:\> (Get-ManagementRoleAssignment -Role "ApplicationImpersonation").RoleAssigneeName
Organization Management
RIM-MailboxAdmins6be8fce7ca594ef89a6175fb7746b304
admin

システムの仕組み上、パスワードの変更が容易でないというケースもあるかと思いますが、それでも不可能では無いと思いますので、メンテナンスなどのタイミングで実施は試みた方が良いと思います。

アクセス元のIPアドレス情報などが取得できる環境であれば、設定したシステム以外からアクセス試行が無いかもきちんと管理しておくとより望ましいですね。

Office365のTLS1.2の強制が延期されました

$
0
0

メッセージセンターに通知が来たのでお気づきの方も多いかも知れませんが、Office 365によるTLS1.2暗号化の強制が2018/10/31に延期されました。

比較的急なアナウンスだったので、Office 365管理者の中には大急ぎで対応要否について調査されている方も多かったのでは無いかと思いますが、これで少し期間的な猶予ができましたね。

Exchange Onlineへのシステムメール送信

$
0
0

プリンターやシステムのアラートメールなど、社内ネットワークからExchange Online上にあるユーザーのメールボックスにメールを送信するにはいくつか方法があります。

その中で一番設定が簡単で利用されるシーンも多いのが、MXレコードの向け先と同じ contoso-com.mail.protection.outlook.com などのアドレスにSMTP(TCP/25)で直接送信をする方式となります。

Office 365 を使って、多機能デバイスやアプリケーションがメールを送信するように設定する方法

このケースにおいて、稀にメールが受信できないという事象が発生することがあり、調査してみるとSMTPで送信をしようとした際に4xx番台のエラーが出て失敗したという物です。

詳細なログを確認してみると、以下の様なエラーコードで失敗しています。

451 4.4.0 Message failed to be made redundant due to A shadow copy was required but failed to be made with an AckStatus of Retry

451 4.4.0 Message failed to be made redundant due to A shadow copy was required but failed to be made with an AckStatus of Fail

451 4.7.0 Temporary server error. Please try again later. PRX5

452 4.3.1 Insufficient system resources (ProcessorTime)

452 4.3.1 Insufficient system resources (TSTE)

452 4.3.1 Insufficient system resources (UsedVersionBuckets[D:\Queue])

これらは、いずれもExchange Onlineの接続したサーバ環境が一時的に高負荷であり、接続が許容されなかった(≒再送して下さい)という物で、サポートなどに調査依頼や再発防止などを依頼しても解決しない問題となります。これは複数ユーザーの利用するパブリッククラウドであるExchange Onlineでは不可避の問題です。

これはあくまで私の感覚的な数字ですが、0.1~0.01%の間(数千通に1度)程度はコンスタントに発生していますが、継続して発生するようなことはなく、殆どが次回の再送で送信完了しております。

ここで、SMTPクライアントとして直接Exchange Onlineに送信しているような物だと、ソフトウェアの作りによっては再送を行う事はせず、一度の送信失敗でそのまま異常終了してしまうケースがあります。

この場合、そのメール自体がロストしてしまうという自体になってしまいます。この為、届かないと困る重要なメールをExchange Onlineに送信する場合は、

  1. きちんとエラーコードを判別して4xx番台の一時的なエラーだった場合は再送する
  2. アプリケーションは、ローカルやネットワーク内のSMTPサービス(PostfixやSendmailなど)に投げ、そちらできちんと再送制御を行った上で送信する

のどちらかの解決策をとることを強く推奨させて頂きます。

Office 365の障害時にどうすべきか

$
0
0

年度明け最初の週末に向けた2018/4/6(金)の夕方、比較的広い範囲のOffice 365の一部テナントでログインに関連する障害が発生しました。

幸か不幸か、私の個人用のテナントや会社で使っているテナントは影響を受けていなかったのですが、色々と気づくことも有ったのでメモ代わりに記しておきたいと思います。

一番最初に気がついたのは、17:36にFacebookのOffice 365コミュニティに書き込まれた書き込みでした。(ちなみに、このグループは2018年4月現在1600名以上の参加者のいる私の知る限り日本最大のOffice 365ユーザーコミュニティです)

クラウドサービスの障害の対応を考えるときに最初にやることはその事象が自分だけなのか、他のテナントもなのかの切り分けです。こういった時にFacebookコミュニティは非常に有用です。1回書くと、恐らく数十のテナントで同様の障害が発生しているかどうかを参加者の方がテストしてくれると思います。

サービス正常性ダッシュボードを最初に見るように言われたり、いきなりサポートリクエストを送信するようにしているケースも有りますが、以下の様な問題点があるので、迅速な対応をしたい場合は自力でのある程度の切り分けを推奨します。

  1. サービスの障害としてMicrosoftが認識するトリガーは、複数のユーザーからの同様の障害申告(よって、テナント固有の問題は除外されるし、少しタイムラグがある)
  2. そもそもログインしないと見れないサイト上にサービス正常性が表示されている
  3. 通常のサポートリクエストの手順は管理者としてログイン後の物であり、電話番号や契約情報をメモっていない限りは電話での依頼はできない

そうこうしているうちに、他のユーザーから 17:40にも同様の書き込みが行われ、どうやら障害っぽような雰囲気になってきました。Twitterでも検索すると同様の書き込みが散見され出しました。日本以外のAPACやオセアニアからも同様の書き込みがされています。

この辺のサイトでヒートマップとかも表示されていて参考になりました。
Outage Report

また、エラーの発生しているユーザーからの情報で、エラーの内容は、[フェデレーションドメイン名はシステムに存在しません][サブスクリプションが見つかりません]などという物。かなり根が深そうな印象でした。

さて、皆さんご承知の通り、JapanやAustraliaはOffice 365的には Go Local というGeoであり、APACのAzure ADの張り出しみたいな形で実装されています。この為、この時点でAPACのAzure ADがおかしいのかな、と思い始めます。

注)後にEU側からも同様な報告が来ていたので、たまたまタイムゾーン的な話でAPACの報告が多かったようです

たまたま今回の障害はログイン出来るテナントがあったので確認をしたところ、サービス正常性ダッシュボードに障害の情報が掲載されていたことを確認。この時点で発生時から既に1時間ほど経過していましたが、まだ原因が特定されていなかったので、結構時間が掛かってるなという印象。

ここまで来ると、もう各ユーザーテナント側でできることはありません。社内向けに何か情シスが求められたとしても

『Office 365で、アジアを中心に一部のテナントでログインできないという障害が発生中。Microsoft側の対応を待っています。』

程度流しておくしかできないです。回復見込みはいつだ、定期報告しろ、根本原因は?とか騒ぐような方がいるような組織の場合はご愁傷様です、ユーザ側にこれ以上できることは根本的には無いのです…。

そうこうしているうちに20:08頃よりサインインできるようになったとか、サインイン出来るけどTeamsはまだとかそういった情報が流れるようになって来ました。20:30頃には大体収まったような感じでしょうか。

平行して、TwitterではMicrosoftの公式アカウントである Office 365 Status から状況の報告が出てました。今回の場合、サービス正常性ダッシュボードが確認出来ないので、こう言った広報手段というのは普段から確保しているのでしょうね。ちなみに、18:18初報、20:53終了報なので、少しタイムラグが有りそうです。

今後もこのアカウントでの告知は平行して行われるようですので、フォローしていない人はフォローしておいた方が良いかもしれませんね。

というわけで。実質3時間ほど一部テナントに影響するインシデントが発生したわけですが、認証系というかなり根が深い部分で障害だったにも関わらず、障害の認識から回復までの時間は短い方だったと思います。

PIR(事後インシデントレポート)を見る限りは根本原因はメンテナンス作業に伴う設定ミスですが、直そうとしている方向性が「①例え設定ミスしても検知できるトレンド分析」「②ユーザーからの申告より先に障害に気付ける仕組み作り」であるのは、同じクラウドサービスのサービス提供事業者として個人的に好感が持てました。

どうしても日本の企業だと、「なぜユーザー通知無しでメンテナンスを行うのか」「なぜまだ業務時間内なのにメンテナンスするのか」「そもそも何で設定ミスしたのか」などというユーザーからの直の声をそのまま対策にも反映させてしまいがちですが、正直そんなところはもう何百何千と考えて品質向上を実行してきたのでしょうからね。

Office 365関連の書籍を執筆しました

$
0
0

いつもお世話になっている北端さん、太田さんと共著させて頂いた書籍「Office 365管理者のための逆引きPowerShellハンドブック」が11/15に発売されることになりました。

コマンドの説明であればオンラインヘルプや Technet を見れば十分に事足りると思い、サンプルスクリプトなどもなるべく実務よりで Tips が多くなるように書きました。

書き切れなかったことや補足、訂正したいことなども今後色々出てくると思うので、内容については今後この Blog 内でフォローしていきたいと思っていますので、こちらも参照いただければと思います。

11/5-7 の Tech Summit 2018で先行販売されるとのことですので、イベントに参加される方はよろしければ手に取ってみて下さい。

第23回 Office 365勉強会に登壇しました

$
0
0

11/23に開催された第23回Office 365 勉強会に登壇しました。

今回のテーマは「O365勉強会的、AzureAD勉強会」。主催者メンバーの中での企画段階では、色々とBlogでお世話になっていて、今年Microsoft MVPになった @Miya_Microsoft さんにOffice 365勉強会に来て貰いたいというのが最初で、以前そういえば国井さんの事をインスパイアしてたなぁ…と思い、2人セットでブッキングできそうなテーマとして選びました。(毎回ではないですが、結構ユルい感じでテーマ決めとかしてます)

当日の様子はこちら : 第23回 Office 365 勉強会 #o365jp まとめ

私のセッションでは、「Azure ADのテナント設計」ということで、Office 365管理者としてはおそらく意識せずに使っているAzure ADのテナントについて、今後AzureやD365などの他のサービスが利用するようになってきた場合にも、どうしていったら良いかきちんと考えられるよう、注意事項や指針などについて話をさせて頂きました。

アンケートなどでも良い反応を頂けたようですので、またこのBlogなどでもこの辺の話題について詳細やアップデートなど発信していければと思っています。

ハードウェアトークン(YubiKey)での多要素認証

$
0
0

この blog は Office 365 Advent Calendar 2018 に参加しています。

Office 365の管理者アカウントの利用に多要素認証を検討されている(もしくは既に実装済み)というユーザーは多いかと思います。

現状、Microsoftでは利便性を重視してスマートフォンでのアプリケーション Microsoft Authenticator を利用したアプリ通知による認証を推していますが、環境によっては利用が難しいケースがあります。

そもそもBYODが認められていない組織での利用(Authenticatorを入れた自分のスマートフォンを業務利用できない)であったり、管理用端末がセキュリティ管理エリアにあってスマートフォン自体が持ち込み不可のような場合です。

私も、委託を受けてお客様の導入を支援したり運用を代行することがあるのですが、その際はお客様環境のルールに応じた対応をしなくてはなりません。作業場所でスマートフォンを持ち込めるか、直通の電話が受けられる固定電話があるかどうかなどを事前に調整するのも限度があるので、最近はAuthenticatorの他にハードウェアトークンも併用するようにしています。

ハードウェアトークンも色々と使える物が増えてきてますが、個人的に一番使い勝手が良い(専用のAuthenticatorのインストールが必要だが、ユーザー側作業のみで設定可能、電池交換が不要など)のでYubiKeyを使っています。

現在日本で簡単に購入できる物は YubiKey 4かYubico Security Key by Yubicoですが、今回紹介する方法で利用できるのは YubiKey4 の方のみです。

右の黒がYubiKey 4
左の青がSecurity Key by Yubico

それでは、YubiKey 4での Office 365 への多要素認証の設定について紹介します。まずは、ワンタイムパスワードを生成するためのアプリケーション Yubico Authenticator をYubicoのページからダウンロードしてインストールします。

インストールが完了して起動すると、こんな画面になります。

続いて、認証する Azure AD 側での設定です。うまくQRコードを読み込めない事があるので Yubico Authenticator を起動した状態でブラウザを開き、Office 365にログインし、右上の顔写真のところから [マイアカウント]を選択し、[セキュリティとプライバシー] – [追加のセキュリティ検証]を開き、[アカウントのセキュリティに使用する電話番号を更新します]をクリックします。

現在登録されている多要素認証の要素の一覧が表示されますので、[認証アプリまたはトークン]にチェックを入れ[Authenticatorアプリの設定]をクリックします。(※なお、初回のアクセスの場合は、最初から登録を促される画面が表示されます)

Microsoft Authenticatorに登録する際と同じ画面が表示されます。ここで表示されるQRコードは、既定であるアプリケーション通知の設定になりますので、QRコードの横にある [通知をオフにしてアプリを構成] をクリックします。

これで、Yubico Authenticator が設定できるQRコードが表示されます。

続いて、PCのUSBインターフェイスにYubiKey を差し込みます。
Yubico Authenticator の [No YubiKey detected.] の表示が [No credentials found.]に変わります。

画面にブラウザのQRコードが表示されている状態で [File]メニューから[Scan QR Code…]を選択します。

上手く読み込めると、以下の様にアカウント名と Security keyなどを含めたワンタイムパスワード生成用の情報が Yubico Authenticator に表示されます。[Save credential] を押すとYubiKey にこれらの情報が書き込まれます。(読み込めなかった場合は、再度ブラウザを起動し直すか、画面に表示されている内容を参考に手動で [New credential] で構成することもできます)

OTP生成用の情報が保存されると、Yubico Authenticatorには次のような6桁のパスワードと残り時間を示す緑色のバーが表示されるようになります。

なお、前の登録画面のところで[Require touch]のチェックボックスを付けると、Yubico Authenticator上では通常時アカウント情報のみ表示されるようになります。

OTPを表示させるには、アカウント名をダブルクリック、または[Edit]メニューもしくは右クリックから[Generate code]を選択します。画面に [Touch your YubiKey to generate the code.]とダイアログが表示されている間にYubiKey本体の金色の y の部分を物理的に触ることにより表示されます。

これにより、多少手順は面倒になりますが、[物理的にハードウェアトークンを持っている]ということが証明され、より強固な多要素認証を保証することが可能です。(例えば、YubiKeyが差し込まれたままのPCにリモートデスクトップで接続して表示させたのではないと証明できる)

元のブラウザに戻り、[次へ] を選択します。[確認が必要です] と表示されるので、[今すぐ確認] をクリックします。

確認コードを入力する画面になりますので、Yubico Authenticator に今表示されている6桁の確認コードを入力します。

これで認証アプリの欄に新しい物が追加されました。既定の確認オプションが変更されるので、必要に応じてアプリの通知に戻します。[認証アプリ] の横にデバイス名が表示されないことからも推測できるかと思いますが、Yubico Authenticator はモバイルのMicrosoft Authenticatorと違ってデバイスが固定ではなく、可搬性があります。

ワンタイムパスワードの生成に必要な情報は YubiKey 側に格納されているので、どの端末でもYubico Authenticatorがインストールしてあれば特に追加で設定する必要無く利用できます。

YubiKey を忘れた場合や無くした場合に代替できるように、通常は電話番号での認証、もしくはスマートフォンのMicrosoft Authenticatorなども合わせて設定しますが、最も強いレベルの保護はもう1本 YubiKeyを設定しておいて、合鍵として利用することが推奨されています。

こういった運用フェーズでの話も、また別の機会に少しまとめて書きたいと思います。

また、Security Key by Yubico(青い方)で FIDO2を使ったWindows 10 / Azure ADへのパスワードレスログインなどもそろそろ登場してくる予定のようですので追って紹介していきたいと思います。


YubiKeyでの多要素認証:管理者による登録

$
0
0

以前の投稿で紹介したように、Yubikey (+ yubico Authenticator)による登録は各ユーザーがセルフサービスで実施することができて、気軽に利用できます。

しかしながら、この手順は一般ユーザーにとっては若干複雑です。また、いくつか問題が発生する可能性のあるポイントもあります。例えば、以下の様な物です。

  • 画面に秘密鍵やログインIDを含む情報が直接表示されているため、ショルダーハック(覗き見)により悪意ある人間に合鍵を作られる可能性がある
  • 同じ秘密鍵を複数のトークンに設定することが可能なので、作ってることをIT管理者側に知られずに本人が意図的に合鍵を作ることもできる
  • 紛失時のために複数のYubikeyを登録した場合でも、一覧からは「認証アプリ」としか表示されず、無くしたYubikeyだけではなく全ての秘密鍵を無効化して再設定する必要がある

今回は、こうした要求に応えるため管理者側で一括して登録する方法について説明します。(本機能は執筆時においてプレビュー機能の為、変更になる可能性があります)

まずは、登録する情報を収集します。最低限必要な情報は UPN と 秘密鍵、組織内で重複しないトークンのシリアル番号です。以下の形式のCSVとして保存します。

upn,serial number,secret key,timeinterval,manufacturer,model

秘密鍵はBASE32(大文字小文字区別無しのアルファベットa~zと区別のつきづらい0と1を除いた2~7の数字)32桁で構成されます。パスワードジェネレーターで生成しても良いですが、BASE32に対応したジェネレータというのも少ないのでPowerShellで生成してしまうのが楽だと思います。

PS C:\> 1..32 | % { $randkey += $(Get-Random -InputObject a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,2,3,4,5,6,7) }
PS C:\> $randkey
5wj2v7ywvrxj7fm5lpwvnm7mplcuwil4

シリアル番号は、YubikeyはUSBコネクタの金属面ではない方に小さく7桁の数字が刻印されています。

YubiKey 4背面

ただ、システム上は重複さえしなければ何を振っても問題ありません。小さくて見えづらいですし、削れて消えやすいのでテプラなどで独自の物を振っても良いかもしれません。これらの情報を元に、以下のようなCSVファイルを作成します。

upn,serial number,secret key,timeinterval,manufacturer,model
genkiw@mirogo.onmicrosoft.com,8578003,5wj2v7ywvrxj7fm5lpwvnm7mplcuwil4,30,yubico,YubiKey4

この情報を ①Azure AD ②YubiKey のそれぞれに登録します。まずはAzure ADからです。作業はAzureポータルから実施します(そのテナントにAzureのサブスクリプションは無くても作業は可能です)。Office365で利用している管理者のアカウントで https://portal.azure.com/ にアクセスします。

[Azure Active Directory]のメニューを開き、[MFA]をクリックします。

[OATHトークン]を開き、[アップロード]を選択し、先ほど作成したCSVファイルをアップします。(合鍵を作れてしまう秘密鍵の情報が含まれてます。CSVファイルはアップロードが成功したら確実に消去しましょう)

しばらく待って[更新]を押すと、登録が完了し、CSVファイルのトークンが一覧に表示されます。
(エラーが発生しましたと表示されることがありますが、詳細を開いて、[成功]になっていれば特に動作に問題はないので無視して進みます)

最後に [アクティブ化] を実施するのですが、その前にYubiKey側に登録します。Yubico AuthenticatorのGUIからちまちま入力しても良いですが、管理者が一括で実施する場合はCLIツールで実施した方が簡単なので、そちらの手順を紹介します。

まずは、YubiKey Manager をダウンロードしてインストールします。この中に含まれる ykman.exe というツールを利用します。

先ほどの情報に組織名(任意です)、発行者としてMicrosoftを入れて以下のようにコマンドを実行します。

PS C:\> cd 'C:\Program Files\Yubico\YubiKey Manager\'
PS C:\Program Files\Yubico\YubiKey Manager> .\ykman.exe oath uri 'otpauth://totp/ミロゴ商事:genkiw@mirogo.onmicrosoft.com?secret=5wj2v7ywvrxj7fm5lpwvnm7mplcuwil4&issuer=Microsoft'

これで、YubiKey側にOTPを生成するための情報が書き込まれ、Yubico Authenticatorを開くと認証コードが表示されるようになります。

Azureポータルに戻り、先ほど登録した情報の右側の [アクティブ化] をクリックして、その時点でYubico Authenticatorに表示されている確認コードを入れます。

アクティブ化の欄にチェックが入り、登録完了です。

ユーザーからの追加のセキュリティに関する画面は以下のようになります。

  • 利用開始するにあたり、ユーザー側での操作は必要ありません
  • 製造者やシリアルが明示され、複数存在していても識別しやすいです
  • 自身で[削除]はできず[無効化]のみ可能で、実施すると非アクティブ状態になります。削除(もしくは再アクティブ化)は管理者がOATHトークンの画面から実施します。

キー自体を会社からの貸与とする場合など、組織の運用や習熟度に合わせて、セルフサービスでの追加と使い分けていくと良いと思います。

YubiKeyでの多要素認証:管理者による合鍵管理

$
0
0

YubiKeyでの運用で気を付けなければならないのは、キー自体を忘れたときの管理です。代替の方式として個人のスマートフォンでの電話やMicrosoft Authenticatorや固定電話などが設定できる環境であればそれで代替してもいいですが、今回はセキュリティの強度が高いとして推奨されている予備のYubiKeyを用意する方法について、どう利用するかの例を紹介します。

もちろん、各個人に2個ずつ YubiKey を配布し、一つは会社の机の中に入れておくなども可能かと思いますが、5000円程度するデバイスなので数がまとまると結構な「合鍵」代となってしまい、二の足を踏んでいるところをよく見かけます。

ただ、ここで合鍵代をケチったばかりに職場へのスマートフォン端末持ち込みを許可させたりというのも本末転倒ですよね。

そこで運用上の節約術なのですが、共通で合鍵を用意します。ちょうど、総務がロッカーや袖机の合鍵の束を管理してたりする事の YubiKey 版と思えばいいと思います。

YubiKeyは1本に複数の認証情報を保持できます。例えば、YubiKey 4では32個のOATH認証情報を保持することができます。つまり、1アカウントあたり 5000 / 32 ≒ 156円ほどで合鍵が作れることになります。

これくらいの値段であれば万が一のために作っておいて、IT管理部門や各部門の管理者などに預けておいても良いですよね。

作り方は、基本的には 以前の記事 と同じです。まずは、管理者が一括登録用のCSVを作成します。まずは PowerShell で必要な個数分の秘密鍵を生成します。例えば、32個生成するのであれば以下のようにします。

1..32 | % {
	[String]$randkey = ""
	1..32 | % { $randkey += $(Get-Random -InputObject a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,2,3,4,5,6,7) }
	$randkey
}

これを元にこんな感じのCSVを作成します。シリアル番号は重複できないので、適当に末尾にS00の通番を入れています。

これを Azure ポータルからアップロードします。

続いて、YubiKeyへの登録用のコマンドを作成します。合鍵を利用した際に他の人のOTPが見えてしまうのも何となく気持ち悪いので、 -t オプションをつけてこんな感じの物を作ってYubiKeyのコマンドラインツールを実行します。

.\ykman.exe oath uri -t 'otpauth://totp/ミロゴ商事:10101@mirogo-shoji.com?secret=54fuwns7bwoybvfdjpmpfnr4vwggplxm&issuer=Microsoft'
.\ykman.exe oath uri -t 'otpauth://totp/ミロゴ商事:10102@mirogo-shoji.com?secret=bl46n3bd3ypsuryaiblsovsuxp53zotv&issuer=Microsoft'
.\ykman.exe oath uri -t 'otpauth://totp/ミロゴ商事:10103@mirogo-shoji.com?secret=cafqhec7cflb265sn2ugkt2ae2gyvcti&issuer=Microsoft'
…

これを実行すると、Yubico Authenticatorに32個の認証情報が表示されます。他のユーザーのOTPも見ようと思えば見えますが、あくまでID/PASSを入力した後の+αの2要素目として利用しているので、セキュリティ上のリスクは、代替手段を会社の固定の内線電話とした場合と比べても高くありません。

最後に、これら32件それぞれのアカウントに対して、このキーを1個1個 [アクティブ化]していきます。 -t をつけているので、Yubico Authenticatorでキーを表示させる際には都度金属部分をタッチします。

面倒ですが、初回のみ頑張って実施して下さい。ユーザー数が多い場合はうまく検索やフィルタを使って作業するとやりやすいと思います。

他にもこんな運用上の工夫があるよ、などあったら教えて貰えると嬉しいです。

Token2でのAzure ADの多要素認証

$
0
0

以前紹介した Yubikey の多要素認証には、Yubico AuthenticatorでのOTPの表示が必要だったため、ソフトウェアのインストールが制限されている環境(特にサーバ環境や Thin Client環境など)など利用ができないケースが有ります。

今回は、OTPの表示機能を備えた一般的なハードウェアトークンで、Azure ADに対応しているToken2のデバイスを利用した多要素認証について紹介します。

Token2のプロダクト群の特徴は、従来型のハードウェアトークン(Classic Token)に加えて書き換え可能トークン(Programmable Token)が有るという点です。また、形状もよく見かけるようなキーホルダー型の物とカード型の物が有ります。 価格も1個あたり €10 ~ €20 程度と比較的リーズナブルです。

今回は、Programmableのうちのカードタイプ miniOTP-1-NB での設定を紹介します。(ちなみにClassicの場合は管理者が出荷時にプリセットされている秘密鍵をAzure ADに登録して利用します。現在プレビューで要Premiumライセンスです)

本体が €19 で日本までの送料が €5 (Priorityの場合、Tracking有りの場合 €11)掛かります。 スイスからの発送で、日本までの到着にかかる期間は1週間~10日程度でした。

クレジットカードや名刺サイズより結構小さいサイズなので、カードケースに入れて持ち運ぶ場合は落ちないよう少し気をつけた方が良いかもしれません。また、OTPは常時表示はされておらず、表示させる場合は右下の電源ボタンを押すと液晶部分に一定時間表示されます。

出荷時にプリセットされている秘密鍵はオーダーの確認画面からたどれるリンクもしくはこちらから入手することができます。その際に必要なのは「Order ID」「Email」「Serial number」、あとは任意で「暗号化用のPGP公開鍵」になります。(フォーマットでAzure MFA用のCSVを指定すれば、UPNさえ変更すればすぐに利用できるので便利です)

余談ですが、Serial numberの欄にenter rangeという欄があり、12345600+50(12345600~12345650まで)などの指定ができるので期待をしていたのですが、10枚まとめて買ってもバラバラのシリアルで来たのでシリアルはカード見ながら1個1個入れないとだめでした。

秘密鍵を書き込むためにNFC対応のAndroidスマートフォンと Token2 Burner App を利用します。このスマートフォンは最初のアクティベートの時以外は利用しません。

追加のセキュリティ設定を開き、[認証アプリまたはトークン] – [Authenticatorアプリの設定]をクリックします。デフォルトで表示されるQRコードではなく[通知をオフにしてアプリを構成]で表示されるQRコードを表示させます。

執筆時のバージョンは自動で付与されないようだったので、Token2 Burnerにアプリの権限でカメラの権限を手動で付与し、アプリを起動、Token2のカードのボタンを押し、NFCで接続ができることを確認した上で、[QR]をクリックしてカメラでQRコードを読み取り、最後にアプリの [burn seed]をクリックします。

成功すると burn seed process succeeded と表示されます。私の環境は接触があまり上手くないのか何度も試してみてようやく書き込んでくれました。画面に表示されているQRコードは特に有効期限無いので、慌てずゆっくり実行して大丈夫です。

最後に、カードに表示されている6桁のOTPをブラウザに入力して登録完了です。

最初の登録の所のみ少し面倒かもしれませんが、一度登録してしまえば後はカード/キーだけ持っていれば良いので、運用自体は楽になります。価格も安いので、スマートフォン禁止の環境で全社員に配るなどの用途には良いかもしれません。(初回書き込み用の環境だけ少し工面してあげる必要があるかもしれませんが)

Office 365 の障害と信頼性

$
0
0

この記事は Office 365 Advent Calendar 2019 に参加しています

2019年の11月18日と19日、Office 365でExchange OnlineとTeamsを中心とした大規模な障害が立て続けに発生しました。

数日後、Blogサイトに設置してある Google Analytics経由で以下の様な通知メールが来ました。

サイトにログインしてみると、確かに18日と19日に普段の5倍近いのアクセスが来ているようです。

Office 365の障害に関しての情報を有用だと感じている方も多いようですので、既にソーシャルで色々な意見も出ていましたが、今回は私のOffice 365サービスの品質に関して感じていることを項目毎にいくつか書いてみたいと思います。

なお、なるべくエビデンスを示しつつ書こうと思ったのですが、古い記事などで見当たらなくなった物も多く、私の記憶を頼りに書いている部分も多いです。誤っている項目に関しては直ちに修正させて頂きますのでご指摘頂けると幸いです。

凄いと思っていること

私自身、クラウド事業者で似たようなHostedクラウド(Exchange Server、SharePoint Server、Skype for Business Server)の開発運用に携わっていますが、ここはどうしても敵わないと思っていることがいくつかあります。

まず、基本的に全て自分で作っていること。ベースのクラウドも、そこで動くOSも、その上で動かすアプリケーションも自分たちで作って管理しているというのは有事の時の対応速度や、品質向上の観点からすると天と地ほどの差があります。

以前は、Office 365も月に1度だったり主立った物は 3ヶ月に1度の更新頻度でしたので、バグが見つかってもその次の更新のタイミングに合わせないと…などが有りましたが、今は全体に影響の出るような物は随時修正、更新されています。

また、「誤っていたら直す」「より正しい物が出てきたらそれに変更する努力をいとわない」という体質も凄いと感じてます。

具体的に言うと、例えば私の記憶では Exchange Online は最初リリース時はシンガポールDCがメインのデータセンタで、香港DCはバックアップセンタとして位置づけられていたと思います。

サービスイン当初は、シンガポールDCが

  • 207.46.4.128/25
  • 207.46.58.128/25
  • 207.46.198.0/25
  • 207.46.203.128/26

だったのに対して、香港DCは

  • 111.221.69.128/25

のCIDRだけ利用していました。開始半年くらいして、影響がないと想定していたネットワーク作業でサービス影響がでました。こちら、恐らくプライマリDCからバックアップDCへの切り替えの試験を裏でしていたと思うのですが、主にDNS回りなどで想定外の事象になったようです。

その後、Exchange Onlineはシンガポールと香港を 50:50 で両 Active として利用するようになり、障害やメンテナンスに起因したデータセンタの切り替わりもシームレスに行われるようになりました。(オンプレミスの Exchange Server も同様の設計にすることがベストプラクティスになりました。)

また、同じく初期の方の障害の中でデータセンタ内部での大規模なネットワーク障害がありました。細かいメカニズムは説明されませんでしたが、L2ドメインの制御に起因する障害のようで、その後の構成変更でL2ドメインを極小化する施策をとりました。

[すごいネットワーク]DC内は「小型インターネット」

既に何百万ユーザーもいた中で、この規模の根幹からのアーキテクチャ変更を基本的にダウンタイム無しで行うことができたというのは本当に凄いことだと思います。

日本企業で同じ事をやろうとすると、そもそも社内でも止められるケースが多いでしょうし、いざやろうとメンテナンス通知を出したとしても、お客様から「今の状態に満足しているからそんなリスクのあることして変更しないでくれ」という強い要求が来て押し切られてしまう、仕方なく「このサービスは何とかこの構成で乗り切って、次期サービスは新しいアーキテクチャでやろう」となるケースが多いのではないかと。

Microsoftも、BPOS → Office 365と3年周期で来たところでしたので、また3年で新しいブランドを作ってそちらで実現するという選択肢もあったかと思うのですが、「Office 365」というブランドで今後もずっと継続して行きたい、継続的に改善・改良を繰り返して行きたいという強い意志を感じました。

最後に、SLA がきちんとしていること。これは、単なる努力目標&返金規定として機能しているのではなく、ユーザーとの間で現実的に達成可能な数値として定められている点です。

こちら、特に Microsoft Azure の SLA の方が顕著ですが、おそらく「何でこの稼働率を保証できるのか」と聞かれた場合に、 Microsoft はかなり明確にそれを如何に達成できるのかというのを論理的に説明ができるのだと思います。この為、達成できなかった場合の返金率は日本の企業の物に比べると高いです。

月間稼働率サービスクレジット(返金率)
99.9%未満25%
99%未満50%
95%未満100%

ちなみに、今回は Exchange Online の方はきっと99%未満になると思うのですが、結構な財務インパクトですね。これだと本気で品質改善しようと思うでしょうね。

余談ですが、日本のホスティング事業者は例えお客様と合意したSLAの範囲内の故障でも、画一的に決められた影響数と影響時間に基づき、障害発生時に総務省報告の義務があります。大規模障害時はお客様対応も勿論非常に大変なのですが、この監督官庁対応も非常に大変な稼働の発生するお仕事です。

なので、正直どうせ完璧を目指す再発防止策を出し続けないといけないなら、 SLAを非常に高い数字にしてしまって、万一の場合は返金すれば…と思って、例えば稼働率 100%の SLA を定めるというのも少し仕方ないかなという気もします。

ただ、ソフトウェアを使っているので、勿論想定外のバグは発生する物であり、その想定発生率が0%、例え発生したとしても100%冗長化の切り替えが成功するという前提はちょっと苦しいですよね。

ここは改善して欲しいと思っていること

色々と問題が発生する度に徐々に良くなってきているので、正直あまり残っていないのですが、少しだけ書きます。

まず、障害の認識のトリガーがですが、自社で設定したモニタリングで引っかからず、複数ユーザーからの障害申告をもって障害検知しているケースがまだ結構あると感じています。

申告に関しても「複数のユーザーからの」という条件が未だにあるらしく、今回の Exchange Online の障害に関しても、結果として発生から検知・アナウンスまで結構な(個人的な感覚で1時間以上)タイムラグがあったのではないかと思っています。

正直、その辺のデータは一杯取っているのでしょうから、地域毎のコールセンターのコール数、サポートリクエストの起票数、Web(BingやGoogle)の検索数、Twitterなどのソーシャルの発言のトレンドから「何か起こっているかも」の兆候も見いだすことができるでしょうし、RPAなどを活用して、より広い範囲で End-to-End のクライアント接続試験なども行う事ができるのはないかと期待しています。

また、メンテナンスや構成変更などの実行時間についてですが、以前は告知はしないものの、タイムゾーン毎に毎週金曜日の夜間帯がメンテナンスウィンドウとして定められていて、その時間に更新していたような記憶があります。

よくサポートリクエストの調査結果から、クラウド側のバグであることが分かったケースも、修正プログラムは完成したが、全世界に適用するまでに2-3週間かかると言われるケースなどもあり、そういった決まった短い時間だけだと対応が難しいのかも知れませんが、何か有った場合の検知やその切り戻しを迅速にする意味からもクラウド内への適用はもう少し安全かつ迅速にできる仕組みにしていって欲しいですね。

「障害かな」と思ったら自分でやっていること

今回の障害発生時に、自分でやった動作の振り返りです。

  1. 検証環境、もしくは別PCや別ブラウザから再現試験を実施してみて「影響範囲」「発生条件」「再現性の有無」を確認する
  2. サポートリクエストを上げる準備をする
  3. Twitterで似たような症状のつぶやきが無いか検索する(例: 「Office365」「メール」「遅延」)
  4. 自分でもつぶやく
  5. FacebookのOffice365コミュニティを見る
  6. 正常性ダッシュボード([サービスの正常性])を見る
  7. サポートリクエストを上げる

今回は、Teamsの障害の方は [サービスの正常性] ごと落ちるという凄い展開でしたが、Twitterでの情報収集は総じて有用でした。

定期的に国毎で検索してトレンド見ていくと、結構エンドユーザー観点でも有用なデータがプロアクティブに取れるかも知れませんね。

そのうちチャレンジしてみたいと思います。

Office 365勉強会 #34に登壇しました

$
0
0

2021/11/13(土) に開催された第34回 Office 365勉強会「Office 365 勉強会サポートとのうまい付き合い方」に登壇させて頂きました。

以前、社内でサポート関連の勉強会をしたという話をTwitterでしたのですが、その話を聞いていた目代さんがテーマ設定をして決定しました。

ちなみに、勉強会のテーマですが、Teams上でこんな感じでわいわい話をして決めています。

最近、子供の世話が忙しくなかなか勉強会に登壇したりする機会もなかったのですが、久しぶりに参加できていい経験をさせて頂きました。

大体勉強会を通じて登壇者の方がみな同じようなことを言っていたので、皆立場は違っても(サポートを受ける立場、する立場、間に入る双方の立場)考えることは一緒なんだなと感じました。

ただ、きっと例えばサポートの人にひどい言葉をかけてしまうような方は、こういった勉強会に参加するようなことも無いでしょうし、こういった話を耳にすることも少ないのかなと思うと、どうやってそういったことを広めていけば良いのかって大きな課題ですね。

(とはいえ、実際に文書にしてしまうと少し軽い感じの内容に見えてしまいますし、サポートを実際に提供する側のMicrosoftが「こうして下さい」と利用者に言う訳にもいかないと思うので、こういったユーザーコミュニティの中で頑張って啓蒙していくのが一番良いのでしょうね)

こちらが当日の資料になります(※あくまで個人の意見ですので)
Viewing all 47 articles
Browse latest View live