Comment sécuriser le flacon panneau d'administration avec flacon de sécurité
Je suis à la recherche pour sécuriser l'API Web fait à l'aide de Fiole et intégré avec flask-admin
de fournir une interface d'administration. J'ai cherché et trouvé que le flacon-admin a un panneau d'administration à /admin
et, par défaut, n'importe qui peut avoir accès. Il ne prévoit pas de système d'authentification et complètement ouverte (sans sécurité) puisqu'ils n'ont pas à assumer ce qui est utilisé pour assurer la sécurité. Cette API doit être utilisée dans la production, donc nous n'avons pas d'ouvrir /admin
route pour tout le monde frappe dans l'url. L'authentification appropriée est nécessaire.
Dans views.py
je ne peux pas simplement mettre le /admin
route et de fournir l'authentification par le biais d'un décorateur que ce serait la sur-écriture de l'itinéraire existant déjà créé par flask-admin
de sorte que provoquerait une erreur.
En outre, la recherche montre qu'il existe deux modules flask-admin
et flask-security
. Je sais que flask-admin
a is_accessible
méthode pour fixer, mais il ne fournit pas beaucoup de fonctionnalités qui sont fournies par flask-security
.
Je n'ai pas trouvé de méthode pour fixer le point de fin de /admin
, en plus de tous les autres points à partir de /admin
comme /admin/<something>
.
Je suis à la recherche spécifiquement pour accomplir cette tâche avec flacon de sécurité. Si il n'est pas possible, s'il vous plaît suggérer des solutions de rechange.
PS: je sais que je peux verrouiller ngnix
lui-même, mais ce serait la dernière option. Si je peux avoir un système d'authentification par flask-security
ce serait bien.
current_user.is_authenticated()
. Le retour de ce (éventuellement combiné avec un certain type de rôle / la vérification de l'autorisation) dans votre is_accessible
mise en œuvre devrait vous donner la possibilité d'utiliser en Flacon de Sécurité de la protection au sein de Flacon-Admin.OriginalL'auteur Sanyam Khurana | 2015-06-27
Vous devez vous connecter pour publier un commentaire.
Vous devriez vérifier le En Flacon De Sécurité-Admin projet, je pense qu'il couvre assez clairement ce que vous cherchez.
Prises directement à partir du lien ci-dessus:
Le code est situé dans main.py et qu'il est clairement fait remarquer à expliquer comment reproduire le processus de sécurisation de la fiole-panneau d'admin à l'aide de flacon de sécurité.
Les plus élémentaires, question pour vous est la suivante (ligne 152-):
J'espère que cela est utile.
Merci de fournir cette. J'ai été chercher la réponse pendant une heure, et a finalement trouvé avec vous ici.
OriginalL'auteur RamiMac
Puisque c'est le premier résultat pour "flacon de sécurité secure admin" recherche google, et il n'y a pas de dehors-de-le-boîte de solution pour le moment, je pense que je peux contribuer.
Une semblable question a été posée sur le flacon-admin projet Liste Des Problèmes et un simple exemple d'utilisation de flacon de connexion et mogodb est fourni ici.
J'ai fait un exemple d'utilisation de SQLAchemy pour une base de données sqlite et en flacon de sécurité. Voir l'exemple de flacon d'application ci-dessous:
Veuillez consulter le flacon de sécurité docs pour en savoir comment personnaliser la page de connexion.
Espère que cette aide.
OriginalL'auteur guilhermerama
Il y a l'article sur la sécurité dans le Flacon-Admin de la documentation: http://flask-admin.readthedocs.io/en/latest/introduction/#authorization-permissions
flask-admin
et pasflask-security
. Je suis à la recherche précisément de le faire viaflask-security
, puisqu'elles offrent plus de fonctionnalités queflask-login
. Toute aide serait appréciée.href="https://stackoverflow.com/questions/46914054/access-control-for-flask-admin" title="contrôle d'accès pour flacon admin">stackoverflow.com/questions/46914054/...
La documentation est également complètement vers l'arrière.Vous ne devriez pas avoir à remplacer les modèles de sécurité pour étendre les modèles d'administrateur depuis des modèles de sécurité pour les admins et les non-admins...
OriginalL'auteur Joes
J'utilise @RamiMac de réponse pour tous les sous-points de vue, mais pour l'index (par défaut
/admin
), j'utilise cette méthode, ré-envelopper la méthode avec unadmin
rôle tenu de vue.Dans mon projet, cela va directement, après tout mon
Flask-Admin
code, qui est lui-même dans son propre script de démarrage,custom_flaskadmin.py
.OriginalL'auteur seaders