今回の記事ではAzureADのアカウントを使ってHCL Domino WEBアプリケーションへログインが出来る ようになるAzureADとHCL Domino SAMLによる統合ログインの設定方法を解説します。
前提: 今回検証を行った環境は以下の通りです。
Domino 10.0.1FP3 DominoサーバーへSSL証明書インストール済み Windowsサーバー
では早速、設定方法を説明していきます。
なおこの設定はHCL Domino V10.0.1 最新のFP以降 であれば動作可能であるようです。
AzureADの設定
https://portal.azure.com/ へログインします。“Azure Active Directory”を選択します。
左メニューから”Azure AD Connect”を選択し、”ユーザーサインイン”の箇所で「代替ログインIDとして電子メールを送信する 」を有効 にします。
チェックを入れて「保存」ボタンをクリックします。
Azure Active Directory ページからエンタープライズアプリケーションの作成
左メニューから”エンタープライズアプリケーション”を選択 上部のメニューから「新しいアプリケーション」をクリック
遷移後のメニューから「独自のアプリケーションの作成」をクリック
任意のアプリの名前を入力。”ギャラリーに見つからないその他のアプリケーションを統合します(ギャラリー以外)”を選択して作成ボタンをクリック。
作成後の遷移画面で、左メニューから”シングル サインオン”を選択。 ”シングルサインオン方式の選択”からSAML を選択。
“基本的なSAML構成”のセクションから「編集」をクリック
“識別子 (エンティティ ID) “と”応答 URL (Assertion Consumer Service URL) “にそれぞれHTTPSプロトコルから始まるDominoサーバーFQDNを入力します。 例) 識別子 (エンティティ ID) : 「https://mydominoserver.com」応答 URL (Assertion Consumer Service URL) : 「https://mydominoserver.com/names.nsf?SAMLLogin」 他は省略可能のため空欄で保存します。
次に”属性とクレーム “セクションで「編集」をクリックします。 ”必要な要求”の”一意のユーザー識別子 (名前 ID)”行をクリックします。 ソース属性を「user.mail」に変更して保存をクリックします。
保存後、値が「user.mail [nameid-format:emailAddress]]」となっていることを確認します。
作成したアプリケーションの”シングルサインオン”画面に戻り、”SAML 署名証明書 ”セクションから”フェデレーション メタデータ XML ”をダウンロードしておきます。
アプリケーションの左メニューから”プロパティ”を選択。 必要に応じて”割り当てが必要ですか? ”、”ユーザーに表示しますか? ”をいいえに変更します。 ”割り当てが必要ですか?”で[はい]を選択すると、ユーザーが認証できるようにAzure内でアクセス制御を行う必要があります。 ”ユーザーに表示しますか?”で[はい]を選択すると、Microsoft MyAppポータルにアプリケーションが表示されるようになります。
お疲れ様でした。 以上でAzureAD側の設定は完了です。 次はDominoサーバー側の設定をしていきましょう。
IdP Catalog アプリケーションの作成および設定
DominoサーバーでIdP Catalog アプリケーションを新規作成します。 新規アプリケーションダイアログで”詳細テンプレートの表示”チェックボックスをチェックしてIdP Catalogテンプレートから「idpcat.nsf 」ファイルを作成します。
※IdP Catalogアプリケーションは必ずファイル名を「idpcat.nsf」とし、Dataフォルダ直下に配置してください。
IdP Catalogから「Add IdP Config」ボタンをクリックし設定文書を開きます。 Basicsタブで「Import XML file」ボタンをクリックし、AzureAD画面でダウンロードして置いた「フェデレーション メタデータ XML 」を選択した後、開くボタンをクリックします。 フィールドが自動で入力されたことを確認します。 ※下のスクリーンショット画像では”Service provider ID”、”IdP name”に値が入っていますが、インポート直後には入っていませんのでご注意ください。
“Service provider ID”にhttps://から始まるDominoサーバーのFQDNを入力します。 例)「https://mydominoserver.com」 “IdP name”に自分が分かりやすい任意の値を入力します。 一旦、”State”を[Enabled]から[Disabled]に変更して、[Save & Close]ボタンを押して保存します。 再度先ほどのIdP Configuration文書を開き、”Certificate Management”タブへ行きます。 [Create SP Certificate]ボタンをクリックします。 ”Company name”を入力するダイアログがひらきますので任意の名前を入力して[OK]ボタンをクリックします。 “Certificate Management”タブ内のフィールドが自動で入力され、Exported certificate欄に”ServiceProvider.xml”が作成されたことを確認します。 再度、[Save & Close]ボタンを押して保存します。
以上でIdP Catalogの設定は完了です。 最後に、DominoサーバーのSite DocumentでSAML認証をするように設定を変更します。
Domino インターネットサイト文書の設定
インターネットサイト文書を作成していないサーバーであればサーバー文書のInternet Protocols ⇒ Domino Web Engine で設定することになりますが、ここではインターネットサイト文書が設定されている環境として進めます。
インターネットサイト文書を開き、”Domino Web Engine”タブに行きます。 Session Authenticationで「SAML 」を選択します。 ※WEB SSO Configurationは既に作成してあるLTPATokenがある場合はそれを選択したままでOKです。 ※Force login on TLSはデフォルトの[No]、 SAML single server session expirationはデフォルトの[120]分から変更したい場合は変更、 Web overriding session authentication, generate session cookieはデフォルトの[Yes]としておきます。
文書を保存して閉じます。
HTTPタスク再起動して動作確認
ここまで設定が完了したらDomino HTTPタスクを再起動しますが、そのまでにIdP Configuration 文書のStateを[Enabled]に変更します。
IdP Catalogの作成したIdP Configuration文書を開き、”State”のフィールドを[Enabled]に変更します。 文書を保存して閉じます。 Domino Administratorから「tell http restart」を実行してHTTPタスクを再起動します。
ACL制御されたDomino WEBアプリケーションでテスト
ブラウザを使って、「https://mydominoserver.com/xxx/xxx.nsf」のようにDomino Webアプリケーションへアクセスします。
うまく動作する場合は、Microsoft Azure ADのログイン画面にリダイレクトされ、ログイン後にDomino Webアプリケーションに正しくログイン出来ることが確認できます。
Dominoサーバーnames.nsfに同一のEmailを持つユーザー文書が存在する場合は、AzureADログイン後Dominoアプリケーションでも正しくDominoユーザーでACLが機能していることが確認できます。
参考にした資料・ブログ
■ HCL Customer Support Article – How to configure SAML authentication for Domino HTTP using Microsoft Azure as an Identity Provider https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0098580
■ Kris De Bisschop – HCL Domino SSO with AzureAD https://debisschopk.wordpress.com/2020/10/19/hcl-domino-sso-with-azuread/
■ HCL Domino SAMLとOktaでの統合ログインhttps://support.hcltechsw.com/sys_attachment.do?sys_id=2a1c5afb1bb38954f37655352a4bcbac
まとめ
いかがでしたでしょうか? Microsoft Teamsを始め、多くの会社がMS365を利用している現在、DominoサーバーをAzureADで統合ログイン(シングルサインオン)することのメリットは絶大だと思います。
AzureADによる統合ログイン(シングルサインオン)をすることでアプリケーション開発プラットフォームとしてDominoサーバーがますます利活用されるようになるといいですね。