Skip to content
This repository was archived by the owner on Apr 27, 2021. It is now read-only.

API Reference Resources

vsts build edited this page Mar 1, 2018 · 45 revisions

Resources

Clients

Operations for managing clients

Registers a new client

POST /v1/Clients
Parameters
Type Name Description Schema
Body Client
required
The client to register ClientApiModel
Responses
HTTP Code Description Schema
201 Created ClientApiModel
400 Client object in body failed validation Error
403 Client does not have access No Content
409 Client with specified id already exists Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write,fabric/authorization.manageclients

Gets all registered clients

GET /v1/Clients
Responses
HTTP Code Description Schema
200 OK ClientApiModel
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read,fabric/authorization.manageclients

Gets a single client

GET /v1/Clients/{clientid}
Parameters
Type Name Description Schema
Path clientid
required
ClientId to use for the request integer
Responses
HTTP Code Description Schema
200 Client found ClientApiModel
403 Client does not have access No Content
404 Client with specified id was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read,fabric/authorization.manageclients

Deletes a client

DELETE /v1/Clients/{clientid}
Parameters
Type Name Description Schema
Path clientid
required
ClientId to use for the request integer
Responses
HTTP Code Description Schema
204 Client deleted No Content
403 Client does not have access No Content
404 Client with specified id was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write,fabric/authorization.manageclients

Fabric.Identity Search

Operations for searching Fabric.Identity

Searches for users and groups by client ID and other optional parameters.

GET /v1/members
Parameters
Type Name Description Schema
Query client_id
required
Client ID string
Query filter
optional
Text filter string
Query page_number
optional
Page number integer
Query page_size
optional
Page size integer
Query sort_direction
optional
Sort direction string
Query sort_key
optional
Sort key string
Responses
HTTP Code Description Schema
200 OK < MemberSearchResponse > array
206 Partial success (e.g., results were found in Fabric.Authorization but the call out to Fabric.Identity failed). Properties populated by Fabric.Identity data are FirstName, MiddleName, LastName, and LastLoginDateTimeUtc. < MemberSearchResponse > array
400 Group already exists Error
403 Client does not have the required scopes to read data in Fabric.Authorization (fabric/authorization.read). No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Groups

Operations for managing groups

Adds a new group

POST /v1/groups
Description

GroupSource can be either "Custom" for creating custom groups in Fabric or the displayName of the 3rd party identity provider if the group is from an external Idp. If groupSource is empty, it will be defaulted to the group source defined in the appsettings.json

Parameters
Type Name Description Schema
Body Group
required
The group to add GroupRoleApiModel
Responses
HTTP Code Description Schema
201 Created GroupRoleApiModel
403 Client does not have access No Content
409 Group already exists Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read,fabric/authorization.write

Updates a list of groups, useful for syncing 3rd party ID Provider groups with Fabric.Authorization groups.

POST /v1/groups/UpdateGroups
Parameters
Type Name Description Schema
Body Group
required
The groups to update < GroupRoleApiModel > array
Responses
HTTP Code Description Schema
204 Groups updated No Content
403 Client does not have access No Content
409 Group already exists Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets a group by name

GET /v1/groups/{groupName}
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Responses
HTTP Code Description Schema
200 OK GroupRoleApiModel
403 Client does not have access No Content
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a group

DELETE /v1/groups/{groupName}
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Responses
HTTP Code Description Schema
204 Group deleted No Content
403 Client does not have access No Content
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Adds a role to a group

POST /v1/groups/{groupName}/roles
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body Id
required
Role ID (GUID) string
Responses
HTTP Code Description Schema
201 Created GroupRoleApiModel
400 Role Id was missing. Error
403 Client does not have access No Content
404 Group with specified name was not found or the role was not found Error
409 Role with specified name already exists for the group Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets roles for a group by group name

GET /v1/groups/{groupName}/roles
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Query grain
optional
grain string
Query securableItem
optional
securable item string
Responses
HTTP Code Description Schema
200 OK GroupRoleApiModel
403 Client does not have access No Content
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a role from a group

DELETE /v1/groups/{groupName}/roles
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body Id
required
Role ID (GUID) string
Responses
HTTP Code Description Schema
200 Updated group entity including any mapped roles GroupRoleApiModel
403 Client does not have access Error
404 Group with specified name was not found or the role was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Adds a user to a group.

POST /v1/groups/{groupName}/users
Description
  1. This operation is only valid for custom groups. 2) The user specified by SubjectId parameter will be added silently if not found.
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body identityProvider
required
3rd party identity provider (IdP) of the user string
Body subjectId
required
Subject ID of the user string
Responses
HTTP Code Description Schema
201 Created GroupUserApiModel
400 Subject Id or Identity Provider were missing or group is not a custom group Error
403 Client does not have access Error
404 Group with specified name was not found Error
409 User is already a member of the group Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets users for a custom group by group name

GET /v1/groups/{groupName}/users
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Responses
HTTP Code Description Schema
200 OK GroupUserApiModel
403 Client does not have access Error
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a user from a group

DELETE /v1/groups/{groupName}/users
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body identityProvider
required
3rd party identity provider (IdP) of the user string
Body subjectId
required
Subject ID of the user string
Responses
HTTP Code Description Schema
200 Updated group entity including any mapped users GroupUserApiModel
403 Client does not have access Error
404 Group with specified name was not found or the user was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Permissions

Operations for managing permissions

Adds a new permissions

POST /v1/permissions
Parameters
Type Name Description Schema
Body Permission
required
The permission to add PermissionApiModel
Responses
HTTP Code Description Schema
201 Permission was created No Content
400 Permission data in body is invalid Error
403 Client does not have access No Content
409 Permission with the specified id already exists No Content
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Get permissions for a particular grain and securable item

GET /v1/permissions/{grain}/{securableItem}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 OK < PermissionApiModel > array
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Get permissions for a particular grain, securable item, and permission name

GET /v1/permissions/{grain}/{securableItem}/{permissionName}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path permissionName
required
The name of the permission string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 OK < PermissionApiModel > array
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Get a permission by permission id

GET /v1/permissions/{permissionId}
Parameters
Type Name Description Schema
Path permissionId
required
The id of the permission string
Responses
HTTP Code Description Schema
200 Permission was found PermissionApiModel
400 Permission id must be a Guid Error
403 Client does not have access No Content
404 Permission with the specified id was not found No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a permission

DELETE /v1/permissions/{permissionId}
Parameters
Type Name Description Schema
Path permissionId
required
The id of the permission string
Responses
HTTP Code Description Schema
204 Permission with the specified id was deleted No Content
400 Permission id must be a guid Error
403 Client does not have access No Content
404 Permission with specified id was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Roles

Operations for managing roles

Add a new role

POST /v1/roles
Parameters
Type Name Description Schema
Body Role
required
The role to add RoleApiModel
Responses
HTTP Code Description Schema
201 Created RoleApiModel
400 Role with specified id already exists or Role object in body failed validation Error
403 Client does not have access No Content
409 Role with specified id already exists Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Get roles associated with a securable item

GET /v1/roles/{grain}/{securableItem}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 OK No Content
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Get a role by role name

GET /v1/roles/{grain}/{securableItem}/{roleName}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path roleName
required
The name of the role string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 Role with specified name was found < RoleApiModel > array
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a role

DELETE /v1/roles/{roleId}
Parameters
Type Name Description Schema
Path roleId
required
The id of the role string
Responses
HTTP Code Description Schema
204 Role with the specified id was deleted No Content
400 Invalid roled id provided Error
403 Client does not have access No Content
404 Role with specified id was not found No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Add permissions to an existing role

POST /v1/roles/{roleId}/permissions
Parameters
Type Name Description Schema
Path roleId
required
The id of the role string
Body List of permissions
required
The list of permissions to add to the role < PermissionApiModel > array
Responses
HTTP Code Description Schema
201 Permission added to role RoleApiModel
400 Invalid role id, no permissions specified to add, incompatible permission provided, or permission id was not provided Error
403 Client does not have access No Content
404 Role not found or permission not found Error
409 Permission with the specified id already exists for the role Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Delete permissions from an existing role

DELETE /v1/roles/{roleId}/permissions
Parameters
Type Name Description Schema
Path roleId
required
The id of the role string
Body List of permissions
required
The list of permissions to add to the role < PermissionApiModel > array
Responses
HTTP Code Description Schema
201 Permission removed from role RoleApiModel
400 Invalid role id or no permissions specified to delete from role Error
403 Client does not have access No Content
404 Role not found or permission not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Securable Item

Operations for managing Securable Items

Gets the top level securable item by client id

GET /v1/SecurableItems
Responses
HTTP Code Description Schema
200 OK SecurableItemApiModel
403 Client does not have access No Content
404 The client was not found by client id No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Gets a securable item by client id and securable item id

GET /v1/SecurableItems/{securableItemId}
Parameters
Type Name Description Schema
Path securableItemId
required
The id of the securable item string
Responses
HTTP Code Description Schema
200 OK SecurableItemApiModel
400 The securable item id must be a guid Error
403 Client does not have access No Content
404 The client was not found by client id or the securable item was not found No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Users

Operations related to user permissions

Adds a new user.

POST /v1/user
Parameters
Type Name Description Schema
Body User
required
The user to add UserApiModel
Responses
HTTP Code Description Schema
201 Created UserApiModel
400 User object in body failed validation Error
403 User does not have access No Content
409 User with specified IdentityProvider and Subject already exists Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets permissions for currently authenticated user

GET /v1/user/permissions
Responses
HTTP Code Description Schema
200 OK UserPermissionsApiModel
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Gets custom groups for a user

GET /v1/user/{identityProvider}/{subjectId}/groups
Parameters
Type Name Description Schema
Path subjectId
required
Subject ID (from external identity provider) string
Responses
HTTP Code Description Schema
200 List of strings representing group names in which the user belongs < string > array
403 Client does not have access No Content
404 User was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Adds granular permissions for a user, either to allow or deny

POST /v1/user/{identityProvider}/{subjectId}/permissions
Parameters
Type Name Description Schema
Path identityProvider
required
External identity provider name string
Path subjectId
required
Subject ID (from external identity provider) string
Body GranularPermissions
required
The permissions to add for the user. < PermissionApiModel > array
Responses
HTTP Code Description Schema
204 Granular permissions were added No Content
400 No permissions to add included in request. No Content
403 Client does not have access No Content
409 The permissions specified already exist either as duplicates or with a different permission action than the one specified or a permission is in the request as both allow and deny No Content
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.manageclients

Gets permissions for specified user. Note this will only retrieve 1) granular permissions and 2) permissions under roles mapped to Custom groups.

GET /v1/user/{identityProvider}/{subjectId}/permissions
Parameters
Type Name Description Schema
Path identityProvider
required
External identity provider name string
Path subjectId
required
Subject ID (from external identity provider) string
Responses
HTTP Code Description Schema
200 OK < ResolvedPermissionApiModel > array
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes granular permissions for a user

DELETE /v1/user/{identityProvider}/{subjectId}/permissions
Parameters
Type Name Description Schema
Path identityProvider
required
External identity provider name string
Path subjectId
required
Subject ID (from external identity provider) string
Body GranularPermissions
required
The permissions to delete from the user. < PermissionApiModel > array
Responses
HTTP Code Description Schema
204 The permissions were deleted No Content
400 No permissions were specified or the permissions specified do not exist or already exist with a different permission action. No Content
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.manageclients

Adds roles to an existing user.

POST /v1/user/{identityProvider}/{subjectId}/roles
Parameters
Type Name Description Schema
Body Roles
required
The roles to add < RoleApiModel > array
Responses
HTTP Code Description Schema
200 Roles added. UserApiModel
400 List of roles in body failed validation Error
403 User does not have access to add the specified roles. No Content
404 Specified user does not exist Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets the roles associated with a user

GET /v1/user/{identityProvider}/{subjectId}/roles
Parameters
Type Name Description Schema
Path identityProvider
required
External identity provider name string
Path subjectId
required
Subject ID (from external identity provider) string
Responses
HTTP Code Description Schema
200 List of roles representing the roles this user has been directly associated to. < RoleApiModel > array
403 Client does not have access No Content
404 User was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes roles from existing user.

DELETE /v1/user/{identityProvider}/{subjectId}/roles
Parameters
Type Name Description Schema
Body Roles
required
The roles to delete. < RoleApiModel > array
Responses
HTTP Code Description Schema
200 Roles deleted. UserApiModel
400 List of roles in body failed validation Error
403 User does not have access to add the specified roles. No Content
404 Specified user does not exist Error
415 Content-Type header was not included in request Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Clone this wiki locally