ノーツコンソーシアム「クラウド研究会」の第4回が開催されましたので、簡単ですがご報告いたします。
第4回のテーマはシングルサインオン(以下 "SSO")です。
従来の SSO は Cookie を利用して情報を伝達する方法をとっていましたが、同じドメイン内でないと伝達できないといった問題があります。
今回使用するクラウド Microsoft Azure(以下 "Azure") は Domino とはドメインが異なりますので Cookie が使えません。
この問題を解決するのが SAML (Security Assertion Markup Language)です。
Domino 9.0.1 と Azure のどちらも SAML に対応しています。
通常、Webブラウザを使い Domino サーバーへアクセスするユーザーの認証に Domino ディレクトリを使用するところを、今回は Microsoft Azure Active Directory(以下 "Azure AD")で認証するよう設定します。
※現時点の Domino は SAML には対応していますが、サポート対象は ADFS と TFIM のみであり、 Azure AD は正式サポート対象外です。本ブログは今回試験的に行った活動をご報告するものであり、Azure AD での動作を保証するものではありません。
ハンズオンでは Domino と Azure とで設定方法を確認し、テストを行いました。

想定しているユーザー利用のパターンのは次の2つです。
- Microsoft の Web サイトへログインした状態から、(Azure にエンタープライズアプリケーションとして登録した)iNotes を起動する。この場合、Domino の認証画面を表示せずに iNotes の画面を表示する
- Webブラウザを起動して iNotes の URL へアクセスする。この場合、Domino の認証画面ではなく Azure の認証情報の入力画面を表示してログインし、iNotes の画面を表示する
ハンズオンで使用した Domino 環境は事前に Domino と Azure と DNS 等で必要な設定を済ませてあり、設定時に取得したと思われるスクリーンショット等を説明付きでまとめた資料を用意してくださいました(改めて日本IBM 臼井様に感謝します)。
まずは検証環境の Domino 側の設定について、IdP カタログの作成や設定方法などを確認しました。

続いて Azure です。まずはアカウントを作成するところから始め、Azure のダッシュボードから
- リソース(Azure Active Directory)の作成
- ユーザーの追加
- アプリケーション(iNotes)の追加、SSOの構成、ユーザーの割り当て
などを実際に操作しながら確認しました。

なお、検証環境に使用するドメインやユーザー等は既に設定済みですので、ハンズオンでは参加者それぞれが独自のリソースやユーザーを追加しました。
そして想定したパターンのうち "1" は正しく機能しました。
今回は "2" がうまく機能せず、残念ながら時間切れで次回以降に持ち越しとなりました。
今回はアプリケーション開発ではなくインフラ側からアプローチするという前回までとは異なる内容の研究会でしたが、普段アプリケーション開発を行っていて Domino や Azure の設定に触れる機会の少ない私のような参加者には学ぶところの多いハンズオンでした。
SAML という比較的新しい認証方式について触れたことは今後のアプリケーション開発にも活きるのではないかと感じましたし、Azure が無料枠内でいろいろ試すことができそうなこと(今回の内容ではありませんが汗)なども知ることができてよかったと思います。
また、今回使用した Domino 環境にはもともと http でアクセスできる設定でしたが、今回 SAML を設定するにあたり https でアクセスする必要があり、かつこれまでどおりのアクセスもできるようにしたいことから 1つの Domino に複数のホスト名を持つ設定とするため、インターネットサイト文書を作成したとのこと。こういった柔軟な設定ができるところも Domino の魅力ではないかと感じました。