2016-08-11 179 views
3

我試圖設置WSO2身份服務器使用OpenId連接。我目前已應用以下設置Here: Setup WSO2WSO2身份服務器OpenId連接Owin

它歸結爲我使用居民身份提供商,我已經爲我的應用程序「CoolApp」設置了服務提供商。

我配置了「OAuth/OpenID連接配置」並設置了一個回調URL。

有沒有一個簡單的例子如何在JavaScript中使用它?

我玩過身份識別服務器3,他們有一個客戶端oidc-client.js,它與身份識別服務器3結合使用時效果很好。但是,我似乎無法使用WSO2身份驗證服務器。


我會有關該問題的錯誤的方式,我其實是想用的是owin中間件就像他們試圖herehere,以保護我的網站。

所以現在我有以下幾點:

我把一個破發點中SecurityTokenValidated和AuthenticationFailed。轉到頁面,我按照預期重定向到WSO2身份服務器。當我登錄並返回到頁面時,我的兩個斷點均未命中且未登錄。

使用WSO2 Identity Server 5.1.0的進程。

@farasath,你能幫我一下,其他人看起來像我們都遇到同樣的問題,還沒有找到解決方案。

在進一步調查過程中,我發現使用帶有response_type =「code」的代碼流也不起作用,因爲OIDC中間件不支持它(請參閱herehere)。

找到@pinpoint的建議,ASP.net核心確實支持這個。但這不是一個真正的選擇。

@Hos回答here

隨着WSO2的Identity Server 5.0.0 ID連接 「id_token」 響應類型未實現。

我沒有得到他在帖子中提到的錯誤響應,但是對於我來說,使用這些版本的結果保持不變,斷點永遠不會被擊中。所以現在我想知道這應該在5.1.0還是在5.2.0-Beta中工作,或者這仍然是WIP。


@farasath,謝謝您的回覆這裏的日誌

[2016-08-16 08:11:39,998] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - Validate Client information request for client_id : fgx4M5e27NJqgRIs8nu5aL7Jw3oa and callback_uri http://localhost:57815/ 
[2016-08-16 08:11:40,074] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - Registered App found for the given Client Id : fgx4M5e27NJqgRIs8nu5aL7Jw3oa ,App Name : CoolApp, Callback URL : http://localhost:57815/ 
[2016-08-16 08:11:50,948] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - Authorization Request received for user : [email protected], Client ID : fgx4M5e27NJqgRIs8nu5aL7Jw3oa, Authorization Response Type : id_token token, Requested callback URI : http://localhost:57815/, Requested Scope : openid 
[2016-08-16 08:11:50,967] INFO {org.wso2.carbon.identity.oauth.config.OAuthServerConfiguration} - The default OAuth token issuer will be used. No custom token generator is set. 
[2016-08-16 08:11:50,985] INFO {org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO} - Thread pool size for session persistent consumer : 100 
[2016-08-16 08:11:50,991] DEBUG {org.wso2.carbon.identity.oauth2.dao.TokenPersistenceTask} - Access Token context persist consumer is started 
... This one repeats about 100 times ... 
[2016-08-16 08:11:51,031] DEBUG {org.wso2.carbon.identity.oauth2.authz.AuthorizationHandlerManager} - Successfully created AppInfoCache under OAuthCacheManager 
[2016-08-16 08:11:51,206] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - Added OAuthAuthzReqMessageContext to threadlocal 
[2016-08-16 08:11:52,180] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.TokenResponseTypeHandler} - No active access token found in cache for Client ID : fgx4M5e27NJqgRIs8nu5aL7Jw3oa, User ID : [email protected] and Scope : openid 
[2016-08-16 08:11:52,199] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.TokenResponseTypeHandler} - No access token found in database for Client ID : fgx4M5e27NJqgRIs8nu5aL7Jw3oa, User ID : [email protected] and Scope : openid. Therefore issuing new access token 
[2016-08-16 08:11:52,208] DEBUG {org.wso2.carbon.identity.oauth2.dao.TokenPersistenceTask} - Access Token Data persisting Task is started to run 
[2016-08-16 08:11:52,208] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.TokenResponseTypeHandler} - Persisted Access Token for Client ID : fgx4M5e27NJqgRIs8nu5aL7Jw3oa, Authorized User : [email protected], Timestamp : 2016-08-16 08:11:52.207, Validity period (s) : 3600, Scope : openid, Callback URL : http://localhost:57815/, Token State : ACTIVE and User Type : APPLICATION_USER 
[2016-08-16 08:11:52,233] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.TokenResponseTypeHandler} - Access Token was added to OAuthCache for cache key : fgx4M5e27NJqgRIs8nu5aL7Jw3oa:[email protected]:openid 
[2016-08-16 08:11:52,298] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - Cleared OAuthAuthzReqMessageContext 

第二次,我跑了我得到這個日誌:

[2016-08-16 08:30:17,216] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - Validate Client information request for client_id : fgx4M5e27NJqgRIs8nu5aL7Jw3oa and callback_uri http://localhost:57815/ 
[2016-08-16 08:30:17,222] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - Registered App found for the given Client Id : fgx4M5e27NJqgRIs8nu5aL7Jw3oa ,App Name : CoolApp, Callback URL : http://localhost:57815/ 
[2016-08-16 08:30:23,178] DEBUG {org.wso2.carbon.identity.oauth2.OAuth2Service} - Authorization Request received for user : [email protected], Client ID : fgx4M5e27NJqgRIs8nu5aL7Jw3oa, Authorization Response Type : id_token token, Requested callback URI : http://localhost:57815/, Requested Scope : openid 
[2016-08-16 08:30:23,189] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - Added OAuthAuthzReqMessageContext to threadlocal 
[2016-08-16 08:30:23,195] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.TokenResponseTypeHandler} - Retrieved active Access Token for Client Id : fgx4M5e27NJqgRIs8nu5aL7Jw3oa, User ID :[email protected] and Scope : openid from cache 
[2016-08-16 08:30:23,203] DEBUG {org.wso2.carbon.identity.oauth2.authz.handlers.TokenResponseTypeHandler} - Access Token is valid for another 3264638ms 
[2016-08-16 08:30:23,218] DEBUG {org.wso2.carbon.identity.oauth2.util.OAuth2Util} - Cleared OAuthAuthzReqMessageContext 

現在我改變了我將uri重定向到: RedirectUri =「http://localhost:57815/Account/ExternalLoginCallback/」,

並且該函數中的logInfo始終爲空 var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

谷歌搜索,發現this post有人有類似的問題。


二手提琴手看回調看起來像一個cookie已設置Screenshot


所以,現在林留下了以下情況:

  • 斷點在SecurityTokenValidated從不打
  • AuthenticationFailed中的斷點從未命中
  • var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();在我的回調中始終爲空
+0

@farasath我不得不修改我的問題在像我一樣使用應答代替(這是由評論家指給我看)。很不幸,你的評論也丟失了。但是就像你要求我在打開日誌的情況下運行一樣,我也用提琴手做了一些進一步的調查。 –

回答

0

AFAIK我們沒有可直接使用的Javascript樣本。但這根本不應該是個問題。我只是通過簡單的谷歌搜索來找到[1]。你所需要做的就是替換client_id和回調URL。由於我們遵循OAuth/OpenID連接規範,因此任何OAuth Javascript客戶端庫都應與WSO2 Identity Server配合使用。

我們有一個Web應用示例[2],之前我寫了一篇博客文章[3]來演示WSO2 Identity Server的授權代碼流。

[1] https://github.com/zalando/oauth2-client-js

[2] https://docs.wso2.com/display/IS510/OAuth+2.0+with+WSO2+Playground

[3] http://blog.farazath.com/2016/05/trying-out-oauth2-authorization-code.html

+0

我試圖改寫這個問題,因爲我意識到我開始錯了。 –