URL Authorization

Out-of-the-box, RS Gateway supports Create, Read, Update, and Delete authentication (CRUD-based authorization) using CRUD-based permissions on the RS Gateway APIs.

For example, to call any of the POST APIs (Create) you must have the permission MTX_ROLE_RSG_CREATE. With this role, you can call any POST API.

URL authorization requires an authenticated identity. The authentication credential determines whether a user is allowed to access restricted resources. RS Gateway attempts to match users to a role based on the credential, and either maps the user to permitted roles or returns a not authorized value that prevents the user from being mapped to any role.

There are two files in which you can set URL permissions and each file sets unique permissions. The rsgateway_extensions.yaml file operates on named REST services, such as device_purchase_offer, and applies to all URLs (XML, JSON, OpenAPI) that implement those named services. For example, the device_purchase_offer service has POST bindings for three URLs. Any roles that you specify must be present to use any of these calls:
  • /rsgateway/data/v3/device/{oid}/offer
  • /rsgateway/data/json/device/{oid}/offer
  • /rsgateway/data/openapi/{oid}/offer

The rsgateway_permissions.yaml file operates on MATRIXX REST handlers, such as the REST handler to get the OpenAPI3 specification and the pricing cache REST services. This permissions file impacts individual URLs, so permissions can be different for OpenAPI3, JSON, or named REST services.

Important: URL authorization defined in rsgateway_permissions.yaml supersedes named service authorization defined in rsgateway_permissions.yaml. For example, it is possible to enable a custom role or existing role to call the subscriber creation services and then specifically disable the JSON-specific version of that call using URL authorization.

Before proceeding, you should decide the scope of the permissions that you want to define.