Jasig CASサーバー4.0.0を使用したSSO。 パート1

2つ以上の部分( part1.example.com )と2番目の部分( part2.example.com )で構成されるWebプロジェクトがあるとします。 これで、ユーザー認証を行うタスクに直面しますが、ユーザーがWebプロジェクトの任意の部分に1回ログインすると、たとえば最初にログインし、2番目にログインすると、すでに認証されているはずです。



このプロセスは、ユーザー認証、またはシングルサインオン( SSOと呼ばれます。

Habréにはすでに類似の記事Jasig CAS-認証サーバーがありますが、CAS Server 3がそこで使用されているため、少し古くなっています。しかし、そこにある理論はかなりよく説明されているので、レビューもお勧めします。



ユーザーを認証してWebクライアントに提供するJasig CASサーバーを構成することに注意してください。 将来、このサーバーのクライアント実装について書く予定です。



Mavenプロジェクトの作成と依存関係の追加



このチュートリアルでは、すべてを順番に説明します。

単純なMavenプロジェクトを作成し、 pom.xmlに次の依存関係を追加します。



<properties> <cas.version>4.0.0</cas.version> </properties> <dependencies> <dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-webapp</artifactId> <version>${cas.version}</version> <type>war</type> <scope>runtime</scope> </dependency> <dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-support-generic</artifactId> <version>${cas.version}</version> <type>jar</type> </dependency> </dependencies>
      
      





cas-server-webappは標準サーバーであり、後で自分用に構成します。

cas-server-support-generic-このライブラリにより、自分用にサーバーを構成できます。



また、ビルドプラグインを接続します。

 <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <warName>cas</warName> </configuration> </plugin>
      
      





/cas



コンテキストでプロジェクトを組み立てることができます。



MavenがCASをダウンロードすると、プロジェクトに新しいフォルダーが表示されます。このフォルダーには、デフォルトのCASサーバーアセンブリ4.0.0が既に存在します。







これでデプロイと実行が可能になりますが、 Tomcatにデプロイするため、 Tomcatの小さな設定を実行する必要があります。



Tomcatの構成とキーの生成



繰り返したくないので、以下の資料のより詳細な説明へのリンクを示します 。ここに説明へのリンクがあります



まず、証明書を生成して登録する必要があります。これには、すべてのJDKにある標準のキーツールを使用します。



1. Javaキーストアを生成します。

 keytool -genkey -alias casdc -keypass 12345678 -keystore ssoServer.jks -storepass 12345678 -validity 365
      
      





2.次に、すでに生成されたストレージに基づいて証明書を作成します。

 keytool -export -alias casdc -file casServerPublic.cer -keystore ssoServer.jks -storepass 12345678
      
      





3.そして、受信した証明書を信頼証明書ストアにインポートします。

 keytool -import -alias casdc -file casServerPublic.cer -keypass 12345678 -keystore "C:/Program Files/Java/jdk1.7.0/jre/lib/security/cacerts" -storepass changeit
      
      





その後、。 / apache-tomcat-8.0.9 / confフォルダーに移動して、 server.xmlファイルを編集用に開き、そこで行を見つけます。 Define a SSL HTTP/1.1 Connector on port 8443





この行の後に、デフォルトでは約83行あり、次のxml貨物を挿入します。

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keyAlias="casdc" keystoreFile="C:/keys/ssoServer.jks" keystorePass="12345678" />
      
      





生成されたssoServer.jksリポジトリをC:/ keys / ssoServer.jksフォルダーに配置し、その後にフルパスを示したことに注意してください。



keyAliasは、リポジトリを生成する最初のステップで指定したエイリアスです。

keystorePass-キーストアのパスワード。

そのため、CASサーバーに必要なHTTPSを構成しました。



その後、Tomcatを起動してプロジェクトにパッチを適用できます。

その後、リンクに従ってください: https:// localhost:8443 / cas / -これは標準構成のcasサーバーです。



以下が表示されるはずです。



テストに赤いバーがある場合は、何か間違ったことをしてHTTPSが有効になっていないことを意味します。

そして、CASサーバーが正常に起動して動作していることを確認するために、ログインしましょう。 これを行うには、標準のユーザー名とパスワードを入力する必要があります。

ログイン: casuser

パスワード: メロン



ログインに成功すると、次のように表示されます。





開始したCASサーバーにおめでとうございます。 次の投稿では、AuthenticationHandlerをカスタマイズする方法、つまりデータベースまたは他の外部システムからユーザーを取得する機能について説明します。



厳密に判断しないでください。これはこのテーマに関する私の最初のプロトタイプです。コメントがあれば、喜んで聞きます。 また、私は絶えずそれを改善します、そして、それが誰かに興味があるならば、もちろん、私は新しい成果について書きます。



Githubプロジェクトのソース: https : //github.com/alexbarchuk/local-cas

ソース: https : //wiki.jasig.org/display/CASUM/Configuring



All Articles