【Q&A】Office 365 :OutlookなどクライアントアプリからSSO経由でログインできない
クライアントアプリからSSO経由で認証するには、クライアントアプリ及びOffice 365 テナントで、先進認証(以下、ADAL)が有効になっている必要がございます。
クライアントアプリ
Microsoft製品 2016 につきましては既定で有効のようでございます。
その他クライアントアプリ、バージョンにつきましては、恐れ入りますがMicrosoft社もしくはアプリ提供元にお問合せをお願い致します。
Office 365 テナント
既定で有効のようでございます。
ただし、2017年8月以前に取得したテナントのExchange Online・Skype for Business Onlineにつきましては、ADALを別途有効にする必要があることを確認しておりますので、以下手順をご参考ください。
クライアントアプリからのSSO利用時の設定(ADAL有効化設定)
1.Exchange Online有効化の設定
- Powershellアイコンを右クリックして、「管理者として実行」を選択します。
- 署名付きスクリプトを実行できるようにするため、以下コマンドを実行します。
Set-ExecutionPolicy RemoteSigned
「Y」か「N」を聞かれるので、「Y」を入力します。(このコマンドは初回のみです) - 以下コマンドを実行後、「全体管理者権限」を持つ Office 365のアカウントでExchange Onlineへログインします。
$UserCredential = Get-Credential - Exchange Onlineとのセッション確立のため、以下コマンドを改行なしで入力して実行します。
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic –AllowRedirection
コマンドがうまくいかない場合は、以下 URL「Exchange Online PowerShell への接続 2.次のコマンドを実行します。」に記載されている $Session から始まるコマンドをコピーして実行してください。
https://technet.microsoft.com/ja-jp/library/jj984289(v=exchg.160).aspx - 以下コマンドを実行します。
Import-PSSession $Session - Exchange OnlineのADAL有効化のため、以下コマンド実行します。
Set-OrganizationConfig -OAuth2ClientProfileEnabled:$true
有効化状況を確認するには、以下コマンドを実行します。
Get-OrganizationConfig | ft name, *OAuth*
「OAuth2ClientProfileEnabled」が「True」になっていれば設定済みとなります。 - セッションを切断するため、以下コマンド実行します。
Remove-PSSession $session
必ず実施してください。セッションを切断をしないと、使用可能な Powershellセッションが消費されてしまい、接続できなくなる可能性があります。
2.Skype for Businessでの設定
-
Window PowerShell Module for Skype for Business Online を下記リンクよりダウンロード&インストールします。インストール後はOSを再起動します。
https://www.microsoft.com/ja-JP/download/details.aspx?id=39366 -
ITプロフェッショナル 用 Microsoft Online Servicesサインイン アシスタント RTW を下記リンクよりダウンロード&インストールします。インストール後はOSを再起動します。
https://www.microsoft.com/ja-jp/download/details.aspx?id=41950 -
Powershellを右クリックして「管理者として実行」を選択します。
-
署名付きスクリプトを実行できるようにするため、以下コマンドを実行します。
Set-ExecutionPolicy RemoteSigned
「Y」か「N」を聞かれるので、「Y」を選択します。(このコマンドは初回のみです。Exchange Onlineでの設定で実施済みの場合は本設定は必要ありません) -
以下コマンドを実行後、「全体管理者権限」を持つ Office 365のアカウントでExchange Onlineへログインします。
$credential = Get-Credential -
「Skype for Business Online Connector モジュール」を有効化するため、以下コマンドを実行します。「Y」か「N」を聞かれるので、「Y」を選択します。
Import-Module LyncOnlineConnector -
Skype for Businessとのセッション確立のため、以下コマンドを実行します。
$session = New-CsOnlineSession -Credential $credential –OverrideAdminDomain "***.onmicrosoft.com" -
有効化を行うために以下コマンド実行します。
Import-PSSession $session
エラーが表示されず成功しましたら、接続されていることを確認するために以下コマンドを実行します。
Get-CsOnlineUser| select DisplayName,Enabled,SipAddress
このコマンドが成功すると テナント内でアカウントを持つユーザーの一覧が表示されます。 -
Skype for BusinessのADAL有効化のため、以下コマンドを実行します。
Set-CsOAuthConfiguration -ClientAdalAuthOverride Allowed
有効状況を確認するには、以下コマンドを実行します。
Get-CsOAuthConfiguration
「ClientAdalAuthOverride」が「Allowed」になっていれば設定済みとなります。 -
セッションを切断するため、以下コマンド実行します。
Remove-PSSession $session
必ず実施してください。セッションを切断をしないと、使用可能な Powershellセッションが消費されてしまい、接続できなくなる可能性があります。
既定では、 Skype for Business Onlineの各管理者に許可される Skype for Business Onlineへの同時接続は3つに限定されます。
セッションを削除せずに Windows PowerShellコンソールを閉じた場合、その閉じられたセッションは、その時点で使用されていない場合であっても1つの接続としてカウントされます。
アクティブでない状態が15分経過すると、セッションは自動的に切断されますが、3つ全てのセッションが埋まっている状態で4つ目の接続を行おうとするとエラーとなります。その場合は、 15分以上時間を置いてから再度試します。
トラブルシューティング
困ったときは?
- 「このシステムではスクリプト䛾実行が無効になっているため、 ~」というエラーが表示された場合:
Windows PowerShellの実行ポリシーに違反している可能性があります。
Windows PowerShellの実行ポリシーを正しく設定することで、上記エラーを回避することができます。Windows PowerShellの実行ポリシーを下記ページを参照の上、実行ポリシーを正しく設定後、再度コマンドまたはスクリプトを実行します。
参考ページ: 「about_Execution_Policies」
http://go.microsoft.com/fwlink/?LinkID=135170 - Windows 7をご利用の場合:
別途「Windows PowerShell」が必要な場合があります。下記ページをご参照の上、 「Windows PowerShell」のインストール作業実施をお願い致します。
参考ページ: Windows PowerShell のインストール
https://docs.microsoft.com/ja-jp/powershell/scripting/setup/installing-windows-powershell
またWindows PowerShellのインストールにはご利用のWindows端末に「Windows Management Framework」がインストールされている必要があります。
下記ページも合わせてご参照の上、「 Windows Management Framework」のインストール作業実施をお願い致します。
参考ページ:Windows Management Framework
https://docs.microsoft.com/ja-jp/powershell/wmf/readme