本記事で提供するプログラムは、日本マイクロソフト社から提供されている証明書更新コマンドを基に、お客様ご自身による証明書の更新作業を簡素化するために弊社が作成したものです。Windows 11 Pro 64ビット バージョン23H2 OSビルド 22631.5624 で動作検証を実施いたしましたが、本プログラムによる証明書更新の確実性や、全てのお客様環境における互換性を保証するものではありませんので、予めご了承ください
本記事はOneLoginおよびMicrosoft 365をご利用のお客様で、Microsoft 365とのSAML認証(WS-Federation認証)連携を行っている場合にご活用いただける参考資料です。実際に操作に必要なコマンド、プログラム操作に関してのみご案内しています。
目次
ステップ1:新しい証明書をMicrosoft 365 次期署名用証明書に登録
ステップ2:Microsoft 365コネクタのSSO署名用証明書を変更
ステップ3:OneLoginからMicrosoft 365へのSSOを動作確認
ステップ4:新しい証明書をMicrosoft 365の署名用証明書に登録
前提条件
- OneLoginのライセンスが Starter, Enterprise, Unlimited または SSO, Advanced, Professional(新料金体系)のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- Microsoft 365 のグローバル管理者権限を持つアカウントを所有していること
- SAML2.0 シングルサインオン連携に使用する署名用電子証明書を更新する を参照し、新しい署名用証明書の作成が完了していること
- Windows PowerShellのバージョンが5.1以上であること
- .NET フレームワークのバージョンが4.7.2以上であること
- PowerShellGet モジュールのバージョンが最新であること
- Windows PowerShellにて署名済みスクリプトの実行が許可されていること*
*PowerShellにて署名済みスクリプトの実行が許可されているか不明な場合は、Windowsのローカル管理者権限を持つアカウントで下記操作をご実施ください。
- Windows PowerShellを管理者権限で開き、
Set-ExecutionPolicy RemoteSignedを実行します
-
Yと入力し、署名済みスクリプトの実行を許可します
-
Get-ExecutionPolicyを実行し、署名済みスクリプトの実行が許可されていることを確認します。「RemoteSigned」と表示されましたら正常に許可されております
作業の目的
これから行う作業により、OneLoginが発行するSAML署名用電子証明書をMicrosoft 365へ登録します。証明書更新は現在の証明書有効期限が切れる場合の更新、または証明書に何らかの不備が発生した場合にご利用ください。
弊社では証明書更新用PowerShellプログラムを提供し、このプログラムの利用を前提に作業ステップをご説明いたします。大きく分けて3つのステップで作業を進めていきます。現在利用中の署名用証明書の有効期限到来までに必ず実施する必要がある作業は下記 ステップ1、ステップ2 および ステップ3となります。
ステップ1:新しい証明書をMicrosoft 365の次期署名用証明書(NextSigningCertificate)に登録
ステップ2:OneLogin Microsoft 365コネクタのSSO署名用証明書 を変更
ステップ3:OneLogin から Microsoft 365へのSSOを動作確認
ステップ4:新しい証明書をMicrosoft 365の署名用証明書(SigningCertificate)に登録
事前準備:Microsoft Graphのインストール
既にWindows PowerShellにMicrosoft Graphモジュールがインストールされている場合は、ステップ1 までお進みください。
- Windows PowerShellを 管理者として実行 します
-
Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Forceを実行し、モジュールのインストールを開始します
- インストールが始まると、下記画像のように青いバナーが表示されます。インストールが完了するまで他の操作を行わないようお願いいたします
- インストール完了後、
Get-InstalledModule Microsoft.Graphを実行し、Microsoft Graphの最新版がインストールされていることを確認します
ステップ1:新しい証明書をMicrosoft 365 次期署名用証明書に登録
-
update_MS365_SigningCertificate.zip を開き、プログラムをダウンロードします
- ダウンロードしたプログラムを解凍します
- Update_MS365_NextSigningCert のバッチファイルをダブルクリックしたのち、[すべて展開(X)]を選択します
- [展開(E)]を選択します
-
update_MS365_NextSigningCert.bat をダブルクリックして、次期署名用証明書の更新作業をスタートします
- もし下記のような画面が表示されたら、詳細情報 をクリックします
- [実行]をクリックします
*もし[実行]がない場合は、update_MS365_NextSigningCert.bat を管理者として実行するか、企業のMicrosoft Defenderが設定されていないスタンドアロンのWindows端末にてお試しください。
- プログラムが起動するため、Enter キーを入力します
- Microsoft 365のログイン画面が表示されるため、グローバル管理者アカウントでログインします
*ログイン画面がWindows PowerShellの背面に表示されることがございます。
- ログインに成功したのち、ドメインの情報を取得するためのアカウント選択が求められます。手順10でログインしたグローバル管理者を選択します
- お使いのMicrosoft 365においてWS-Federation認証が設定済みのドメインが表示されます。証明書の更新を行いたいドメインを入力します(例: demo.pentio-dev.com)
- 現在ドメインに設定されている証明書の情報が確認できます。Enter キーを入力し、OneLoginから新しいSSO署名用証明書をダウンロードします
*Microsoft Graphを使用した証明書の更新が初めての場合は、NextSigningCertificateは空欄になっております。
- ブラウザでOneLoginのログイン画面が開くため、お使いのOneLoginのサブドメインを入力し、[Continue]をクリックします
- ログインを続行します
- OneLogin内の証明書一覧が表示されるため、新しくOneLoginに登録した証明書を選択します
- 形式を X.509 DER に変更し、[Download]をクリックします
*X.509 PEM ファイルの証明書では、証明書のアップロード時にエラーが発生いたします。必ずX.509 DERでのダウンロードをお願いいたします。
*証明書ファイルのダウンロード時に警告が表示される可能性がございますが、問題ございませんので[保存]をクリックしてください。
- プログラムの画面に戻り、
Yesと入力します
- ファイルの選択ダイアログから、ダウンロードしたOneLoginのX.509DER証明書を選択します
*ダイアログがWindows PowerShellの背面に表示されることがございます。
- OneLoginの証明書画面から SHA fingerprint を[SHA1]に変更し、Fingerprintをクリップボードへコピーします
- プログラムに戻り、OneLoginからコピーしたSHA1のFingerprintを入力します
- Fingerprintの検証に成功すると、証明書の登録が完了します。NextSigningCertificateに十分な有効期限をもつ証明書が登録されていることをご確認ください
以上で、次期署名用証明書の登録は完了です。
ステップ2:Microsoft 365コネクタのSSO署名用証明書を変更
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
- お使いの Microsoft 365 コネクタを選択します
- SSOタブ > Manual Configuration タブ を選択します
- X.509 Certificate > Change をクリックします
- ステップ1 でMicrosoft 365に登録した証明書を選択し、[Continue]を選択します
- [Save]をクリックします
以上で、OneLoginのMicrosoft 365コネクタの証明書は更新完了です。本ステップまで完了すると、新しい証明書を使用してOneLoginからMicrosoft 365へのSSOが可能となります。
ステップ3:OneLoginからMicrosoft 365へのSSOを動作確認
ブラウザからのログイン
- シークレットウィンドウやプライベートブラウザなど、OneLoginやMicrosoft 365へのログインセッションがないブラウザから、Microsoft 365のログイン画面を開きます
Microsoft 365のログイン画面:https://login.microsoftonline.com/
- 証明書の更新を行なったドメインを持つユーザーでログインを開始します
- OneLoginのログイン画面にリダイレクトされるため、ログインを行います
- 対象のユーザーでログインできたことを確認します
リッチクライアントアプリからのログイン
- WordなどのMicrosoft リッチクライアントアプリを開きます
- すでにログインしているセッションがある場合は、ユーザーアイコン > [サインアウト]を選択します
- [アカウントにサインインまたはアカウントを作成]をクリックします
- サインイン画面にログインするユーザーのメールアドレスを入力して[次へ]をクリックします
- OneLoginのログイン画面にリダイレクトするため、ログインします
- Microsoft 365アプリへのログイン方法をどちらか選択します
はい、すべてのアプリ:お使いのMicrosoft 365アプリケーションすべてにログインします
いいえ、このアプリのみです:現在ログインを試行しているアプリのみにログインします
- ユーザーアイコンをクリックし、対象のユーザーでログインできていることを確認します
ステップ4:新しい証明書をMicrosoft 365 署名用証明書に登録
- ステップ1でダウンロード・展開した update_MS365_SigningCert.bat をダブルクリックして、署名用証明書の更新作業をスタートします
- プログラムが起動するため、Enter キーを入力します
- Microsoft Graphへ自動的にログインします。通常、ステップ1ですでにMicrosoft 365のグローバル管理者にログインしているため、再度ログイン画面が表示されることはございません
- ステップ1で設定したドメインと同様のドメインを入力します
- SigningCertificateに既存の証明書、NextSigningCertificateに新しい証明書が設定されていることを確認し、
Yesと入力します
-
ステップ1 で選択した証明書と同様の証明書を選択します
- OneLoginの証明書画面から SHA fingerprint を[SHA1]に変更し、Fingerprint をクリップボードにコピーします
- プログラムに戻り、OneLoginからコピーしたSHA1のFingerprintを入力します
- Fingerprintの検証に成功すると、証明書の登録が完了します。SigningCertificateとNextSigningCertificateに十分な有効期限をもつ証明書が登録されていることをご確認ください
以上で、Microsoft 365のSSO署名用証明書の更新は完了です。
トラブルシュート
証明書を間違えてMicrosoft 365に登録した場合
SSO署名用証明書を間違えて登録した場合やOneLogin上での証明書変更を未実施の場合など、不適切な状態の場合はサインイン時に下記のようなエラー画面が表示されます。
Unable to verify token signature. The signing key identifier does not match any valid registered keys.
OneLogin の Office 365 V2コネクタ > SSO タブ にて現在割り当てられている証明書を確認します。確認した証明書を使用して、本記事にそってMicrosoft 365 署名用証明書の再設定をお願いいたします。
証明書の有効期限が切れた場合
SSO署名用証明書の有効期限が切れた場合、SSO時に以下のようなエラーが発生します。SAML2.0 シングルサインオン連携に使用する署名用電子証明書を更新する を参照し、OneLoginにて新しい署名用証明書を作成していただいたのち、本記事にそってMicrosoft 365 署名用証明書の再設定をお願いいたします。