小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

OAuth2 單點(diǎn)登錄

 昵稱71011036 2020-08-10

簡(jiǎn)介:OAuth(Open Authorization)是一個(gè)開放標(biāo)準(zhǔn),允許用戶授權(quán)第三方應(yīng)用訪問他們存儲(chǔ)在另外的服務(wù)提供者上的信息,而不需要將用戶名和密碼提供給第三方應(yīng)用。OAuth2是OAuth協(xié)議的延續(xù)版本,OAuth1已經(jīng)被廢棄,現(xiàn)在OAuth2是用于授權(quán)的行業(yè)標(biāo)準(zhǔn)協(xié)議。

1. 四個(gè)角色

  A. 客戶端(client):本身不存儲(chǔ)資源,需要通過資源擁有者的授權(quán)去請(qǐng)求資源服務(wù)器的資源,比如瀏覽器或內(nèi)部服務(wù);

  B. 資源擁有者(Resource Owner):通常為用戶,也可以是應(yīng)用程序,他有訪問資源的賬號(hào)和秘鑰;

  C. 認(rèn)證服務(wù)器(Authorization Server):用于服務(wù)提供商對(duì)資源擁有的身份進(jìn)行認(rèn)證、對(duì)訪問資源進(jìn)行授權(quán),認(rèn)證成功后會(huì)給客戶端發(fā)放令牌access_token,作為客戶端訪問資源服務(wù)器的憑據(jù);

  D. 資源服務(wù)器(Resource  Server):擁有受保護(hù)的資源,如果請(qǐng)求包含正確的令牌,那就可以訪問資源,比如提供客戶端API的服務(wù)。

  注意:服務(wù)提供商給接入方的身份憑據(jù)是:client_id(客戶端標(biāo)識(shí)) + client_secret(客戶端秘鑰),用于不能隨便一個(gè)請(qǐng)求就能認(rèn)證授權(quán)。

2. 運(yùn)行流程

  A. 客戶端請(qǐng)求第三方授權(quán);

  B. 資源擁有者同意給客戶端授權(quán);

  C. 客戶端獲取到授權(quán)碼,請(qǐng)求認(rèn)證服務(wù)器申請(qǐng)令牌;

  D. 認(rèn)證服務(wù)器認(rèn)證授權(quán)碼無誤,同意向客戶端發(fā)放令牌;

  E. 客戶端使用令牌請(qǐng)求資源服務(wù)器的資源;

  F. 資源服務(wù)器認(rèn)證令牌無誤,同意開放受保護(hù)的資源。

3. 授權(quán)模式

  A. 授權(quán)碼模式(Authorization Code)

    流程:

      第一步:用戶訪問客戶端,將會(huì)跳轉(zhuǎn)到授權(quán)服務(wù)器;

      第二步:用戶給予是否給客戶端授權(quán);

      第三步:若授權(quán)的話,授權(quán)服務(wù)器將跳轉(zhuǎn)到客戶端指定的URI,并同時(shí)提供授權(quán)碼;

      第四步:客戶端收到授權(quán)碼,通過返回的URI,向認(rèn)證服務(wù)器申請(qǐng)令牌;

      第五步:認(rèn)證服務(wù)器比對(duì)授權(quán)碼和重定向URI,認(rèn)證無誤后,向客戶端發(fā)送訪問令牌和更新令牌。

    使用場(chǎng)景:該模式是OAuth2最安全最完善的一種模式,可以實(shí)現(xiàn)服務(wù)之間的調(diào)用,比如微信,QQ等第三方登錄。

  B. 密碼模式(Resource Owner Password Credentials)

    流程:

      第一步:將用戶名和密碼提供給客戶端;

      第二步:客戶端攜帶用戶名和密碼發(fā)送給認(rèn)證服務(wù)器申請(qǐng)令牌;

      第三步:認(rèn)證服務(wù)器認(rèn)證無誤,向客戶端提供訪問令牌。

    使用場(chǎng)景:客戶端不得存儲(chǔ)密碼,通常用在用戶對(duì)客戶端高度信任情況下。

  C. 簡(jiǎn)化模式(Implicit)

 

  D. 客戶端模式(Client Credentials)

    流程:

      第一步:客戶端(服務(wù),非用戶)向認(rèn)證服務(wù)器進(jìn)行身份驗(yàn)證,申請(qǐng)令牌;

      第二部:認(rèn)證服務(wù)器認(rèn)證無誤,向客戶端提供訪問令牌。

    使用場(chǎng)景:A服務(wù)本身需要B服務(wù)資源,與用戶無關(guān)。

4. sql語句

-- used in tests that use HSQL
create table oauth_client_details (
  client_id VARCHAR(256) PRIMARY KEY,
  resource_ids VARCHAR(256),
  client_secret VARCHAR(256),
  scope VARCHAR(256),
  authorized_grant_types VARCHAR(256),
  web_server_redirect_uri VARCHAR(256),
  authorities VARCHAR(256),
  access_token_validity INTEGER,
  refresh_token_validity INTEGER,
  additional_information VARCHAR(4096),
  autoapprove VARCHAR(256)
);

create table oauth_client_token (
  token_id VARCHAR(256),
  token LONGVARBINARY,
  authentication_id VARCHAR(256) PRIMARY KEY,
  user_name VARCHAR(256),
  client_id VARCHAR(256)
);

create table oauth_access_token (
  token_id VARCHAR(256),
  token LONGVARBINARY,
  authentication_id VARCHAR(256) PRIMARY KEY,
  user_name VARCHAR(256),
  client_id VARCHAR(256),
  authentication LONGVARBINARY,
  refresh_token VARCHAR(256)
);

create table oauth_refresh_token (
  token_id VARCHAR(256),
  token LONGVARBINARY,
  authentication LONGVARBINARY
);

create table oauth_code (
  code VARCHAR(256), authentication LONGVARBINARY
);

create table oauth_approvals (
    userId VARCHAR(256),
    clientId VARCHAR(256),
    scope VARCHAR(256),
    status VARCHAR(10),
    expiresAt TIMESTAMP,
    lastModifiedAt TIMESTAMP
);


-- customized oauth_client_details table
create table ClientDetails (
  appId VARCHAR(256) PRIMARY KEY,
  resourceIds VARCHAR(256),
  appSecret VARCHAR(256),
  scope VARCHAR(256),
  grantTypes VARCHAR(256),
  redirectUrl VARCHAR(256),
  authorities VARCHAR(256),
  access_token_validity INTEGER,
  refresh_token_validity INTEGER,
  additionalInformation VARCHAR(4096),
  autoApproveScopes VARCHAR(256)
);

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多