Spring Security + Kerberos認証+SPNEGOでSSO(3)<ADクライアント側の設定>

※前回の更新から早速間があいてしまった上に記述が汚くて申し訳ないです。随時見直し、整理していくつもりです。ご容赦ください。

ActiveDirectoryの検証環境を作る際、地味に苦労したのがActiveDirectoryで認証するクライアント用の各種設定。単にActiveDirectoryにPCを参加させるだけなら簡単なのですが、AWS上に環境を作ってリモートデスクトップ接続もできるようにしようとすると、意外と苦労します。

注:(2021/11/28)セキュリティグループ設定、ADクライアント用のADユーザ追加について、前回の記事に更新があります。ご了承ください。

手順

  • AWSWindows Server 2019のインスタンスを作成(以後、クライアント)
    • ※Windows10のインスタンスが見当たらなかったので代用。スペックは求めていなかったのでt2.small
  • 作成したクライアントにリモートデスクトップ接続します。この時点のログインユーザは「Administrator」です。
  • AWS上で構築した場合、時刻や言語設定が米国仕様になっているので日本に合わせておきましょう。Windowsの検索欄から「言語」と入力すると設定画面を開けます。
  • コンピュータの管理>ローカルユーザーとグループ>ユーザ>(右クリック)>新しいユーザ
  • ADサーバ側に登録しているユーザと被らない名前(AdministratorやGuest以外)のユーザを作成(これをやっておかないとクライアントをAD参加させた後、何もできなくなることがある)
    • 権限は管理者(Administrator)にしておく
  • インターネットオプションでDNS設定
    • コントロールパネル>ネットワークとインターネット>ネットワークと共有センター
    • 「アクティブなネットワークの表示」の「接続」欄に表示されているリンクをクリック
    • f:id:koyak:20211128080803p:plain

      ネットワークの設定
    • プロパティ>Internet Protocol Version 4(TCP/IPv4)>プロパティ
    • 「優先DNSサーバ」「代替DNSサーバ」にADサーバのプライベートIPアドレスを設定します。自分の場合はDNSサーバはADサーバ内で稼働する一台しか用意しなかったので、「優先DNSサーバ」のみ設定していました
    • f:id:koyak:20211128081131p:plain

      DNS設定
  • 最初に作ったユーザーでログイン
  • コントロールパネル>システムとセキュリティ>リモートアクセスの許可
  • 「リモート」タブを開き、「このコンピューターへのリモート接続を許可する」
    • ※この設定をしておくことで、後述のActiveDirectoryに参加させた後、「リモートデスクトップ接続できなくなった!」という時に色々調査できるようになります
  • 「コンピュータ名」タブを開く
  • "コンピュータ名を変更したりドメインやワークグループを変更したりするには[変更]をクリックしてください。"と書かれた欄に表示されている「変更」ボタンをクリック
  • 所属するグループ>ドメイン欄に、ADサーバで設定したドメイン名を入力
  • OKボタンを押下
  • 管理者ユーザ名、パスワード入力を求められるので入力
  • "kk.example.com(ADサーバで設定したドメイン名)にようこそ"とダイアログが表示されるのでOKボタンを押下
  • "再起動する必要があります"と表示されるのでこれもOK
    • 警告が出ることがありますが、その場合は、ADサーバ側の設定(セキュリティグループなど)
  • PCを再起動
  • リモートデスクトップ接続し直す場合、ユーザ名にドメイン名を含めるようにする
  • f:id:koyak:20211128084210p:plain

    リモートデスクトップ接続
  • ADユーザのパスワード入力を求められるので入力
  • 正常に設定できていれば余程遅いネットワークを使っていない限りは1秒以内くらいで画面が切り替わってログインできるはずです。10秒以上待っても何も反応がない場合はAD参加、またはADユーザによるリモートデスクトップ接続設定が正常に行われていない可能性があります
    • ADクライアント側の設定を見直す場合は、作成したユーザでログイン(ユーザ名にドメイン名は含めず".\(ユーザ名)"という形で入力)し、各種設定をご確認ください
    • または、ADユーザにそもそもリモートデスクトップ接続が許可されていない可能性があるので、ADサーバ側のユーザ設定も見直してみてください

Windows認証設定

最後に、ブラウザがWindows認証を使うように設定する必要があります。

コチラに書かれている手順で設定を行えば、ADクライアント側のSSO準備は完了です。Edge向けに書かれていますが、Chromeなどでも同じ手順でOKです。