2022年3月16日、弊社サービス「YubiOn Portal」にシングルサインオン(SSO)の機能が追加されました。YubiOn Portalにログインすることで各サービスを認証することなく利用できるようになります。今回は、それらサービスの中で設定が少し複雑なMicrosoft 365のSSO設定手順をご紹介したいと思います。
【前提条件】
■ Microsoft 365
「全体管理者」のアカウントを有している必要があります。
(今回は、無料体験版を使用しました)
また、Microsoft 365の仕様により、以下のようなドメインはフェデレーションドメイン(連携させるドメイン)に設定できません。
・初期ドメイン(xxx.onmicrosoft.com)
・プライマリドメイン(既定値に設定されているドメイン)
・既にフェデレーションドメインとして設定されているドメイン
ということで、xxx.onmicrosoft.com形式の初期ドメインを既定値として設定し、新たに作成したカスタムドメインをフェデレーションドメインとして構成してみました。
ちなみに私は、Dynamic DO!.jpというDDNSサービスを利用してカスタムドメインを作成しました。
■ YubiOn Portal
・Yubico OTP機能が付いたYubiKeyを持っていること。
・YubiOn Portalに登録し、操作者にYubiKeyを紐付けておくこと。
・YubiOn PortalでSSO機能を使用できる状態(SSO初期登録済み)であること。
SSO App設定画面に[SSO初期登録]ボタンが表示されていなければ登録済みです。
【事前準備】
1. Microsoft 365にドメインを追加します。
Microsoft 365のSSOの設定は、一般的なサービスのSSO設定と異なり、お使いのPC上のPowerShellを使って行います。
スタートメニューよりPowerShellを起動し、以下を実行します。
Install-Module MSOnline
NuGet プロバイダーやPSGallery からモジュールのインストールを求められた場合は、インストールします。
インストール後、Microsoft 365サブスクリプション用のAzure ADに接続します。
Connect-MsolService
ログインプロンプトが表示されるので、「全体管理者」の権限を持つMicrosoft 365 アカウント(@xxx.onmicrosoft.com)でログインを行えばOKです。
【手順1】
ImmutableIDを設定します。
Microsoft 365では、ユーザーを一意に識別するためにImmutableID属性が使用されます。
YubiOn PortalとMicrosoft 365でSSOを行うために、ユーザーごとにImmutableIDを設定する必要があります。
ImmutableIDはユーザーの作成方法によってすでに設定されている場合があるため、まず対象のユーザーにImmutableIDが設定されていないことを確認します。
PowerShellを起動し、以下を実行します。
Get-MsolUser -UserPrincipalName "(メールアドレス)" | select UserPrincipalName,ImmutableId
例えばこんな感じです。

上のようにImmutableIDが設定されていない場合は設定します。
尚、ImmutableIDは一度設定すると変更することはできないため、今後、変更の可能性のある情報(姓や職位など)を設定することは望ましくないらしいです。
Set-MsolUser -UserPrincipalName "(メールアドレス)" -ImmutableId (任意のImmutableID)
今回はお試しなので、ダミーのメールアドレスを設定しました。
実際に、会社で運用される場合は様々な事情でメールアドレスを変更する可能性もあると思いますので、ImmutableIDは慎重に決めた方が良さそうです。
再度、確認のコマンドを実行して、正しく設定されてることを確認しましょう。
【手順2】
YubiOn Portalをアイデンティティプロバイダ(IdP)として設定します。
今回は、ImmutableIDに(ダミーの)メールアドレスを設定しているので、それをMicrosoft 365に渡す方法として、メンバープロパティに登録する方法を紹介します。
例えば、社員ID(メンバーID)やYubiOn Portalに登録しているメールアドレスをImmutableIDに設定している場合は、手順2の作業は不要です。
手順3に進んでください。
YubiOn Portalに管理者でログインし、「SSO プロパティ設定」画面を開きます。

画面右上の[プロパティ登録]からプロパティ登録画面を開いて、
YubiOn PortalからMicrosoft 365にImmutableIDを渡すための情報を登録します。
プロパティキー:ms_immutable_id(例)
備考:Microsoft用ImmutableID(例)

続いて、SSOを行うユーザーにImmutableIDを設定するため、メンバー管理画面を開きます。

SSOを行うメンバーをクリックして詳細設定画面を開き、先程作成したプロパティキーを編集します。

SSOプロパティ値に手順1で設定したImmutableIDを登録します。

【手順3】
YubiOn Portal(IdP)設定の続きです。
SSO App設定画面を開きます。

[Appを選択して追加]からアプリケーション登録画面を開いて、「Microsoft 365」を選択します。
すると、App一覧に「Microsoft 365」が表示されますので、クリックして設定画面に入ります。

アプリケーション設定の「設定編集」をクリックします。

設定編集画面で以下の情報を設定します。
SPログインURL :https://login.microsoftonline.com/login.srf
ユーザーID値設定
設定方法:プロパティ
設定値:ms_immutable_id(手順2で登録したメンバープロパティキー)
デフォルトリレー値:(空白) ※「詳細設定」リンクをクリックすることで編集可

尚、ユーザーID値設定に関して、今回はImmutableIDにダミー用のメールアドレスを登録したので、プロパティ情報を使用しましたが、例えばメンバーIDとして社員IDやYubiOn Portalに登録しているメールアドレスなどを設定している場合は、
ユーザーID値設定
設定方法:メンバー情報
設定値:メンバーIDやメールアドレス
を設定すればOKです。
他にもいろいろな設定方法がありますので、お試しください。
最後に、SSOを行いたいメンバーを割り当てます。

SSOを行うメンバーを選択し、[登録]ボタンをクリックします。
YubiOn Portal(IdP)側の設定は以上です。
【手順4】
Microsoft 365 をサービスプロバイダ(SP)として設定します。
PowerShellを起動し、以下を実行します。
Set-MsolDomainAuthentication
-DomainName (ドメイン名)
-PassiveLogOnUri (IdPログインURL)
-IssuerUri (IdPエンティティID)
-SigningCertificate (証明書の内容)
-LogOffUri https://es.yubion.com/mypage/ssoAppLogin.html
-PreferredAuthenticationProtocol SAMLP
-Authentication Federated
-SupportsMfa $false
-FederationBrandName YubiOnPortal
※上記、見やすくするため改行を入れていますが、実際は各パラメータ(-XXX)の前は半角スペースで繋げます。
ドメイン名 | 上記手順(事前準備1)で作成したドメイン名 |
IdPログインURL | YubiOn PortalのSSO App設定 > Microsoft 365の設定画面を開き、 「IdPログインURL」をコピーします(①)。 |
IdPエンティティID | YubiOn PortalのSSO App設定 > Microsoft 365の設定画面を開き、 「IdPエンティティID」をコピーします(②)。 |
証明書の内容 | YubiOn PortalのSSO App設定 > Microsoft 365の設定画面を開き、 証明書をダウンロードします(③)。 証明書をテキストエディタで開き、内容をコピーします。 ・「BEGIN CERTIFICATE」と「END CERTIFICATE」は除外 ・改行は削って、一行の文字列にする ・末尾に「=」がある場合は除外(base64のパディング無し形式のため) 参考 ![]() |

以上で、設定は完了です。
【ログインしてみる】
■IdP-Initiated
YubiOn PortalからMicrosoft 365にSSOログインしてみます。
SSO Appログイン画面を開き、「Microsoft 365」をクリックします。

Microsoft 365にログインすることができました!

■SP-Initiated
では今度はMicrosoft 365側からSSOログインしてみます。
[サインイン]ボタンをクリックします。

YubiOn Portalのログイン画面へリダイレクトしますので、SSOアカウントでログインします。

こちらもMicrosoft 365にログインすることができました!

終わりに
今回は、Microsoft 365にSSOログインするためのYubiOn Portalの設定を主にご紹介しました。
Microsoft 365のSSO設定は結構複雑で、私自身も試行錯誤を繰り返しました。
今後、試される方に当ブログが少しでも参考になれば幸いです。
◆参考サイト