簡體   English   中英

WSO2 API Manager(和Identity Server)上的令牌驗證

[英]Token validation at WSO2 API Manager (and Identity Server)

我們使用wso2 API管理器+單獨的身份服務器構建API。

為了實現資源服務器,我們需要

  1. 驗證令牌(有效)
  2. 獲取有關用戶的信息(角色,用戶名,全名等)
  3. 通過OAuth進行身份驗證的詳細信息(范圍)

用戶角色和身份驗證范圍是確定用戶功能和應用安全設置所必需的(作為用戶角色和授予的范圍的交集)

目前看來,我可以通過2個請求獲得所有必要的信息:

  1. / services / OAuth2TokenValidationService / (在沒有專用IS的情況下為IS或ApiManager)的SOAP Web服務上調用“ 驗證 ”方法

    響應包含有關令牌有效性,到期數據和用戶范圍的信息。

  2. / oauth2 / userinfo上執行GET ?schema = openid

    響應包含帶有有關用戶(角色,用戶名等)信息的JSON

首次請求需要在wso2 IS服務器上注冊的具有用戶憑據的基本身份驗證。 第二個僅需要資源服務器從客戶端獲得的OAuth令牌。

因此,問題是 :對於此用例(在資源服務器上獲取作用域和用戶信息),使用不同技術的這2個請求是否必要?或者我可能遺漏了一些東西?

第二個請求幾乎是正確的,但是它不包含有關令牌范圍的信息,因此,如果用戶通常有權訪問資源(根據其角色),則服務器將無法限制對資源的訪問

如果需要2個請求,則用戶在wso2 app上必須具有的最低系統角色是什么? 使用管理員憑據(例如默認的admin / admin)對我來說似乎不太安全,我想創建用戶以最少的權限進行令牌驗證。

  1. 在/ oauth2 / userinfo上執行GET?schema = openid這是一個由OAuth保護的其余端點,您需要使用訪問令牌進行身份驗證並獲取用戶信息。

  2. 在/ services / OAuth2TokenValidationService /上的SOAP Web服務上調用“驗證”方法。此服務是一種管理服務,您可以在其中使用允許調用諸如Basic-Auth,Mutual ssl等管理服務的任何身份驗證機制進行調用

在您的方案中,您可以使用雙向ssl身份驗證器對Identity Server [1]進行身份驗證,在這里您可以找到有關此信息的更多信息。

除了不調用userinfo端點,您還可以配置身份服務器以發送帶有令牌驗證響應的JWT令牌。 然后,您可以從JWT令牌獲取用戶信息。 [2]在這里您將找到更多有關此的信息。

[1] http://isharaaruna.blogspot.com/2014/01/oauth-20-playground-sample-with-mutual.html

[2] http://blog.shelan.org/2013/07/how-to-get-user-profile-for-oauth-token.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM