-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow the ability to deactivate the device authorization grant #1454
Comments
Can you please provide a detailed reason why you need to deactivate the device authorization endpoint? As an FYI, if there are no
Which other flows? Please be specific and provide a detailed reason. |
If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed. |
@jgrandja sorry for the late reply ... You're right that the flow is never processed if the I just thought it would be good to deactive the flow completly because (in my case) there is no need for a "device authorization flow" and I think (especally) the device flow is a more exotic case. |
Thanks for the explanation @ddittmar. I updated the issue title to be more specific. |
Do we need to support this feature? If so, can I work on this? |
@gregecho Thanks for your interest. It's a lower priority item at the moment but if you would like to work on it please go ahead. Just a heads up that I'm heading out for the holidays and will be back Jan 8. |
Disable device authorization grant by default. Such as, deviceAuthorizationEndpoint and deviceVerificationEndpoint
Disable device authorization grant by default. Such as, deviceAuthorizationEndpoint and deviceVerificationEndpoint
Provide a configuration "enableDeviceAuthorizationEndpoint" to support enable/disable device authorization grant. The default value of enableDeviceAuthorizationEndpoint is true for backward capability.
@ddittmar Just circling back to this and I have a temporary workaround until we come up with a solution. Assuming the @Bean
public BeanPostProcessor authorizationServerSecurityFilterChainPostProcessor() {
return new BeanPostProcessor() {
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (beanName.equals("authorizationServerSecurityFilterChain")) {
DefaultSecurityFilterChain securityFilterChain = (DefaultSecurityFilterChain)bean;
List<Filter> filters = new ArrayList<>(securityFilterChain.getFilters());
filters.removeIf((filter) ->
filter instanceof OAuth2DeviceAuthorizationEndpointFilter ||
filter instanceof OAuth2DeviceVerificationEndpointFilter);
return new DefaultSecurityFilterChain(
securityFilterChain.getRequestMatcher(), filters);
}
return bean;
}
};
} |
Hi @jgrandja , I thought I would add my 2c 🤓 While your Ie. like @ddittmar, I was also quite surprised that the auth-server not only advertises new endpoints and Example below from the unexpected changes to coverage for v1.1:
The In addition, the current approach also presents a challenge with regard to auto-configured clients that relies on the |
The "temporary workaround" I provided is not a complete sample configuration. Agreed, there is a disconnect between "advertised support vs. actual support", however, this can be customized in the OpenID Connect 1.0 Provider Configuration Endpoint using a custom
Sounds like you would also prefer that |
Hi @jgrandja, Thanks for taking the time to reply. Regarding
In my opinion, this approach is what I perceive as the source of the disconnect.
I think my surprise for the default enabled support for this particular flow, is because it's an addition to the OIDC core spec.
In my opinion the auth-server is a critical component, and hence must be as hardened as possible by default.
I only discovered these new endpoints, because I had Ie. I get that there might not be any obvious exploits for these endpoints now - but as time goes by, exploits will most-likely be discovered/introduced, if history is any indication. |
Great idea but that kind of capability would require a much bigger change and is not related to this issue on hand.
Agree on all points. But you didn't really answer my question. Other than the
No doubt. I'm confident we have only exposed what is needed to be exposed by default and fully adhere to secure-by-default principle. We might re-consider disabling |
Hi @jgrandja,
I'm glad we're agreeing 🙏
None pt. AFAIK
Thank you for that unambiguous statement, that's reassuring 💪
That would be much appreciated 🙏 |
@dlehammer I logged gh-1709 |
Expected Behavior
I would like to have the ability to deactivate certain flows (or endpoints).
Current Behavior
There is no way to deactivate certain flows (or endpoints)
Context
Specifically I want to deactivate the "device authorization flow". I don't want my server to have the ability.
The "OpenID Connect 1.0 Client Registration endpoint" is disabled by default. Why can't I deactive other endpoints?
The text was updated successfully, but these errors were encountered: