I understand that, but the spec says the scopes are required, so effectively, 
you have to enable them. I’d argue that the UI shouldn’t give you the choice 
and enable all by default.

If you want to have both options, you can use the same requirements, once with 
the scopes and once without.

 

 

 

From: <[email protected]> on behalf of Ron Dagostino 
<[email protected]>
Reply-To: "[email protected]" 
<[email protected]>
Date: Thursday, 22 December 2016 at 18:09
To: Swagger <[email protected]>
Subject: Re: Swagger-UI Authorize Button requires at least 1 scope?

 

Perhaps I should be more specific.  Given this:

securityDefinitions:
  bearerToken:
    type: oauth2
    description: An OAuth 2 bearer token
    flow: application
    tokenUrl: https://example.com/whatever
    scopes: {}

The "Authorize" button will retrieve an empty token.  All of my endpoints 
appear like this, of course:

security:
  - bearerToken: []
:
Now if I add a new endpoint, and that endpoint happens to require a particular 
scope, I have to adjust my securityDefinitions:

securityDefinitions:
  bearerToken:
    type: oauth2
    description: An OAuth 2 bearer token
    flow: application
    tokenUrl: https://example.com/whatever
    scopes: {scope1: scope1 description}

And now I have my new endpoint:

security:
  - bearerToken: [scope1]

All of a sudden the "Authorize" button will not do anything unless I enable the 
"scope1" checkbox.

This feels like a bug to me -- I should still be able to authenticate and get 
an empty token if I want to.

Ron

On Thursday, December 22, 2016 at 5:36:08 PM UTC-5, Ron Dagostino wrote: 

I've confirmed that the "Authorize" Button will in fact authorize and retrieve 
an empty token if my yaml definition declares no scopes (in other words, all 
endpoints are available to authenticated users and don't require any particular 
scope).

 

Ron


On Dec 22, 2016, at 4:38 PM, Ron Ratovsky <[email protected]> wrote:

It’s tricky.

 

>From the spec - 
>https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#securityRequirementObject:

 

“Each name must correspond to a security scheme which is declared in the 
Security Definitions. If the security scheme is of type "oauth2", then the 
value is a list of scope names required for the execution. For other security 
scheme types, the array MUST be empty.”

 

Meaning, the scopes are not optional…

 

 

 

 

From: <[email protected]> on behalf of Ron Dagostino 
<[email protected]>
Reply-To: "[email protected]" 
<[email protected]>
Date: Thursday, 22 December 2016 at 13:02
To: Swagger <[email protected]>
Subject: Swagger-UI Authorize Button requires at least 1 scope?

 

Hi folks.  Swagger-UI provides an "Authorize" button at the top of the page, 
and the resulting dialog requires at least 1 scope be enabled before the UI 
will attempt to get a token (at least with the application/client_credentials 
flow and the recently-merged password flow; I haven't tried other flows).  Yet 
if there are endpoints that require authentication but no particular scope 
(i.e. they are open to any authenticated client regardless of the token scope) 
then it becomes necessary to authorize via the little icon that appears next to 
actual endpoint further down in the UI -- the "Authorize" button won't let me 
get empty tokens.  It seems reasonable to me that I might want to request an 
empty token via the "Authorize" button at the top of the UI.  Does this seem 
reasonable to others, and this should be created as an issue, or am I missing 
something?

Ron

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to a topic in the Google 
Groups "Swagger" group.
To unsubscribe from this topic, visit 
https://groups.google.com/d/topic/swagger-swaggersocket/XY40k5NPlHg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to 
[email protected].
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to