はじめに
OpenAMのWindowsデスクトップSSO認証モジュールを使ってみる記事です。
ゴールは"WindowsへのログインとOpenAMへのログインをシングルサインオンにする"です。Windowsにログインした後、ブラウザでOpenAMにアクセスしたときに(ログイン画面が表示されずに)OpenAMのログイン後の画面が表示されれば目的達成です。
※ 自分の環境内でのみ動作確認をした記事なので、必要のない手順や間違いがある可能性アリです。ご指摘いただければ修正したいと思います、、、。
実行環境
- OSSTech版OpenAM13
- Windows Server 2016
- Windows 10
サーバー | IPアドレス | FQDN |
---|---|---|
OpenAM | 192.168.122.10 | oam.example.co.jp |
Windows Server | 192.168.122.11 | WIN-3B7CBHJCHCO.example.co.jp |
Windows | 192.168.122.12 | DESKTOP-NMVJB78.example.co.jp |
それぞれのサーバーですべきこと
- Windows Server
- Active Directoryのインストールと設定
- Active Directoryのユーザーの作成
- 名前解決の設定
- keytabファイルの作成
- OpenAM
- データストアにActive Directoryを追加
- 名前解決の設定
- WindowsデスクトップSSO認証モジュールの設定
- Windows
- DNSの設定
- ドメインの設定
- Internet Explorerの設定
- 名前解決の設定
- 動作確認
設定方法
Windows Server
Active Directoryのインストールと設定
-
「役割と機能の追加ウィザード」で以下のように設定します
3.1 [開始する前に]:[次へ]をクリックします
3.2 [インストールの種類]:「役割ベースまたは機能ベースのインストール」を選択し、[次へ]をクリックします
3.3 [サーバの選択]:「サーバープールからサーバーを選択」を選択し、[サーバープール]からWindows Serverのサーバーを選択して[次へ]をクリックします
3.4 [サーバーの役割]:「Active Directoryドメインサービス」にチェックを入れ、[次へ]をクリックします
3.5 [機能の追加]をクリックします
3.6 [機能] / [AD DS]:[次へ]をクリックします
3.7 [確認]:「必要に応じて対象サーバーを自動的に再起動する」にチェックを入れ、[インストール]をクリックします
3.8 [結果]:[閉じる]をクリックします
-
「役割と機能の追加ウィザード」を閉じたらサーバーマネージャーの通知をクリックし、「このサーバーをドメインコントローラーに昇格する」をクリックします
-
「Active Directoryドメインサービス構成ウィザード」では以下のように設定します
5.1 [配置構成]:「新しいフォレストを追加する」を選択し、「ルートドメイン名」にActive Directoryのドメインを入力し、[次へ]をクリックします
5.2 [ドメインコントローラーオプション]:「パスワード」と「パスワードの確認入力」にパスワードを入力します
5.3 [DNSオプション]:[次へ]をクリックします
5.4 [追加オプション]:「NetBIOSドメイン名」が自動で入力されますが、変更したい場合は変更し、[次へ]をクリックします
5.5 [パス] / [オプションの確認]:[次へ]をクリックします
5.6 [前提条件のチェック]:[インストール]をクリックし、その後の画面で[閉じる]をクリックします
-
PCが自動で再起動されます
ユーザーの作成
-
一般ユーザーを作成します
3.1 それぞれユーザー情報を入力し、[次へ]をクリックします
3.2 パスワードを入力し、「パスワードを無期限にする」にチェックを入れ(任意)、[次へ]をクリックします
3.3 作成するユーザー情報を確認し、間違いがなければ[完了]をクリックします
-
作成したユーザーが
<ドメイン>/Users
フォルダ以下に作成されていなかった場合は移動します(確認画面で「作成先:<ドメイン>/Users」になっていなかった場合は移動する必要があります)
名前解決の設定
- エクスプローラーを開き、
C:/Windows/System32/drivers/etc
ディレクトリ以下にあるhosts
ファイルを編集します
-
<OpenAMサーバーのIPアドレス> <OpenAMサーバーのFQDN>
を追記します
- 上書き保存します
keytabファイルの作成
C:\Users\Administrator> ktpass -out <出力するkeytabファイル名> -princ HTTP/@<大文字のドメイン> -mapuser -pass <パスワード> -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL
```
今回は以下のように実行します
```
C:\Users\Administrator> ktpass -out openam.keytab -princ HTTP/oam.example.co.jp@EXAMPLE.CO.JP -mapuser openam -pass 123Password -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL
```
3. コマンドを実行したディレクトリ以下にkeytabファイルが作成されたことを確認します
```
C:\Users\Administrator> dir
...(省略)...
2019/12/13 23:10 77 openam.keytab
...(省略)...
```
4. keytabファイルをOpenAMサーバーにコピーしておきます
OpenAM
OpenAMのデータストアにActive Directoryを追加する
-
OpenAMサーバーに名前解決の設定を行います
/etc/hosts
ファイルに<Windows Server IPアドレス> <Windows Server FQDN>
を追記します
vim /etc/hosts
```
-
OpenAMサーバーで以下のコマンドを実行し、パーミッションと所有者を変更します
mkdir private
mv openam.keytab private
chown -R root:tomcat private
chmod 750 private
chmod 640 private/openam.keytab
```
※ keytabファイルを入れるディレクトリを`private`、keytabファイル名を`openam.keytab`とした場合です
-
ブラウザでOpenAM管理コンソールにアクセスし、新規データストアからActive Directoryを選択します
-
以下のように設定します
※ 自分の環境に合わせて読み替えてください
※ デフォルト値は省略します設定項目 設定内容 LDAPサーバー WIN-3B7CBHJCHCO.example.co.jp:389 LDAPバインドDN CN=Administrator,CN=Users,dc=example,dc=co,dc=jp LDAPバインドパスワード 123Password LDAP組織DN dc=example,dc=co,dc=jp LDAPユーザー検索属性 sAMAccountName LDAPピープルコンテナネーミング属性 (削除) LDAPピープルコンテナ値 (削除) -
設定を保存します
-
「対象」にActive Directoryのユーザーが追加されていることを確認します
WindowsデスクトップSSO認証モジュールの設定
-
OpenAM管理コンソールを開き、WindowsデスクトップSSO認証モジュールを追加します
-
今回は以下のように設定します
※ デフォルト値は除きます設定項目 設定内容 サービス主体 HTTP/oam.example.co.jp@EXAMPLE.CO.JP Template JSP for NTLM (空欄) Keytabファイル名 /opt/private/openam.keytab
Kerberosレルム EXAMPLE.CO.JP Kerberosサーバー名 WIN-3B7CBHJCHCO.example.co.jp -
設定を保存します
-
認証連鎖にWindowsデスクトップSSOを追加し、「必須」を選択します
-
組織認証設定に、作成した認証連鎖を選択し、保存します
Windows
Windows 10の起動
DNSの設定
- [スタート]から、「設定」を開きます
- 「ネットワークとインターネット」を開きます
- [イーサネット]タブの「アダプターのオプションを変更する」を開きます
- 「イーサネット」を選択し、[プロパティ]を開きます
- 「インターネットプロトコルバージョン4」を選択し、[プロパティ]を開きます
- 「次のDNSサーバーのアドレスを使う」を選択し、「優先DNSサーバー」にWindows ServerのIPアドレスを入力し、[OK]をクリックします
ドメインの設定
- [スタート]の検索枠に「ドメイン」と入力して「ドメインに参加」を探して開きます
- [コンピューター名]タブの「コンピューター名を変更したりドメインに参加したりするには[変更]をクリックしてください。」の隣の[変更]をクリックします
- 「所属するグループ」の「ドメイン」を選択し、Windows Serverのドメインを入力し、[OK]をクリックします
- Windows Serverの管理者のID「Administrator」とパスワードを入力し、[OK]をクリックします
- 以下の画面では[OK] / [今すぐ再起動する]をクリックし、PCを再起動させます
OpenAMをローカルイントラネットに追加
-
Internet Explorerを起動し、設定から「インターネットオプション」を開きます
-
「このWebサイトをゾーンに追加する」にOpenAMのURLを入力し、[追加]をクリックします
-
「統合Windows認証を使用する」の設定を変更した場合にはPCを再起動します
名前解決の設定
- [スタート]の「メモ帳」の上で右クリックし、「管理者として実行」を選択します
- 管理者でログインし、[はい]をクリックしてPCに変更を加えます
- メモ帳から
C:/Windows/System32/drivers/etc/hosts
ファイルを開き、先ほどと同様にOpenAMサーバーのIPアドレスとFQDNを追加します
動作確認
-
Internet Explorerで
http://oam.example.co.jp:8080/openam
にアクセスします
おわりに
以上でこの記事はおわりです。その他いろいろ解説などいれるべき、、、なのですが長すぎるので今回はやってみただけの記事にさせてください。。。