事前に、Microsoft 365のWS-Federation連携を始める前に をご参照ください。
本記事では、OneLogin から Microsoft 365(旧Office 365)へのWS-Federation(WS-Fed)シングルサインオン(SSO)の設定手順と、そのセットアップに必要なImmutableIDをWindows PowerShellを用いて手動で設定する方法をご案内します。また、Microsoft Entra ID(旧:Azure AD)のみのご利用を希望されるお客様も、SSO連携の設定はMicrosoft 365として設定を行う必要があるため、本記事をご参照ください。
目次
3. Windows PowerShellを用いたImmutableIDの設定
前提条件
- OneLoginのライセンスが Starter, Enterprise, Unlimited または SSO, Advanced, Professional(新料金体系)のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- Microsoft 365における グローバル管理者権限 をお持ちであること
- Microsoft 365に関して、WS-Federation連携したいドメイン以外の他のドメインにもグローバル管理者権限を持つアカウントが存在すること
- 下記OSの64bit版のWindows PowerShellを用意できること
- Windows 11/10
- Windows Server 2022 / 2019 / 2016 / 2012 R2
注意事項
- OneLoginの不具合など何らかの原因で、Microsoft 365にSSOできなくなった場合にMicrosoft 365を使用できなくなることを防ぐために、WS-Federation連携したいドメイン以外の他のドメインにもグローバル管理者アカウントを作成しておく必要があります(参考: 1. Microsoft 365側の設定 手順4)
- Microsoft Office 365, Microsoft 365, Microsoft Entra IDにシングルサインオンを行う方は「Office 365 V2」コネクタを使用する必要があります
- この記事で行うWS-Federation連携は、あらかじめOneLogin側とMicrosoft 365側の両方にユーザーが存在している必要があります
WS-Fed フェデレーションの設定
1. Microsoft 365側の設定
- Microsoft 365 管理センターにグローバル管理者でログインし、[すべて表示]をクリックします
- [設定]をクリックします
- [ドメイン]をクリックします
- WS-Federation連携をするドメイン(フェデレーションドメイン)が、以下の3点をクリアしていることを確認してください
①独自ドメインであること
②既定ドメインではないこと
③状態が「✅ 正常」であること
- ユーザー > アクティブなユーザー で、WS-Federation連携したいユーザーが存在すること、そしてそのユーザー名のドメインが、フェデレーションドメインであることを確認してください。フェデレーションドメインでなかった場合は、フェデレーションドメインに変更してください
- フェデレーションドメイン以外のグローバル管理者権限を持つユーザーを少なくとも1つ用意してください
例)admin@onelogin.onmicrosoft.com
Microsoft 365側の設定は以上です。
2. OneLogin側の設定(前半)
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
- [Add App]をクリックします
-
Office 365 V2 と検索し、該当コネクタを選択します
- [Save]をクリックします
- 古いMicrosoft系列のソフトウェア(2013以前のOutlookやWord)やAzure AD Joinをご利用の方は、Configuration > Enable WS-Trust にチェックを入れてください
-
Configuration タブに移動し、API Connection にMicrosoft 365のフェデレーションドメインを入力し、[Verify]をクリックします
-
Office 365 V2(Azure Graph) OAuth の[Authenticate]をクリックします
-
Office 365 V2 をクリックします
- OneLoginによるAPI利用を許可するため、Microsoft 365にグローバル管理者でログインします
- OneLoginによるAPI利用範囲が表示されるので、内容を確認して[承諾]をクリックします
- [Clear Token]に変化したことを確認します
-
Office 365 V2(Microsoft Graph) OAuth の[Authenticate]をクリックします
-
Office 365 V2 をクリックします
- OneLoginによるAPI利用範囲が表示されるので、内容を確認して[承諾]をクリックします
- [Clear Token]に変化したことを確認します
-
Parameters タブに移動し、ImmutableID フィールドを選択します
-
Value を Email に変更し、[Save]をクリックします
-
Access タブに移動し、割り当てたいユーザーが属するロールを選択後、[Save]をクリックします
- (オプション)上記作業によりロールが付与されたエンドユーザーのOneLoginポータル画面には Microsoft 365 アイコンが表示されます。まだログインできない状態で表示させたくない場合には、一旦下記のように Info タブ > Visible in portal のトグルをクリックして緑色から赤色に変更して再度[Save]して保存することをお勧めいたします
3. Windows PowerShellを用いたImmutableIDの設定
割り当てたロールに含まれるユーザーと、フェデレーションドメインに所属するMicrosoft 365側のユーザーが全員一致していることを再度確認してください。
-
Microsoft Graphモジュールのインストールと接続
- Windows PowerShellを管理者として実行します
-
Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Forceを実行し、Microsoft 365用のモジュールを読み込みます。インストールのスタートには、数分かかる場合がございますのでお待ちください
- インストールがスタートすると、下記のような表示となります
-
インストールが完了したのち、
Get-InstalledModule Microsoft.Graphを実行し、Microsoft Graphの最新版がインストールされていることを確認します
-
Connect-MgGraph -Scopes "Directory.Read.All", "Domain.ReadWrite.All", "Directory.AccessAsUser.All"を実行し、Microsoft 365に接続します
- Microsoft 365のグローバル管理者の資格情報を求められますので、グローバル管理者のIDとパスワードを入力し、ログインします
-
正常にMicrosoft Graphに接続ができましたら、下記のメッセージが表示されます
- Windows PowerShellを管理者として実行します
-
WS-Federation連携をするユーザー数が少ない場合
-
Immutable IDを設定するため、
Update-MgUser -UserID {UPN} -OnPremisesImmutableId {ImmutableID}を実行します例) yamauchi@demo.pentio-dev.comというメールアドレスを持つ人物に、yamauchi@demo.pentio-dev.comというImmutable IDを登録する場合:Update-MgUser -UserID yamauchi@demo.pentio-dev.com -OnPremisesImmutableId yamauchi@demo.pentio-dev.com -
Immutable IDが反映されていることを確認するため、
Get-MgUser -UserID {UPN} -property OnPremisesImmutableId | select OnPremisesImmutableIdを実行します
*{UPN}は原則メールアドレスと同一です。
例)Get-MgUser -UserID yamauchi@demo.pentio-dev.com -property OnPremisesImmutableId | select OnPremisesImmutableIdコマンドの実行後、Immutable ID の値が表示されることを確認します
OnPremisesImmutableId---------------------yamauchi@demo.pentio-dev.com
- ここまでで、
yamauchi@demo.pentio-dev.comというメールアドレスの人物のImmutable IDの登録は完了です。WS-Federation連携したいユーザーごとに、手順1から2までを繰り返します
-
-
WS-Federation連携をするユーザー数が多い場合(CSVファイルを使う)
ここでは、検証検太, 検証検二, 検証検三 の3ユーザーのImmutable IDをCSVファイルを用いて一括登録します
-
Microsoft 365側のWS-Federation連携したいユーザーの情報をまとめて取得するために、
$Datas = Get-MgUser -All | Where-Object {$_.UserPrincipalName.ToString() -Like "*{独自ドメイン}*"}を実行します*{独自ドメイン}には、フェデレーションドメインを入力してください。このコマンドは、Microsoft 365に登録されているユーザーの中で、ユーザー名にフェデレーションドメインを含むユーザーの情報を、まとめて
$Datasいう変数に入れるという意味です。
-
$Datas = $Datas | Select-Object UserPrincipalNameを実行し、ユーザーのUserPrincipalNameの値だけを取得します
-
$Datas | Export-Csv -path '{csvファイルを置きたいフォルダの絶対path}¥sample.csv'を実行し、UserPrincipalNameの値をCSVファイルに書き出します
*sample の部分は、任意のファイル名で構いません。
- CSVファイルからImmutable IDを一括登録しないユーザーのUPNを削除し、保存します
*同じドメインをもつ全てのユーザーのUPNがCSVファイルに書き出されます。
例)検証検太, 検証検二, 検証検三, 山内太郎の4ユーザーのUPNが書き出されるので、CSVファイルからImmutable IDを一括登録しない山内太郎のUPNは削除します
-
$Datas = Import-Csv -path '{csvファイルが置いてあるフォルダの絶対path}¥sample.csv'を実行し、CSVファイルを再度読み込みます
-
foreach($Data in $Datas) {Update-MgUser -UserID $Data.UserPrincipalName -OnPremisesImmutableId $Data.UserPrincipalName}を実行し、Immutable IDを登録します
-
foreach($Data in $Datas) {Get-MgUser -UserID $Data.UserPrincipalName -property OnPremisesImmutableId | select OnPremisesImmutableId}を実行し、Immutable IDが反映されていることを確認します
コマンドの実行後、設定した Immutable ID の値が以下のように表示されることを確認します。OnPremisesImmutableId---------------------kensho-kenji@demo.pentio-dev.comkensho-kenta@demo.pentio-dev.comkensho-kenzo@demo.pentio-dev.com
-
複数人のImmutable IDをまとめて登録する手順は以上です。
4. OneLogin側の設定(後半)
- SSO > Enable automatic SAML configuration: という赤いスイッチをクリックします
- [Got It. Continue]をクリックします
- 連携が完了したら[Next]をクリックします
- [Got it. Thanks.]をクリックします
- 10~20秒後、スイッチが緑色になったのを確認したら、右上の[Save]をクリックします
- (オプション)さきほど 2. OneLogin側の設定(前半) 手順21 でポータル画面上アイコンを非表示(Visible in portalを赤色に変更)した場合は、シングルサインオン設定が完了しましたので、ここで Visible in portal を緑色に戻して再度[Save]します
WS-Fed フェデレーションの設定は以上です。
WS-Fed SSOの動作確認
- OneLoginに対象ユーザーでログインし、設定した Office 365 V2 を選択します
- ユーザー認証が完了し、Microsoft 365にSSOされることを確認します
WS-Fed SSOの動作確認は以上です。
WS-Fed フェデレーションの設定後のユーザー追加
続いてWS-Federation連携後のドメインにユーザーを追加したい場合の手順をご紹介します。ここでは例として、松本太郎さんというユーザーを追加します。
前提条件として松本太郎さんがOneLogin上でmatsumoto@demo.pentio-dev.comのアカウントを所持しているものとします。まず、登録したいユーザーがOneLoginに追加され、Office 365 V2コネクタが割り当てられていることを確認してください。
- OneLogin Office 365 V2 コネクターのユーザー一覧
以下では、Microsoft 365のユーザー追加登録とImmutable IDの設定の手順をご紹介します。
- Windows PowerShellを管理者として実行します
-
Connect-MgGraph -Scopes "Directory.Read.All", "Domain.ReadWrite.All", "Directory.AccessAsUser.All", "User.ReadWrite.All"を実行し、Microsoft 365に接続します
-
$PasswordProfile = @{ Password = "{パスワード}"}を実行し、ユーザーを作成するために初期パスワードを設定します
*新規作成するユーザーは、WS-Federation認証によるSSOでログインするため、パスワードを認知する必要はありません。
-
New-MgUser -AccountEnabled -DisplayName "{表示名}" -MailNickname "{メールニックネーム}" -UserPrincipalName {UPN} -PasswordProfile $PasswordProfile -OnPremisesImmutableId {Oneloginに登録したメールアドレス}を実行し、ユーザーの追加登録とImmutable IDの設定を実行します例)松本太郎さんがOneLoginで matsumoto@demo.pentio-dev.comのアカウントを所持している場合:New-MgUser -AccountEnabled -DisplayName "松本 太郎" -MailNickname "matsumoto" -UserPrincipalName matsumoto@demo.pentio-dev.com -PasswordProfile $PasswordProfile -OnPremisesImmutableId matsumoto@demo.pentio-dev.com - DisplayName と UserPrincipalName に設定が反映されていることを確認します
-
Immutable IDが反映されていることを確認するため、
Get-MgUser -UserID {Oneloginに登録したメールアドレス} -property OnPremisesImmutableId | select OnPremisesImmutableIdを実行します例)新規作成した松本太郎さんのImmurtable IDを確認する場合: Get-MgUser -UserID matsumoto@demo.pentio-dev.com -property OnPremisesImmutableId | select OnPremisesImmutableId - Microsoft365 管理センターのユーザー一覧で、ユーザーが新規作成されていることを確認します
- OneLoginに追加したユーザーでログインし、設定した Office 365 V2 を選択します
- 正常にログインできたら、追加したユーザーのMicrosoft 365のWS-Federation連携は完了です
WS-Fed フェデレーションの解除
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
-
Office 365 V2 と検索し、設定したコネクタを選択します
- SSO > Enable automatic SAML configuration: を無効にします
- 確認画面が表示されるので、[Ok]をクリックします
- スイッチが赤色になったのを確認し、[Save]をクリックします
WS-Fed フェデレーションの解除は以上です。