Skip to content

Commit 55e69ad

Browse files
Merge pull request #9 from AzureAD/doc-updates
Added Wiki reference in README and removed old references
2 parents 6402036 + 820d955 commit 55e69ad

11 files changed

+9
-90
lines changed

README.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ page_type: sample
33
languages:
44
- csharp
55
products:
6-
- dotnet
6+
- dotnetcore
77
description: SCIM provisioning reference code
88
urlFragment: "update-this-to-unique-url-stub"
99
---
@@ -23,6 +23,8 @@ Use this reference code to get started on building a [SCIM](https://docs.microso
2323
1. Basic requirements for CRUD operations on a user and group object (also known as resources in SCIM).
2424
2. Optional features such as filtering and pagination.
2525

26+
Use the repository **[Wiki](https://github.com/AzureAD/SCIMReferenceCode/wiki)** for guidance on how to use this reference.
27+
2628
> [!NOTE]
2729
> This code is intended to help you get started building your SCIM endpoint and is provided "AS IS." It is intended as a reference and there is no guarantee of it being actively maintained or supported.
2830
@@ -37,6 +39,7 @@ Use this reference code to get started on building a [SCIM](https://docs.microso
3739
|/ServiceProviderConfig|**Retrieve service provider's SCIM configuration**<br/>The SCIM features supported by each service provider can vary. (e.g. Service Provider A supports Patch operations while Service Provider B supports Patch Operations and Schema Discovery).|
3840

3941
## Getting Started
42+
4043
The `Microsoft.SystemForCrossDomainIdentityManagement` project contains the code base for building a SCIM API. The `Microsoft.SCIM.Sample` project is there as a sample for using the project. A step by step guide for starting up with the project can be found [here](docs/get-started.md)
4144

4245
## Navigating the reference code
@@ -49,18 +52,19 @@ This reference code was developed as a .Net core MVC web API for SCIM provisioni
4952
2. The **Controllers** folder contains:
5053
* The controllers for the various SCIM endpoints. Resource controllers include HTTP verbs to perform CRUD operations on the resource (GET, POST, PUT, PATCH, DELETE).
5154
* Controllers rely on services to perform the actions.
52-
3. The **Services** folder contains logic for actions relating to the way resources are queried and updated.
55+
3. The **Services** folder contains logic for actions relating to the way resources are queried and updated.
5356
* The service methods are exposed via the IProviderService interface.
5457
* The reference code has services to return users and groups.
5558
* The services are based on Entity Framework and DbContext is defined by the class ScimContext.
56-
3. The **Protocol** folder contains logic for actions relating to the way resources are returned according to the SCIM RFC such as:
59+
4. The **Protocol** folder contains logic for actions relating to the way resources are returned according to the SCIM RFC such as:
5760
* Returning multiple resources as a list.
5861
* Returning only specific resources based on a filter.
5962
* Turning a query into a list of linked lists of single filters.
6063
* Turning a PATCH request into an operation with attributes pertaining to the value path.
6164
* Defining the type of operation that can be used to apply changes to resource objects.
6265

6366
### Contents
67+
6468
| File/folder | Description |
6569
|-------------------|--------------------------------------------|
6670
| `ScimRefrenceAPI` | Sample source code. |
@@ -72,13 +76,15 @@ This reference code was developed as a .Net core MVC web API for SCIM provisioni
7276
| `LICENSE` | The license for the sample. |
7377

7478
## Common scenarios
79+
7580
|Scenario|How-to|
7681
|---|---|
7782
|Enable or disable authorization|**Steps**<br/>1. Navigate to the **UsersController.cs** or **GroupController.cs** files located in **ScimReferenceApi > Controllers**.<br/>2. Comment or uncomment out the authorize command.|
7883
|Add additional filterable attributes|**Steps**<br/>1. Navigate to the **FilterUsers.cs** or **FilterGroups.cs** files located in **ScimReferenceApi > Protocol**.<br/>2. Update the method to include the attributes that you would like to support filtering for. |
7984
|Support additional user resource extensions|**Steps**<br/>1. Copy the **EnterpriseUser.cs** file located in **ScimReferenceApi > Schemas**.<br/>2. Rename the class to your custom extension name (e.g. customExtensionName.cs)<br/>3. Update the schema to match the desired naming convention.<br/>4. Repeat steps 1 - 3 with the **EnterpriseAttributes.cs** file (located in ScimReferenceApi > Schemas > Attributes) and update it with the attributes that you need.|
8085

8186
## Authorization
87+
8288
The SCIM standard leaves authentication and authorization relatively open. You could use cookies, basic authentication, TLS client authentication, or any of the other methods listed [here](https://tools.ietf.org/html/rfc7644#section-2). You should take into consideration security and industry best practices when choosing an authentication/authorization method. Avoid insecure methods such as username and password in favor of more secure methods such as OAuth. Azure AD supports long-lived bearer tokens (for gallery and non-gallery applications) as well as the OAuth authorization grant (for applications published in the app gallery). This reference code allows you to either turn authorization off to simplify testing, generate a bearer token, or bring your own bearer token.
8389

8490
**Option 1**: Turn off authorization (this should only be used for testing)
@@ -98,7 +104,6 @@ The SCIM standard leaves authentication and authorization relatively open. You c
98104

99105
Provided below are test cases that you can use to ensure that your SCIM endpoint is compliant with the SCIM RFC.
100106

101-
102107
## Contributing to the reference code
103108

104109
This project welcomes contributions and suggestions! Like other open source contributions, you will need to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

docs/Screenshots/CloneLinkVS-2.png

-15.6 KB
Binary file not shown.

docs/Screenshots/CloneLinkVS.png

-4.49 KB
Binary file not shown.

docs/Screenshots/CloneLinkVSO.png

-15.7 KB
Binary file not shown.

docs/Screenshots/CloudPublish.png

-21.1 KB
Binary file not shown.

docs/Screenshots/CloudPublish2.png

-18.9 KB
Binary file not shown.

docs/Screenshots/CloudPublish3.png

-20.2 KB
Binary file not shown.

docs/Screenshots/Postman.png

-26.1 KB
Binary file not shown.

docs/Screenshots/Postman2.png

-26.2 KB
Binary file not shown.

docs/Screenshots/SolutionExplorer.png

-16.7 KB
Binary file not shown.

0 commit comments

Comments
 (0)