このページでは、OpenAMをIdPとしMicrosoft 365をSPとして、SAMLによるシングルサインオンを構成する方法を紹介します。
事前準備
IdPの構築
OpenAMはIdPとして構築が済んでいるものとします。
ドメイン設定の確認
Microsoft 365のログインに外部IdPを使用するには、フェデレーションドメインを構成する必要があります。フェデレーションドメインとして設定するためには、いくつか条件がありますので、条件を満たしているか事前に確認しておきます。
Micorosoft 365のユーザー情報やドメイン情報は、Azure ADで管理されているので、Azure ADに管理者アカウントでログインします。
画面左側のメニューの「カスタムドメイン名」をクリックします。
以下の3点を確認します
- 初期ドメイン(
onmicrosoft.com
)はフェデレーションドメインに設定できません。こちらを参考にカスタムドメインを作成してください。 - 既にフェデレーションドメインとして設定されているドメインは使用できません。使用するドメインの「フェデレーション」の欄にチェックがついていないことを確認してください。
- プライマリドメインはフェデレーションドメインに設定できません。使用するドメインの「プライマリ」の欄にチェックがついていないことを確認してください。
ユーザー情報の確認
OpenAM側とAzure AD側に、対応するユーザーが登録されている必要があります。
Microsoft 365にログインするためには、ユーザーの「ユーザープリンシパル名」と「ImmutableID」の情報が必要です。
OpenAMのユーザーデータストアに、これらの値を持ったユーザーを登録しておきます。
今回は「ユーザープリンシパル名」を「mail」属性、「ImmutableID」を「employeeNumber」属性として、ユーザーを登録したものとします。
ウィザードを使ったセットアップ
※以下の機能はOSSTech OpenAM 14.1.0-1以降でお使いいただけます
OSSTech OpenAMにはMicrosoft 365とのSAML連携を簡単に設定するためのセットアップウィザードが備わっています。
OpenAM側の設定
OpenAM管理コンソールから「(対象のレルム)」→「Microsoft 365の設定」→「Microsoft 365の設定」をクリックします。
「事前準備」の欄には「1. 事前準備」で確認した事項が書かれています
「トラストサークルとアイデンティティープロバイダの設定」から、Microsoft 365を追加するトラストサークル、連携するIdPを選択します。
「リモートSPの設定」の「メタデータが配置されているURL」には、デフォルトでMicrosoft 365のメタデータが掲載されているURLが入力されますので、基本的には変える必要はありません。
「連携するドメイン名」にフェデレーションドメインに設定するドメイン名を入力します。
「属性マッピング」の欄では、Microsoft 365に送信する属性の設定を行います。Azure AD上の「ユーザープリンシパル名」と一致する値を「IDPEmail」という属性名で送る必要があります。「IDPEmail=(データストアの属性)」となるように「新しい値」を入力し、「追加」をクリックしてください。
(例:IDPEmail=mail)「Disable NameID Persistence」の設定を有効にする必要があります。デフォルトでチェックが入りますので、変更するは必要はありません。
「NameID値マッピング」も同様に送信する値を設定します。Azure AD上の「ImmutableID」と一致する値を「urn:oasis:names:tc:SAML:2.0:nameid-format:persistent」のフォーマットで送信する必要があります。「属性マッピング」と同様に、対応するデータストアの属性を設定してください。
(例:urn:oasis:names:tc:SAML:2.0:nameid-format:persistent=employeeNumber)

全ての項目を入力したら、画面上部の「作成」をクリックします。
正常に設定が完了すると、以下のような画面が表示されます。「了解」をクリックして次に進みます。
Azure AD側の設定
Azure ADのフェデレーションドメインの設定を行うには、PowerShellからコマンドを入力する必要があります。PowerShellを管理者権限で起動してください。
各コマンドを順番に実行していきます。「コピー」をクリックしてコマンドをコピーし、PowerShellに直接貼り付けることで実行可能です。
2つの「Install-module …」コマンドは、設定に必要なモジュールをインストールするコマンドです。コマンド入力後にインストールの確認を求められるので、「Y」を入力して同意してください。
「Connect-MsolService」のコマンドを入力すると、ポップアップウィンドウが表示され、ログインを求められます。管理者アカウントでログインしてください。
最後のコマンドがフェデレーションドメインを設定するためのコマンドです。前の画面で入力した情報をもとに自動生成されます。同様にコピーしてPowerShellから実行してください。
以上で設定は完了です
実際にログインしてみる
Microsoft 365のホームページからログイン画面に移動します。
ユーザープリンシパル名を入力すると、OpenAMにリダイレクトされます。
OpenAMでのユーザー名・パスワードを入力しログインに成功すると、Microsoft 365のホーム画面にリダイレクトされます。
OpenAMの認証でMicrosoft 365にログインすることができました。