Spring Security Kerberos サンプル
リファレンスドキュメントのこのパートでは、サンプルプロジェクトを導入します。github.com/spring-projects/spring-security-kerberos (英語) からメインのディストリビューションをビルドすることで、サンプルを手動でコンパイルできます。
サンプルをそのまま実行すると、正しい構成が適用されるまで機能しません。特定のサンプルについては、以下のメモを参照してください。 |
Windows 環境用のセキュリティサーバーの Windows 認証サンプルサンプル
サーバー側認証子を使用したセキュリティサーバー側認証のサンプルサンプル
spnego とフォームによるチケット検証を使用したセキュリティサーバー Spnego とフォーム認証のサンプルサンプル
spnego とフォームによるチケット検証を使用したセキュリティサーバー Spnego およびフォーム認証 XML サンプルサンプル (XML 構成)
KerberosRestTemplate 用セキュリティクライアント KerberosRestTemplate サンプルサンプル
セキュリティサーバーの Windows 認証サンプル
このサンプルのゴール:
Windows 環境では、ユーザーは Windows へのログオン時に入力された Windows Active Directory 資格情報を使用してアプリケーションにログオンできます。ユーザー ID/ パスワードの資格情報を要求する必要はありません。
Windows 以外の環境では、Active Directory の資格情報を入力する画面がユーザーに表示されます。
server:
port: 8080
app:
ad-domain: EXAMPLE.ORG
ad-server: ldap://WIN-EKBO0EQ7TS7.example.org/
service-principal: HTTP/[email protected] (英語)
keytab-location: /tmp/tomcat.keytab
ldap-search-base: dc=example,dc=org
ldap-search-filter: "(| (userPrincipalName={0}) (sAMAccountName={0}))"
上では、このサンプルのデフォルト構成を確認できます。コマンドラインオプションやカスタム application.yml
ファイルを使用するなど、通常の Spring Boot テクニックを使用してこれらの設定をオーバーライドできます。
サーバーを実行します。
$ java -jar sec-server-win-auth-2.1.1.jar
Linux では、 |
Windows Kerberos 環境での作業方法の詳細については、Windows ドメインコントローラーのセットアップを参照してください。 |
ドメイン認証情報を使用して Windows 8.1
にログインし、サンプルにアクセスします
Windows 以外の VM からサンプルアプリケーションにアクセスし、ドメイン認証情報を手動で使用します。
セキュリティサーバー側認証のサンプル
このサンプルは、フォームログイン経由で渡された資格情報を使用して、サーバーが Kerberos 環境に対してユーザーを認証する方法を示します。
サーバーを実行します。
$ java -jar sec-server-client-auth-2.1.1.jar
server:
port: 8080
セキュリティサーバー Spnego とフォーム認証のサンプル
このサンプルでは、フォームベースの認証にフォールバックしながら、ブラウザーから Spnego ベースのネゴシエーションを受け入れるようにサーバーを構成する方法を示します。
user1
プリンシパル MIT Kerberos のセットアップを使用し、資格情報を使用して手動で Kerberos ログインを実行します。
$ kinit user1
Password for [email protected] (英語) :
$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected] (英語)
Valid starting Expires Service principal
10/03/15 17:18:45 11/03/15 03:18:45 krbtgt/[email protected] (英語)
renew until 11/03/15 17:18:40
またはキータブファイルを使用します。
$ kinit -kt user2.keytab user1
$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected] (英語)
Valid starting Expires Service principal
10/03/15 17:25:03 11/03/15 03:25:03 krbtgt/[email protected] (英語)
renew until 11/03/15 17:25:03
サーバーを実行します。
$ java -jar sec-server-spnego-form-auth-2.1.1.jar
これで、ブラウザーを開いて、既存のチケットを使用して Spnego 認証を実行できるようになります。
Spnego を使用するようにブラウザーを構成する手順の詳細については、Spnego ネゴシエーション用にブラウザーを構成するを参照してください。 |
server:
port: 8080
app:
service-principal: HTTP/[email protected] (英語)
keytab-location: /tmp/tomcat.keytab
セキュリティサーバー Spnego およびフォーム認証 XML サンプル
これはセキュリティサーバー Spnego とフォーム認証のサンプルと同じサンプルですが、JavaConfig の代わりに XML ベースの構成を使用しています。
サーバーを実行します。
$ java -jar sec-server-spnego-form-auth-xml-2.1.1.jar
セキュリティクライアント KerberosRestTemplate サンプル
これは、Spring RestTemplate を使用して Kerberos で保護されたリソースにアクセスするサンプルです。セキュリティサーバー Spnego とフォーム認証のサンプルと組み合わせてご使用いただけます。
デフォルトのアプリケーションは以下のように構成されています。
app:
user-principal: [email protected] (英語)
keytab-location: /tmp/user2.keytab
access-url: http://neo.example.org:8080/hello
user1
プリンシパル MIT Kerberos のセットアップを使用し、資格情報を使用して手動で Kerberos ログインを実行します。
$ java -jar sec-client-rest-template-2.1.1.jar --app.user-principal --app.keytab-location
上記では、 |
操作が成功すると、[email protected] (英語)
による以下の出力が表示されるはずです。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<title>Spring Security Kerberos Example</title>
</head>
<body>
<h1>Hello [email protected] (英語) !</h1>
</body>
</html>
または、キータブファイルを含む user2
を使用します。
$ java -jar sec-client-rest-template-2.1.1.jar
操作が成功すると、[email protected] (英語)
による以下の出力が表示されるはずです。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<title>Spring Security Kerberos Example</title>
</head>
<body>
<h1>Hello [email protected] (英語) !</h1>
</body>
</html>