大佬教程收集整理的这篇文章主要介绍了mozilla-django-oidc 与 django 3 上的 keycloak,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 mozilla-django-oidc (1.2.4) 将 Django (3.2) 与 Keycloak (12.0.2) 连接起来。
单击“登录”按钮(根据 documentation 使用 oIDc_authentication_init
视图)时,我将重定向到 keycloak,但在成功登录后出现此错误:
Exception Type: httpError at /oIDc/callBACk/
Exception Value: 404 ClIEnt Error: Not Found for url: http://localhost:8080/auth/realms/mycorp/protocol/openID-connect/token
django 设置的相关设置有:
INSTALLED_APPS = [
...,'mozilla_django_oIDc',]
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.BACkends.ModelBACkend','mozilla_django_oIDc.auth.oIDCAuthenticationBACkend',),OIDC_AUTH_URI = 'http://localhost:8080/auth/realms/mycorp'
OIDC_CALLBACK_PUBliC_URI = 'http://localhost'
LOGIN_REDIRECT_URL = OIDC_CALLBACK_PUBliC_URI
logoUT_REDIRECT_URL = OIDC_AUTH_URI + '/protocol/openID-connect/logout?redirect_uri=' + OIDC_CALLBACK_PUBliC_URI
OIDC_RP_CLIENT_ID = 'django'
OIDC_RP_CLIENT_SECRET = os.environ.get("OIDC_CLIENT_SECRET")
OIDC_RP_ScopES = 'openID email profile'
# Keycloak-specific (as per http://KEYCLOAK_SERVER/auth/realms/REALM/.well-kNown/openID-configuration)
OIDC_OP_AUTHORIZATION_ENDPOINT = OIDC_AUTH_URI + '/protocol/openID-connect/auth'
OIDC_OP_TOKEN_ENDPOINT = OIDC_AUTH_URI + '/protocol/openID-connect/token'
OIDC_OP_user_ENDPOINT = OIDC_AUTH_URI + '/protocol/openID-connect/userinfo'
OIDC_OP_JWKS_ENDPOINT = OIDC_AUTH_URI + '/protocol/openID-connect/certs'
urls.py
urlpatterns = [
...,path('oIDc/',include('mozilla_django_oIDc.urls')),]
和详细错误:
httpError at /oIDc/callBACk/
404 ClIEnt Error: Not Found for url: http://localhost:8080/auth/realms/mycorp/protocol/openID-connect/token
request Method: GET
request URL: http://localhost/oIDc/callBACk/?state=cBtEeSIHNNdsgMBUjPXkq2RwVsspKsZF&session_state=a5b50fc0-0ec2-4def-8ec8-db1e4a95450f&code=864a2e21-75a7-42d8-8249-e9397be9b64b.a5b50fc0-0ec2-4def-8ec8-db1e4a95450f.2ec7cfbf-b5ee-4f9a-9d4b-012fdc0f9630
Django Version: 3.2
Exception Type: httpError
Exception Value:
404 ClIEnt Error: Not Found for url: http://localhost:8080/auth/realms/mycorp/protocol/openID-connect/token
Exception LOCATIOn: /usr/local/lib/python3.8/site-packages/requests/models.py,line 943,in raise_for_status
Python Executable: /usr/local/bin/python
Python Version: 3.8.9
Python Path:
['/home/maat/src','/usr/local/bin','/usr/local/lib/python38.zip','/usr/local/lib/python3.8','/usr/local/lib/python3.8/lib-dynload','/usr/local/lib/python3.8/site-packages']
Server time: Tue,27 Apr 2021 19:08:01 +0200
显然一切都按照文档中的说明进行配置,但我看不出它失败的原因......
直到我意识到测试是在 docker-compose 上运行时,404 对我来说还不够清楚,因此对 localhost 的访问与主机不同。
在主机网络模式下运行或通过其域名到达keycloak修复它
以上是大佬教程为你收集整理的mozilla-django-oidc 与 django 3 上的 keycloak全部内容,希望文章能够帮你解决mozilla-django-oidc 与 django 3 上的 keycloak所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。