Security Management API

Security Management API

See the API documentation found in the Settings menu under System of Nexus Repository.

Content Selectors

The content selectors REST API endpoints can be used to create and manage content selectors:

LDAP

The LDAP endpoints can be used to accomplish the following:

SAML

When onboarding users to Nexus Repository, Administrators use this API to pre-provision SAML users, assign roles before first login, and reconcile roles with IdP groups upon login.

The SAML endpoints can be used to accomplish the following:

    GET /v1/security/saml/users
    ```

Requires `nexus:users:read` permission

- Returns the user by identifier.
GET /v1/security/saml/users/{id}
```

Requires nexus:users:read permission

    POST /v1/security/saml/users
    ```

Supports `?upsert=true` to replace attributes and `preProvisionedRoles` if the identifier exists.
    Requires `nexus:users:create` permission

- Replaces mutable fields.
PUT /v1/security/saml/users/{id}
```

Requires nexus:users:update permission

    DELETE /v1/security/saml/users/{id}
    ```

Requires `nexus:users:delete` permission

### Example Json Payload for Users

The following payload is returned by the GET requests. This structure is used when setting new users.
 {
  "userId": "jsmith",
  "firstName": "John",
  "lastName": "Smith",
  "emailAddress": "jsmith@sonatype.com",
  "status": "active",
  "roles": [\
    "Nexus Developer"\
  ]
}
```

OpenID Connect

The OpenID Connect is an authentication layer built on top of the OAuth 2.0 framework. The following REST API endpoints can be used to configure OpenID connect in self hosted Nexus Repository Pro editions:

    GET/service/rest/v1/security/oauth2
    ```

- Creates or updates the OIDC configuration.
PUT/service/rest/v1/security/oauth2
```
    DELETE/service/rest/v1/security/oauth2
    ```

## Privileges

The privileges REST API endpoints can be used to create and manage privileges:

- list the privileges
- create or modify privileges

## Roles

The roles REST API endpoints can be used to create and manage roles and their permissions within Nexus Repository:

- list the roles from any configured user source (internal or external)
- create or modify local roles and external role mappings

## Users

The users REST API endpoints can be used to create and manage users and their permissions within Nexus Repository:

- search for users available to NXRM whether they were defined locally or from a configured authentication source such as LDAP
- create or modify local users (self-hosted only)
- manage Nexus-internal roles assigned to a user in Nexus Repository Cloud
- reset an individual user token
- reset all user tokens in the system

### User Role Management

**Note**

This API is available in Nexus Repository Cloud only.

For external users, these endpoints update Nexus-internal role mappings only. External group-based roles are not changed.

The user role management endpoints can be used to accomplish the following:

- List the roles assigned to a user.
GET /v1/security/users/{userId}/roles
```

Requires nexus:users:read permission.

    PUT /v1/security/users/{userId}/roles
    ```

Requires `nexus:users:update` permission.

- Add one or more Nexus-internal roles to a user without replacing existing role assignments.
PUT /v1/security/users/{userId}/roles/add
```

Requires nexus:users:update permission.

    PUT /v1/security/users/{userId}/roles/remove
    ```

Requires `nexus:users:update` permission.

Role update requests use the following payload:
{
  "roles": ["nx-admin", "nx-repository-view-*-*-browse"]
}
```

Responses include the user ID, Nexus-internal roles, and external roles when applicable:

    {
      "userId": "jdoe@example.com",
      "roles": ["nx-admin", "nx-repository-view-*-*-browse"],
      "externalRoles": ["Sonatype Platform - Administrator"]
    }
    ```

### The user role management endpoints can return the following errors:

| Endpoint type | Status | Condition |
| --- | --- | --- |
| Role update requests (PUT) | 400 | The `roles` value is missing, or contains a role ID that does not exist. For add and remove requests, an empty `roles` value also returns this status. |
| All role management endpoints | 403 | The caller lacks the required permission. |
| All role management endpoints | 404 | The user was not found. |

**Note**

The users REST API can accept the following realm names associated with user tokens: `LdapRealm`, `Crowd`, `SamlRealm`, and `NexusAuthenticatingRealm`.

## User Sources

This endpoint provides a list of the available users sources in Nexus Repository. Other REST endpoints use these to indicate the source of certain types of entities (e.g., a user from an LDAP server).

## Search results

No results found