Spring Coud【Spring Security OAuth 2】ライセンス認証
読み解く
最近は仕事のためにSpring Cloud Oauth 2 SSOのdemoプロジェクトをしました.Spring Security OAuth 2に基づいています.
本文
アムウェイSpring Boot Admin
認証
対外暴露二つのポート
8080ゲートウェイインターフェース(リソースサーバとして)
8090のOauth 2インターフェース(ライセンスサーバとして)
二つの部分に分ける
リソースサーバ Registry 8761登録サービス appi-gateway 8080ゲートウェイサービス account-service 9000アカウントサービス admin-server 9000 adminサービス 認証サーバ oauth 2-server 8090認証サービス 起動順序
リソースサーバ Registry 8761登録サービス account-service 9000アカウントサービス admin-server 9000 adminサービス appi-gateway 8080ゲートウェイサービス 認証サーバ oauth 2-server 8090認証サービス postManテスト
token共有はJdbc Token Storeに基づいています.ここでRedis Token Storeに変更できます.Spring Security TokenStoreを参照して3+1の詳細を実現できます.
初期化テーブル構造
今回はパスワードモード4でのモードの詳細をテストしやすいようにOAuth 2.0を参照して理解してください.
ここのAuthorzationはアプリケーションのclient_です.IDの値とsecretの値の暗号化
access_token値は前ステップで取得したaccess_token値Authorzation値はアプリケーションのclient_です.idとsecretの暗号化
最近は仕事のためにSpring Cloud Oauth 2 SSOのdemoプロジェクトをしました.Spring Security OAuth 2に基づいています.
本文
アムウェイSpring Boot Admin
認証
対外暴露二つのポート
8080ゲートウェイインターフェース(リソースサーバとして)
8090のOauth 2インターフェース(ライセンスサーバとして)
二つの部分に分ける
リソースサーバ
リソースサーバ
token共有はJdbc Token Storeに基づいています.ここでRedis Token Storeに変更できます.Spring Security TokenStoreを参照して3+1の詳細を実現できます.
初期化テーブル構造
Drop table if exists oauth_access_token;
create table oauth_access_token (
create_time timestamp default now(),
token_id VARCHAR(255),
token BLOB,
authentication_id VARCHAR(255),
user_name VARCHAR(255),
client_id VARCHAR(255),
authentication BLOB,
refresh_token VARCHAR(255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Drop table if exists oauth_refresh_token;
create table oauth_refresh_token (
create_time timestamp default now(),
token_id VARCHAR(255),
token BLOB,
authentication BLOB
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ステップ1登録許可token今回はパスワードモード4でのモードの詳細をテストしやすいようにOAuth 2.0を参照して理解してください.
ここのAuthorzationはアプリケーションのclient_です.IDの値とsecretの値の暗号化
POST http://localhost:8090/oauth/token HTTP/1.1
Authorization: Basic U2FtcGxlQ2xpZW50SWQ6c2VjcmV0
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=admin&password=admin
応答情報HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token": "63ac3e98-3a82-4837-b399-d4dbb7e1be38",
"token_type": "bearer",
"refresh_token": "4e699657-9fd9-4b83-881c-7e9942402353",
"expires_in": 43011,
"scope": "user_info"
}
ステップ2は、リソース携帯認証情報を要求する.GET http://localhost:8080/api/account HTTP/1.1
Authorization: bearer 63ac3e98-3a82-4837-b399-d4dbb7e1be38
応答情報は以下の通りですHTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
hello account service
Step 3ログアウトaccess_token値は前ステップで取得したaccess_token値Authorzation値はアプリケーションのclient_です.idとsecretの暗号化
DELETE http://localhost:8090/oauth/token?access_token=63ac3e98-3a82-4837-b399-d4dbb7e1be38 HTTP/1.1
Authorization: Basic U2FtcGxlQ2xpZW50SWQ6c2VjcmV0
応答HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
プロジェクトのソースコードはギthubに委託されました.