Roles
Overview
Vendors
User Experience
User Activities
Authentication
Offline Support
Technical Overview
Prerequisites
- The list of roles per user can be provided by a RESTful API service or by Microsoft Graph API, which returns a list of roles in JSON format.
- For Microsoft Graph API vendor, you need to configure Microsoft Azure. For more information, see Configuring Microsoft Azure (Graph) for the Roles Product Integration.
Required Format
RESTful API Vendor
{
"roles": [
"student",
"lecturer",
"other"
]
}
Microsoft Graph API Vendor
The list of roles provided by the Microsoft Graph API will be acquired by using the following Microsoft Graph API services:
- https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token (in order to generate the token that will be used in the second service)
- https://graph.microsoft.com/v1.0/users/<username>/memberOf (in order to get the response which contains the roles list from above)
adAS SSO Vendor
[
{
"roles": [
"role1"
]
}
]
Okta Groups
The following is the required JSON format for Okta Groups vendor:
[
{
"id": "{id}",
"created": "{date time}",
"lastUpdated": "{date time}",
"lastMembershipUpdated": "{date time}",
"objectClass": [
"okta:user_group"
],
"type": "{type}",
"profile": {
"name": "Everyone", // 'name' attribute in this specific hierarchy is the only attribute we expect
"description": "All users in your organization"
},
"_links": {
"logo": [
{
"name": "{name}",
"href": {url},
"type": "i{mage/png}"
},
],
"users": {
"href": {url}
},
"apps": {
"href": {url}
}
}
}
]
For more info about Okta Groups API, refer to https://developer.okta.com/docs/reference/api/groups/#list-groups.
Technical Flow Diagram
Configuration
To use the Roles product integration, you must configure the following components:
- Customer roles and App roles according to Managing App Roles.
- A Roles product integration instance as described below.
- To be done by Ex Libris – Application Server, Authentication Access, and Profile Registration Authentication.
Configurations for RESTful API, adAS SSO, or Okta Vendors
Configuration Option | Description | Mandatory | Data Type | Default | Example |
---|---|---|---|---|---|
Enable Product Integration | Select to enable the product integration on the user's campusM app. | No | |||
Product Integration Description | A description of the PI for internal use | Yes | String | ||
Vendor Name | Select 'REST API' or 'adAS SSO' | Yes | Drop down list | ||
API Configuration | |||||
URL to retrieve the information | URL to retrieve the roles list | Yes | URL address | none | https://yrv80x694e.execute-api.eu-we.../Prod/rolesync |
Response Content Type | The content type of the response; JSON, XML etc. For Roles PI should be JSON. | No | Drop down list | JSON | |
URL Query Parameters | Parameters on the URL | No | An array of query parameter object information | No query parameters | |
URL Path Parameters | Parameters on the URL | No | An array of path parameter object information | No path parameters | |
API Authentication | |||||
Authentication Type | Select one of the following options:
|
Yes | Drop-down list |
Configurations for Microsoft Graph API Vendor
The following table describes the configuration options available for the Microsoft Graph API vendor:
Configuration Option | Description | Mandatory | Data Type | Default | Example |
---|---|---|---|---|---|
Enable Product Integration | Select to enable the product integration on the user's campusM app. | No | |||
Product Integration Description | A description of the product integration for internal use | Yes | |||
Vendor Name | Select MS Graph APIs | Yes | |||
Microsoft Graph APIs Configuration | |||||
Delimiter | The separator between the different roles returned in the displayName field. For example, in the following response, the delimiter is a hyphen (-):
displayName: US-DC-FAC
|
No | One of the following:
|
No delimiter | |
Tenant | The tenant value in the path of the request can be used to control who can sign into the application. The allowed values are common for both Microsoft accounts and work or school accounts, organizations for work or school accounts only, consumers for Microsoft accounts only, and tenant identifiers such as the tenant ID | Yes | String | ||
Client ID | The Application ID that the registration portal assigned your app | Yes | String | 6731..-..6914391e | |
Client Secret | The application secret that you created in the app registration portal for your app. It should not be used in a native app, because client secrets cannot be reliably stored on devices. It is required for Web apps and Web APIs that have the ability to store the client secret securely on the server side | Yes | String | ||
Grant Type | Must be client_credentials for the authorization code flow | Yes | String | client_credentials | |
Scope | The scopes requested in this leg must be equivalent to or a subset of the scopes requested in the first (authorization) leg. If the scopes specified in this request span multiple resource servers, then the v2.0 endpoint returns a token for the resource specified in the first scope | Yes | String | https://graph.microsoft.com/.default | |
User Input Identifier | |||||
Parameter Input Option |
User input identifier for MemberOf API |
Yes | Input options | username | |
Constant Value | Enter the constant value |
Updating User Roles via campusM API
When a user role has changed, the institution needs to call the campusM setRolesUpdated API service. The following steps describe the update process:
- The user is currently logged in to the app.
- User roles have changed—for example, a new role was added, or an existing role removed.
- Institution: Calls the campusM setRolesUpdated API, including the user email address.
- The user launches the app.https://developers.exlibrisgroup.com/campusm/apis/refresh-user-roles/
- The app calls the startup service on campusM, which informs the app that the roles of this user require an update.
- The app calls the login service on the campusM Connect Layer, triggering the institution Roles API to retrieve the user’s new roles.
- The app presents the content and tiles according to the new user roles.
Sample SetRolesUpdated Service Request
https://campusm_client:<password>@<app URL>/axis2v3/services/CampusMService
e.g. - https://campusm_client:<password>@demo-na.campusm.exlibrisgroup.com/axis2v3/services/CampusMService
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cam="http://campusm.gw.com/campusm"> <soapenv:Header/> <soapenv:Body> <cam:setRolesUpdatedRequest> <cam:orgCode>123</cam:orgCode> <cam:password>xyz</cam:password> <!--Optional:--> <cam:emails> <!--1 or more repetitions:--> <cam:email>user@campusM.com</cam:email> </cam:emails> </cam:setRolesUpdatedRequest> </soapenv:Body> </soapenv:Envelope>