2.3春のセキュリティのOAuth2の認証ソリューション
このプロジェクトで使用される 春のセキュリティ+のOAuth2のユーザー認証とユーザー認証が完了し、春のセキュリティは 強力かつ高度にカスタマイズボディで認証とアクセス制御フレームワークの一部、春のセキュリティ フレームワークは、統合のOAuth2のプロトコル、図を。認定は、プロジェクト・チャートである:
1 、完全な認証へのユーザ認証サービス要求。
図2は、ユーザアイデンティティトークン認証サービスの下で発行され、合法的なのアイデンティティを表すトークンのアイデンティティを持っています。
3 、ユーザがゲートウェイを介してトークン要求リソースサービス、サービスなければならない最初の要求リソースを運びます。
図4は、リリースが合法的にアクセス権を持ち続けるならば、ユーザは、ログインしていないことを法的および違法な手段トークンユーザの身元を確認するゲートウェイ。
5 、リソースサービスは、認証トークンを完了するによると、トークンを取得します。
6 、許可応答のリソース情報を完了するためにリソースサービス。
3春のセキュリティのOAuth2 研究
3.1 目的
に基づいて、プロジェクトの認証サービスのは、春のセキュリティのOAuth2の構築、および、そのベースでの使用いくつかの拡張をしたJWT トークンメカニズムを、カスタムこれは、ユーザーの身元情報の内容を定義します。このチュートリアルの主な目的は、プロジェクトに統合学ぶことである春のセキュリティのOAuth2ので、方法及びプロセス
、スプリングセキュリティのOAuth2の次の目標を達成するために必要な研究
1 理解するために、のOAuth2 認証コード認証プロセスおよびパスワードの認証プロセスを。
2 、理解春セキュリティのOAuth2のワークフローを。
3 、リソースとサービス統合春のセキュリティフレームワークは完成のOAuth2の認証プロセスを。
3.2 認証サーバセットアップ
3.2.1 基本的なエンジニアリングのインポート
インポート「データ」ディレクトリ XC-サービスucenter-AUTHのプロジェクトは、プロジェクトが基づいている春のセキュリティのOAuth2 作業の第二のパッケージプロセス、エンジニアリングのインポートこの研究のOAuth2の認証プロセスを。
3.2.2 データベースを作成し
、インポートデータディレクトリに xc_user.sqlデータベースユーザーを作成
する「oauth_」テーブルの始まりをしている春のセキュリティは、 ビルトインテーブル。
プロジェクト春のセキュリティは、 主に使用oauth_client_detailsに:テーブル
のclient_idを:クライアント言及したIDの上記
resource_ids :資源、上記IDの上に(されていない)
client_secret :クライアントのパスワードの
スコープ:スコープ
access_token_validity :アクセストークン(秒)有効です
refresh_token_validity :リフレッシュトークンの有効期限(秒)
authorized_grant_type :認証タイプ、client_credentials、ということrefresh_token authorization_code、パスワード、
3.3のOAuth2の認証コードパターン
3.3.1のOAuth2 ライセンスモード
のOAuth2を:次のモードの認可
認証コードパターン(認証コード)暗黙の認証モード(暗黙)モードパスワード(リソース所有者のパスワードの資格情報)クライアントモード(クライアント資格情報)
の認証コードと暗号モード複数のアプリケーションモードは、このセクションでは、認証コードを記載モード。
3.3.2 認証コード認証プロセス
ダーク馬の上には、Webサイトのプログラマは、マイクロチャネルの認証プロセスを使用する例示次のように認証コードモード処理がある:
1 、クライアントは、第三者が認可を要求
2 ユーザー(リソースの所有者が)クライアント許可を与えることに合意した
3 、クライアントは認証コードを取得し、アプリケーションサーバが認証を要求した
トークン 4 、認証サーバの応答をクライアントにトークン
5 リソース、クライアントは認証が完了し、サーバリソース、リソーストークンサービスチェックの合法性を要求
6を、サーバーはリソースを返します。保護されたリソース
3.3.2 認証コード用アプリケーション
認証サービスを取得するための要求の認証コード:
GETの要求:
localhost:40400/auth/oauth/authorize?
client_id=XcWebApp&response_type=code&scop=app&redirect_uri=http://localhost
参数列表如下:
client_id:客户端id,和授权配置类中设置的客户端id一致。
response_type:授权码模式固定为code
scop:客户端范围,和授权配置类中设置的scop一致。
redirect_uri:跳转uri,当授权码申请成功后会跳转到此地址,并在后边带上code参数(授权码)。
首先跳转到登录页面:
输入账号和密码,点击Login。
Spring Security接收到请求会调用UserDetailsService接口的loadUserByUsername方法查询用户正确的密码。
当前导入的基础工程中将正确的密码硬编码为“123”,所以这里账号随意输入,密码输入123即可认证通过。
接下来进入授权页面: