Scope Whitelisting

A scope is not always used for controlling access to a resource. You can also use it to simply mark an access token. There are scopes that cannot be associated to roles (e.g., openid, device_). Such scopes do not have to have roles associated with them. Skipping role validation for scopes is called scope whitelisting.

If you do not want a role validation for a scope in an API's request, add the scope as white_listed_scopes in the <APIM_HOME>/repository/conf/deployment.toml file and restart the server. It will be whitelisted. For example,

[apim.oauth_config]
white_listed_scopes = ["^device_.*", "openid", "some_random_scope"]

Next, invoke the Token API to get a token for the scope that you just whitelisted. For example,

curl -k -d  "grant_type=password&username=admin&password=admin&scope=some_random_scope" -H "Authorization: Basic WmRFUFBvZmZwYVFnR25ScG5iZldtcUtSS3IwYTpSaG5ocEVJYUVCMEN3T1FReWpiZTJwaDBzc1Vh" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token

Note that the issued token has the scope you requested. You get the token without any role validation as the scope is whitelisted.

{"scope":"some_random_scope","token_type":"bearer","expires_in":3600,"refresh_token":"59e6676db0addca46e68991e44f2b8b8","access_token":"48855d444db883171c347fa21ba77e8"}
Top