mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Add the ability to remove user sign in field #7603
Closed
opened 2025-12-29 20:25:56 +01:00 by adam
·
17 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
No Label
type: feature
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#7603
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @K4pper on GitHub (Feb 6, 2023).
NetBox version
v3.4.4
Feature type
New functionality
Proposed functionality
Netbox has the ability to use multiple SSO providers, but there is no way to completely disable the login form even if there are no local users on the Netbox instance.
Example:

This could pose an unnecessary way for attackers to brute force the application by spamming the login field, especially if the Netbox instance is run in the cloud.
Use case
By adding an option to disable the login form and only having the option to login using an SSO provider would decrease the attack surface for a malicious entity.
Database changes
N/A
External dependencies
N/A
@proudbro commented on GitHub (Feb 20, 2023):
I propose not to remove the authorization form, just simply hide it and leave available
@jeremystretch commented on GitHub (Feb 20, 2023):
What happens when the login form is disabled and the SSO provider becomes unavailable?
@K4pper commented on GitHub (Feb 20, 2023):
Just to clarify i am not proposing to have the login form hidden or removed automatically when SSO is configured.
What i am proposing is a setting, that you would manually enable to hide the login form.
Our instance of Netbox has no local users, so if the SSO provider goes down we wouldn't be able to access Netbox anyway. If the worst case scenario happens we would still be able to connect to the netbox instance and create a temporary local user.
Hope this answers the question (:
@jeremystretch commented on GitHub (Mar 16, 2023):
That doesn't address my concern. Should SSO become unavailable, no one will be able to authenticate to NetBox until an administrator logins into the server itself to make the configuration change and restart the service.
IMO "hiding" the local login form behind a dropdown or similar widget would be the preferred approach.
@SystemFiles commented on GitHub (Mar 16, 2023):
Hi @jeremystretch , I understand your concern and I agree that it could lock users out, but I also feel this is a risk that can be evaluated by users themselves. I think the ability to enable/disable the regular login field should be possible. This would be done at users discretion. In my opinion, your concerns can be addressed primarily by using sane defaults.
@Kerwood commented on GitHub (Mar 16, 2023):
I agree.
You should be able to disable the login form. The risk should be evaluated by the user.
We don't have any local users either on our instance and if our identity provider is down, we've got bigger issues than not being able to login to Netbox.
Or you can always just enable the login form again if needed, in the settings.
Also it would stop annoying brute force attacks.
@jeremystretch commented on GitHub (Mar 16, 2023):
What is your justification for removing the login form entirely as opposed to hiding it?
@Kerwood commented on GitHub (Mar 16, 2023):
Unnecessary and annoying brute force attacks on the login form.
@jeremystretch commented on GitHub (Mar 16, 2023):
It being unnecessary for you is not reason enough to preclude making it available for someone else. And there are plenty of other best practices one can follow to mitigate brute force attacks.
@Kerwood commented on GitHub (Mar 16, 2023):
What is your justification for not letting the user make the decision if the login form should be showed or not ?
@jeremystretch commented on GitHub (Mar 16, 2023):
As I've said, ensuring that the local login form is always available ensures that a backup authentication path exists in the event the remote authentication provided becomes inaccessible.
@Kerwood commented on GitHub (Mar 16, 2023):
I am not sure we are on the same page here...
No one is proposing that the login form should be automatically removed if SSO is enabled. The login form can be available by default, just as it is now. No one will know the difference.
We just want the option to disable it in the settings.
@ssza commented on GitHub (Mar 17, 2023):
In my opinion the local login form should always be available, but in the case of SSO enabled, it should be hidden behind a dropdown menu
@K4pper commented on GitHub (Mar 18, 2023):
@jeremystretch
You mention that users wouldn't be able to login to netbox if the current SSO provider is down and the local login form is not available, but as @SystemFiles said why can't the individual administrators make that decision for themselves? Escpecially if the default is to not hide the local login even when SSO is configured.
You mentioned when speaking with @Kerwood that it provides a backup authentication path even when the SSO provider is down, but that is only true if there are any local users on the netbox instance which in our case we do not have.
From what i can see everybody would be happy if there was an option to both hide the local authentication form behind a widget/dropdown but also give the option to hide it completely.
Sorry for sounding like a broken record, but i am trying to understand why this could pose a problem (:
@Andrei-Predoiu commented on GitHub (Mar 23, 2023):
For me, the whole idea is to be able to disable the more vulnerable standard login.
@SystemFiles commented on GitHub (Mar 24, 2023):
This! In many organizations it is standard security best practices to disable insecure login forms. Like others have stated as well, if an identity provider were to go down (let's say you're using Azure AD), you have much bigger problems than Netbox.
I think there may have been a miscommunication as to what is being requested. We simply want to have the option to disable the simple login form provided by the application.
If the only justification for keeping this login enabled always is to essentially have a breakglass account available, it sort of defeats the purpose of using a more secure login method since the less secure method will always be targeted first.
The default would obviously be to have the basic login form enabled, but by giving users the ability to disable it themselves, it allows them the flexibility to manage their own instance of Netbox the way that they see fit. In some organizations, this is preventing the use of the tool at all since it does not meet security requirements.
@jeremystretch commented on GitHub (Apr 10, 2023):
Thanks to everyone who has shared their thoughts on this proposal. After discussing with the other maintainers, we've decided that introducing an option to "collapse" the local login form makes sense, but we won't support disabling the view entirely, for the reasons I've cited above.
Anyone who wishes to disable local authentication can already accomplish this by disabling or removing all locally-defined accounts. And if that, for some reason, is still not sufficient, NetBox is open source: Each administrator always has the option of modifying their HTTP server configuration and/or local code base to modify whatever functionality they desire, and in doing so accept full responsibility for any consequent risk and maintenance burden.
If someone would like to submit a separate FR proposing a mechanism to hide the local login form behind an expandable UI component (complete with a specific proposed implementation), please do so.