Description
I would like to add the scope
param to my dynamic registration request. But I realized that oic
does not allow it the way I'm trying. scope
param is being ignored.
As register
docstring states:
"""
Register the client at an OP.
:param url: The OPs registration endpoint
:param registration_token: Initial Access Token for registration endpoint
:param kwargs: parameters to the registration request
:return:
"""
so, example:
op_url = 'https://my-op-url.com'
client = Client(client_authn_method=CLIENT_AUTHN_METHOD)
op_data = client.provider_config(op_url)
registration_args = {'redirect_uris': redirect_uris,
'response_types': ['code'],
'grant_types': ['authorization_code'],
'application_type': 'web',
'client_name': 'My own RP',
'token_endpoint_auth_method': 'client_secret_post',
'scope': 'openid' }
reg_info = client.register(op_data['registration_endpoint'], **registration_args)
And the scope param is not sent in request.
I checked req.parameters()
, which gets me the following params:
['redirect_uris', 'response_types', 'grant_types', 'application_type', 'contacts', 'client_name',
'logo_uri', 'client_uri', 'policy_uri', 'tos_uri', 'jwks', 'jwks_uri', 'sector_identifier_uri',
'subject_type', 'id_token_signed_response_alg', 'id_token_encrypted_response_alg',
'id_token_encrypted_response_enc', 'userinfo_signed_response_alg',
'userinfo_encrypted_response_alg', 'userinfo_encrypted_response_enc',
'request_object_signing_alg', 'request_object_encryption_alg',
'request_object_encryption_enc', 'token_endpoint_auth_method',
'token_endpoint_auth_signing_alg', 'default_max_age', 'require_auth_time',
'default_acr_values', 'initiate_login_uri', 'request_uris', 'post_logout_redirect_uris',
'frontchannel_logout_uri', 'frontchannel_logout_session_required',
'backchannel_logout_uri', 'backchannel_logout_session_required']
It looks like any other param then not any of those, is ignored.
After researching OAuth docs, in RFC7591 Section 1.3 , I found the following:
The following client metadata fields are defined by this
specification. The implementation and use of all client metadata
fields is OPTIONAL, unless stated otherwise.
scope
String containing a space-separated list of scope values (as
described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client
can use when requesting access tokens. The semantics of values in
this list are service specific. If omitted, an authorization
server MAY register a client with a default set of scopes.