2016-01-26 19 views
1

我在自己的服務器上設置了Wirecloud和KeyRock實例。現在我想通過KeyRock啓用對Wirecloud的身份驗證,如下所述:Integration with the IdM-GE通過KeyRock對Wirecloud進行身份驗證

在打開<wirecloud_server>/login之後,我會在登錄KeyStone登錄屏幕之後執行上述步驟。登錄時,我被要求授權應用程序,並重定向到<wirecloud_server>/complete/fiware/?state=<state_token>&code=<code_token>,但我只有500錯誤。

Horizo​​n(KeyRock-Frontend)日誌以及Wirecloud日誌不會顯示任何錯誤,因此我無能爲力。

EDIT1: 我更改的日誌記錄調試和現在我得到在瀏覽器中以下消息:

Environment: 


Request Method: GET 
Request URL: https://<wirecloud_server>/complete/fiware/?state=LhCRZqqOaB57Lo8kyYxhk5zWJBhTRshi&code=JH3mwLCmnBx19kZwtPoqNm1Gl4eIpv 

Django Version: 1.6.11 
Python Version: 2.7.9 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'wirecloud.commons', 
'wirecloud.defaulttheme', 
'compressor', 
'south', 
'wirecloud.catalogue', 
'wirecloud.platform', 
'wirecloud.fiware', 
'social.apps.django_app.default') 
Installed Middleware: 
('wirecloud.commons.middleware.URLMiddleware',) 


Traceback: 
File "/usr/local/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    112.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    52.   response = view_func(request, *args, **kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 
    57.   return view_func(*args, **kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/social/apps/django_app/utils.py" in wrapper 
    51.    return func(request, backend, *args, **kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/social/apps/django_app/views.py" in complete 
    28.      redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/social/actions.py" in do_complete 
    43.   user = backend.complete(user=user, *args, **kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/social/backends/base.py" in complete 
    41.   return self.auth_complete(*args, **kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/social/utils.py" in wrapper 
    229.    return func(*args, **kwargs) 
File "/usr/local/venv/lib/python2.7/site-packages/social/backends/oauth.py" in auth_complete 
    375.   state = self.validate_state() 
File "/usr/local/venv/lib/python2.7/site-packages/social/backends/oauth.py" in validate_state 
    88.    raise AuthStateMissing(self, 'state') 

Exception Type: AuthStateMissing at /complete/fiware/ 
Exception Value: Session value state missing. 

Apache的日誌我wirecloud虛擬主機讀取以下:

[Wed Jan 27 07:40:40.707138 2016] [wsgi:error] [pid 22571:tid 139868295030528] Internal Server Error: /complete/fiware/ 
[Wed Jan 27 07:40:40.707165 2016] [wsgi:error] [pid 22571:tid 139868295030528] Traceback (most recent call last): 
[Wed Jan 27 07:40:40.707167 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response 
[Wed Jan 27 07:40:40.707169 2016] [wsgi:error] [pid 22571:tid 139868295030528]  response = wrapped_callback(request, *callback_args, **callback_kwargs) 
[Wed Jan 27 07:40:40.707171 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/django/views/decorators/cache.py", line 52, in _wrapped_view_func 
[Wed Jan 27 07:40:40.707173 2016] [wsgi:error] [pid 22571:tid 139868295030528]  response = view_func(request, *args, **kwargs) 
[Wed Jan 27 07:40:40.707175 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view 
[Wed Jan 27 07:40:40.707177 2016] [wsgi:error] [pid 22571:tid 139868295030528]  return view_func(*args, **kwargs) 
[Wed Jan 27 07:40:40.707179 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/social/apps/django_app/utils.py", line 51, in wrapper 
[Wed Jan 27 07:40:40.707181 2016] [wsgi:error] [pid 22571:tid 139868295030528]  return func(request, backend, *args, **kwargs) 
[Wed Jan 27 07:40:40.707183 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/social/apps/django_app/views.py", line 28, in complete 
[Wed Jan 27 07:40:40.707185 2016] [wsgi:error] [pid 22571:tid 139868295030528]  redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs) 
[Wed Jan 27 07:40:40.707187 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/social/actions.py", line 43, in do_complete 
[Wed Jan 27 07:40:40.707189 2016] [wsgi:error] [pid 22571:tid 139868295030528]  user = backend.complete(user=user, *args, **kwargs) 
[Wed Jan 27 07:40:40.707191 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/social/backends/base.py", line 41, in complete 
[Wed Jan 27 07:40:40.707204 2016] [wsgi:error] [pid 22571:tid 139868295030528]  return self.auth_complete(*args, **kwargs) 
[Wed Jan 27 07:40:40.707206 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/social/utils.py", line 229, in wrapper 
[Wed Jan 27 07:40:40.707208 2016] [wsgi:error] [pid 22571:tid 139868295030528]  return func(*args, **kwargs) 
[Wed Jan 27 07:40:40.707210 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/social/backends/oauth.py", line 375, in auth_complete 
[Wed Jan 27 07:40:40.707212 2016] [wsgi:error] [pid 22571:tid 139868295030528]  state = self.validate_state() 
[Wed Jan 27 07:40:40.707213 2016] [wsgi:error] [pid 22571:tid 139868295030528] File "/usr/local/venv/lib/python2.7/site-packages/social/backends/oauth.py", line 88, in validate_state 
[Wed Jan 27 07:40:40.707215 2016] [wsgi:error] [pid 22571:tid 139868295030528]  raise AuthStateMissing(self, 'state') 
[Wed Jan 27 07:40:40.707217 2016] [wsgi:error] [pid 22571:tid 139868295030528] AuthStateMissing: Session value state missing. 

的地平線日誌顯示以下內容:

[Wed Jan 27 06:40:37.975296 2016] [wsgi:error] [pid 22572:tid 139868395742976] Login successful for user "idm". 
[Wed Jan 27 06:40:38.089251 2016] [wsgi:error] [pid 22572:tid 139868362172160] DEBUG:idm_logger:Requesting authorization for application: 449efdc7913f434ea6e81ed49b1669e4 with redirect_uri: https://<wirecloud_server>/complete/fiware/   and scope: ['all_info'] by user idm 
[Wed Jan 27 06:40:38.122259 2016] [wsgi:error] [pid 22572:tid 139868362172160] DEBUG:idm_logger:OAUTH2: Application 449efdc7913f434ea6e81ed49b1669e4 NOT alreadyauthorized 
[Wed Jan 27 06:40:40.574809 2016] [wsgi:error] [pid 22572:tid 139868395742976] DEBUG:idm_logger:Authorizing application: 449efdc7913f434ea6e81ed49b1669e4 by user: idm 
[Wed Jan 27 06:40:40.596301 2016] [wsgi:error] [pid 22572:tid 139868395742976] DEBUG:idm_logger:OAUTH2: Authorization Code obtained JH3mwLCmnBx19kZwtPoqNm1Gl4eIpv 
[Wed Jan 27 06:40:40.596382 2016] [wsgi:error] [pid 22572:tid 139868395742976] DEBUG:idm_logger:OAUTH2: Redirecting user back to https://<wirecloud_server>/complete/fiware/?state=LhCRZqqOaB57Lo8kyYxhk5zWJBhTRshi&code=JH3mwLCmnBx19kZwtPoqNm1Gl4eIpv 
+0

請編輯您的'settings.py'文件並將'DEBUG'設置爲'True'以獲得改進的錯誤消息。添加該消息你的問題的描述:)。 –

+0

Hello @ÁlvaroArranz,我更新了我的問題,並在調試級別使用日誌,但對於我來說,仍然無法檢測到問題。你能否給我提供一些幫助? – Newbird

+0

奇怪的是,引發的異常是'AuthStateMissing',但請求中有一個狀態GET參數。你使用的是什麼版本的python-social-auth? –

回答

2

似乎是th在將IdM服務器和WireCloud託管在同一個域中時發生問題。在這種情況下,兩個服務都會嘗試使用與WireCloud相同的Cookie,並且IdM基於Django。用於CSRF身份驗證令牌的cookie也是如此,儘管您的錯誤與此cookie無關。

請編輯settings.py文件併爲SESSION_COOKIE_NAMECSRF_COOKIE_NAME設置提供自定義值。例如:

SESSION_COOKIE_NAME = "wcsessionid" 
CSRF_COOKIE_NAME = "wccsrftoken" 
+0

非常感謝你,這解決了我們的問題,直接導致另一個:https://stackoverflow.com/questions/35791817/keystone-wirecloud-authentication-failed-ssl-certificate-verify-failed – Newbird

相關問題