puiterwijk/flask-oidc

Add resource parameter to sent authorization URI

Opened this issue · 1 comments

I use flask-oidc with microsoft ADFS. I need to specify the resource parameter in the sent authorization URI like:

https://xyz.com/adfs/oauth2/authorize/?client_id=abc&redirect_uri=abc&scope=openid+profile+allatclaims&access_type=offline&response_type=code&state=123&resource=myres

Otherwise I don't get all needed user information inside of the token from ADFS. I do not exactly know why the ADFS of my company needs this resource parameter to return full user information as part of the token, but without the resource parameter, it doesn't work.
I couldn't find a config attribute in this package to specify this. Am I overlooking something? I am wondering wether this is interesting for a bigger audience.
In flask_oidc/__init__.py in the function redirect_to_auth_server, we could simply add this line in order to make it configurable:

if current_app.config['OIDC_RESOURCE_URI']: extra_params['resource'] = current_app.config['OIDC_RESOURCE_URI']

Is there a simpler way or would this be a good extension of the config?

The extra 'resource' query parameter required by ADFS can be specified in the app.config with the 'OIDC_EXTRA_REQUEST_AUTH_PARAMS' key.

app.config.update({
     ...
      'OIDC_EXTRA_REQUEST_AUTH_PARAMS': { 'resource': 'the-client-id' }
})