INTRODUCTION
This guide is for developers who want to programmatically manage users in Dualog Identity or integrate applications with Dualog's authentication services.
Dualog provides:
- SCIM API - For user provisioning and management
- OIDC - For application authentication (cloud and ship-side)
- SAML - For application authentication (cloud only)
SCIM API FOR USER MANAGEMENT
The Dualog User API allows you to create, read, update, and delete user accounts programmatically using the SCIM 2.0 standard.
API Base URL
https://apps.dualog.com/api/cd-customer-scim-public-api/api/v2Authentication
The API uses OAuth 2.0 client credentials for authentication.
Step 1: Create an API Client
- Log in to
https://apps.dualog.com - Go to the Organization page
- Create an API Client with the
crew_importscope
Client Types:
- User-level client: Access to all organizations your user has access to
- Organization-level client: Restricted to that specific organization
Step 2: Obtain an Access Token
Request a token using client credentials:
POST https://apps.dualog.com/auth/connect/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <Base64(ClientId:ClientSecret)>
grant_type=client_credentials&scope=crew_importResponse:
{
"access_token": "<access_token>",
"expires_in": 86400,
"token_type": "Bearer",
"scope": "crew_import"
}The token is valid for 24 hours.
Step 3: Use the Access Token
Include the token in the Authorization header for all API requests:
Authorization: Bearer <access_token>User Schema
The API uses the SCIM 2.0 schema with maritime-specific extensions.
Core Fields
| Field | Type | Required | Description |
|---|---|---|---|
userName |
string | Yes | User's email address (becomes login) |
name.givenName |
string | Yes | First name |
name.familyName |
string | Yes | Surname |
displayName |
string | No | Display name |
active |
boolean | No | Account active status |
password |
string | No | Initial password (must meet policy) |
emails |
array | No | Additional email addresses |
Maritime Extension Fields
Schema: urn:ietf:params:scim:schemas:extension:seafarer:2.0:User:crew
| Field | Type | Required | Description |
|---|---|---|---|
rank |
string | No | User's rank |
department |
string | No | User's department |
shipName |
string | No | Assigned ship name |
shipImo |
string | No | Ship IMO number |
contractStartDate |
string | Conditional | Start date (yyyy-MM-dd), required if shipImo provided |
contractEndDate |
string | No | End date (yyyy-MM-dd) |
API Endpoints
List Users
GET /api/v2/UsersPagination:
GET /api/v2/Users?startIndex=1&count=10Get Single User
GET /api/v2/Users/{userId}Create User
POST /api/v2/Users
Content-Type: application/jsonUpdate User
PUT /api/v2/Users/{userId}
Content-Type: application/jsonDelete User
DELETE /api/v2/Users/{userId}Response: 204 No Content
Error Handling
| Code | Meaning |
|---|---|
| 200 | Success (update) |
| 201 | Created (new user) |
| 204 | No Content (delete) |
| 400 | Bad Request (invalid data) |
| 401 | Unauthorized (invalid/missing token) |
| 403 | Forbidden (insufficient permissions) |
| 404 | Not Found (user doesn't exist) |
| 500 | Internal Server Error |
Swagger Documentation
Interactive API documentation is available at:https://apps.dualog.com/api/cd-customer-scim-public-api/index.html
OIDC INTEGRATION
For integrating applications with Dualog Identity for Single Sign-On.
Cloud OIDC Configuration
Discovery Document:
https://crew.dualog.com/auth/.well-known/openid-configurationKey Endpoints
| Endpoint | URL |
|---|---|
| Issuer | https://crew.dualog.com/auth |
| Authorization | https://crew.dualog.com/auth/connect/authorize |
| Token | https://crew.dualog.com/auth/connect/token |
| User Info | https://crew.dualog.com/auth/connect/userinfo |
| JWKS | https://crew.dualog.com/auth/.well-known/openid-configuration/jwks |
| End Session | https://crew.dualog.com/auth/connect/endsession |
Supported Grant Types
-
authorization_code- Recommended for web applications -
client_credentials- For machine-to-machine communication -
refresh_token- For refreshing access tokens -
password- Resource owner password (legacy) -
implicit- For SPAs (use PKCE instead when possible)
Supported Scopes
| Scope | Description |
|---|---|
openid |
Required for OIDC |
profile |
User profile information |
email |
User email address |
offline_access |
Obtain refresh tokens |
crew.public |
Maritime-specific claims |
Claims
Standard OIDC claims plus:
-
rank- User's rank (always included)
Ship-Side OIDC
For ship-side applications, the endpoints follow the same structure as cloud OIDC but use the local identity server address on the vessel. The specific address varies by vessel configuration (may be hostname or IP-based). Contact your IT administrator for the ship-side server address.
SAML INTEGRATION
For cloud applications that require SAML 2.0.
SAML Metadata
Metadata URL:
https://crew.dualog.com/auth/saml/metadataEntity ID:
https://crew.dualog.com/authEndpoints
| Binding | SSO URL |
|---|---|
| HTTP-Redirect | https://crew.dualog.com/auth/saml/sso |
| HTTP-POST | https://crew.dualog.com/auth/saml/sso |
Supported Name ID Formats
- Unspecified
- Transient
- Persistent
- Email Address
REGISTERING YOUR APPLICATION
To integrate your application with Dualog Identity:
- Log in to
https://apps.dualog.com - Navigate to Integrations
- Click New Integration
- Choose Cloud or On-premises
- Choose OIDC or SAML
- Configure the required fields
- Save to receive your Client ID and Secret
See Setting Up Cloud Integrations or Setting Up Ship Integrations for detailed steps.
SUPPORT
For API support or questions:
- Check the Swagger documentation
- Contact Dualog support with correlation IDs for specific errors
Comments
Please sign in to leave a comment.