testing sso in admin
parent
919aadd77c
commit
a65441bc03
|
@ -25,4 +25,6 @@ diceware==0.9.6
|
||||||
python-engineio==3.8.1
|
python-engineio==3.8.1
|
||||||
python-socketio==4.1.0
|
python-socketio==4.1.0
|
||||||
|
|
||||||
minio==7.0.3
|
minio==7.0.3
|
||||||
|
|
||||||
|
flask-oidc==1.4.0
|
|
@ -1,12 +1,34 @@
|
||||||
from admin import app
|
from admin import app
|
||||||
from flask_login import LoginManager, UserMixin
|
from flask_login import LoginManager, UserMixin
|
||||||
|
|
||||||
import os
|
from flask_login import login_required
|
||||||
|
from flask_oidc import OpenIDConnect
|
||||||
login_manager = LoginManager()
|
login_manager = LoginManager()
|
||||||
login_manager.init_app(app)
|
login_manager.init_app(app)
|
||||||
login_manager.login_view = "login"
|
login_manager.login_view = "login"
|
||||||
|
|
||||||
|
app.config.update({
|
||||||
|
'SECRET_KEY': 'u\x91\xcf\xfa\x0c\xb9\x95\xe3t\xba2K\x7f\xfd\xca\xa3\x9f\x90\x88\xb8\xee\xa4\xd6\xe4',
|
||||||
|
'TESTING': True,
|
||||||
|
'DEBUG': True,
|
||||||
|
'OIDC_CLIENT_SECRETS': 'client_secrets.json',
|
||||||
|
'OIDC_ID_TOKEN_COOKIE_SECURE': False,
|
||||||
|
'OIDC_REQUIRE_VERIFIED_EMAIL': False,
|
||||||
|
'OIDC_VALID_ISSUERS': ['https://sso.santantoni.duckdns.org:8080/auth/realms/master'],
|
||||||
|
'OIDC_OPENID_REALM': 'https://sso.santantoni.duckdns.org/isard-sso-admin/custom_callback',
|
||||||
|
'OVERWRITE_REDIRECT_URI': 'https://sso.santantoni.duckdns.org/isard-sso-admin/custom_callback',
|
||||||
|
})
|
||||||
|
# 'OVERWRITE_REDIRECT_URI': 'https://sso.santantoni.duckdns.org/isard-sso-admin/custom_callback',
|
||||||
|
# 'OIDC_CALLBACK_ROUTE': '/isard-sso-admin/custom_callback'
|
||||||
|
oidc = OpenIDConnect(app)
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
# login_manager = LoginManager()
|
||||||
|
# login_manager.init_app(app)
|
||||||
|
login_manager.login_view = "login"
|
||||||
|
|
||||||
|
|
||||||
ram_users={
|
ram_users={
|
||||||
os.environ["ADMINAPP_USER"]: {
|
os.environ["ADMINAPP_USER"]: {
|
||||||
'id': os.environ["ADMINAPP_USER"],
|
'id': os.environ["ADMINAPP_USER"],
|
||||||
|
|
|
@ -17,6 +17,36 @@ from pprint import pprint
|
||||||
# close_room, rooms, disconnect, send
|
# close_room, rooms, disconnect, send
|
||||||
# socketio = SocketIO(app)
|
# socketio = SocketIO(app)
|
||||||
|
|
||||||
|
# from flask_login import login_required
|
||||||
|
# from flask_oidc import OpenIDConnect
|
||||||
|
|
||||||
|
from ..auth.authentication import oidc
|
||||||
|
|
||||||
|
@app.route('/isard-sso-admin/custom_callback')
|
||||||
|
@oidc.custom_callback
|
||||||
|
def callback(data):
|
||||||
|
return 'Hello. You submitted %s' % data
|
||||||
|
|
||||||
|
@app.route('/isard-sso-admin/private')
|
||||||
|
@oidc.require_login
|
||||||
|
def hello_me():
|
||||||
|
info = oidc.user_getinfo(['email', 'openid_id'])
|
||||||
|
return ('Hello, %s (%s)! <a href="/">Return</a>' %
|
||||||
|
(info.get('email'), info.get('openid_id')))
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/isard-sso-admin/api')
|
||||||
|
@oidc.accept_token(True, ['openid'])
|
||||||
|
def hello_api():
|
||||||
|
return json.dumps({'hello': 'Welcome %s' % g.oidc_token_info['sub']})
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/isard-sso-admin/logout')
|
||||||
|
def logoutoidc():
|
||||||
|
oidc.logout()
|
||||||
|
return 'Hi, you have been logged out! <a href="/">Return</a>'
|
||||||
|
|
||||||
|
|
||||||
@app.route('/isard-sso-admin/resync')
|
@app.route('/isard-sso-admin/resync')
|
||||||
@login_required
|
@login_required
|
||||||
def resync():
|
def resync():
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"web": {
|
||||||
|
"auth_uri": "https://sso.santantoni.duckdns.org/auth/realms/master/protocol/openid-connect/auth",
|
||||||
|
"client_id": "adminapp",
|
||||||
|
"client_secret": "8a9e5a2e-3be9-43e3-9c47-1796f0d5ab72",
|
||||||
|
"redirect_uris": [
|
||||||
|
"https://sso.santantoni.duckdns.org/isard-sso-admin/custom_callback"
|
||||||
|
],
|
||||||
|
"userinfo_uri": "https://sso.santantoni.duckdns.org/auth/realms/master/protocol/openid-connect/userinfo",
|
||||||
|
"token_uri": "https://sso.santantoni.duckdns.org/auth/realms/master/protocol/openid-connect/token",
|
||||||
|
"token_introspection_uri": "https://sso.santantoni.duckdns.org/auth/realms/master/protocol/openid-connect/token/introspect"
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,7 +13,10 @@ from admin import app
|
||||||
|
|
||||||
# from admin.views.Socketio import *
|
# from admin.views.Socketio import *
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app.socketio = SocketIO(app)
|
app.socketio = SocketIO(app)
|
||||||
|
|
||||||
# app.socketio.init_app(app, cors_allowed_origins="*")
|
# app.socketio.init_app(app, cors_allowed_origins="*")
|
||||||
@app.socketio.on('connect', namespace='/isard-sso-admin/sio')
|
@app.socketio.on('connect', namespace='/isard-sso-admin/sio')
|
||||||
def socketio_connect():
|
def socketio_connect():
|
||||||
|
@ -33,4 +36,6 @@ def socketio_domains_disconnect():
|
||||||
None
|
None
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.socketio.run(app,host='0.0.0.0', port=9000, debug=False, cors_allowed_origins="*", async_mode="threading") #, logger=logger, engineio_logger=engineio_logger)
|
app.socketio.run(app,host='0.0.0.0', port=9000, debug=False, cors_allowed_origins="*", ssl_context='adhoc', async_mode="threading") #, logger=logger, engineio_logger=engineio_logger)
|
||||||
|
|
||||||
|
# /usr/lib/python3.8/site-packages/certifi
|
Loading…
Reference in New Issue