Skip to content

Commit 94fc8cb

Browse files
author
Ashkan Sirous
committed
Moving the get started out of readme
1 parent b4f4fb3 commit 94fc8cb

File tree

3 files changed

+87
-296
lines changed

3 files changed

+87
-296
lines changed

README.md

Lines changed: 1 addition & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -36,114 +36,8 @@ Use this reference code to get started on building a [SCIM](https://docs.microso
3636
|/ResourceTypes|**Retrieve supported resource types.**<br/>The number and types of resources supported by each service provider can vary. (e.g. Service Provider A supports users while Service Provider B supports users and groups).|
3737
|/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).|
3838

39-
<<<<<<< Updated upstream
40-
## Prerequisites
41-
42-
1. [Visual Studio 2019](https://visualstudio.microsoft.com/downloads/) (required)
43-
2. [.NET core 3.1 or above](https://dotnet.microsoft.com/download/dotnet-core/3.1) (required)
44-
3. [IIS](https://www.microsoft.com/download/details.aspx?id=48264) (required)
45-
4. [Postman](https://www.getpostman.com/downloads/) (optional)
46-
47-
## Clone the repo and build your SCIM endpoint
48-
49-
The solution is located in the ScimReferenceApi folder and can be built and run from VisualStudio locally or hosted in the cloud.
50-
51-
#### Steps to run the solution locally
52-
1. Click **"Clone or download"** and click **"Open in Desktop"** OR copy the link.
53-
54-
2. If you chose to copy the link, open Visual Studio and choose **"Clone or check out code**.
55-
56-
3. Use the copied link from Github to make a local copy of all files.
57-
58-
4. The Solution Explorer should open. Navigate to **Microsoft.SCIM.sln** view by double-clicking on it.
59-
60-
5. Click **IIS Express** to execute. The project will launch as a web page with the local host URL.
61-
62-
#### Steps to host the solution in the Azure
63-
1. Open Visual Studio and sign into the account that has access to your hosting resources.
64-
2. While in the **SCIMReference.sln** view, right-click the **SCIMReferenceApi** file in the Solution Explorer and select **"Publish"**.
65-
66-
![Cloud Publiosh](Screenshots/CloudPublish.png)
67-
68-
3. Click create profile. Make sure **App Service** and **"Create new"** is selected.
69-
70-
![Cloud Publish 2](Screenshots/CloudPublish2.png)
71-
72-
4. Walk through the options in the dialog.
73-
5. Rename the app to a desired name of your choice. The name is used for both the app name and the SCIM Endpoint URL.
74-
75-
![Cloud Publish 3](Screenshots/CloudPublish3.png)
76-
77-
6. Select the resource group and plan you would like to use and click **"Publish"**.
78-
79-
All the endpoints are are at the **{host}/scim/** directory and can be interacted with standard HTTP requests. The **/scim/** route can be modified in the **ControllerConstant.cs** file located in **AzureADProvisioningSCIMreference > ScimReferenceApi > Controllers**.
80-
81-
## Authorization
82-
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.
83-
84-
**Option 1**: Turn off authorization (this should only be used for testing)
85-
* Navigate to the **UsersController.cs** or **GroupController.cs** files located in **ScimReferenceApi > Controllers**.<br/>2. Comment out the authorize command.
86-
87-
**Option 2**: Get a bearer token signed by Microsoft security bearer (should only be used for testing, not in production)
88-
* Post to to the key endpoint with the string "SecureLogin" to retrieve a token. The token is valid for 120 minutes (the validity can be changed in the key controller).
89-
90-
**Option 3**: Bring your own token
91-
* **Option 3a**: Generate your own token that matches the specifications of the reference code.
92-
* By default the issuer, audience, and signer must be "Microsoft.Security.Bearer"
93-
* These are defaults to get started testing quickly. They should not be relied on in production.
94-
* **Option 3b**: Generate your own token and update the specifications of the reference code to match your token.
95-
* Change the specifications in the configure service section of the startup.cs class.
96-
* Specify the authorization settings you would like to validate.
97-
* Generate a token on your own that matches those specifications.
98-
99-
## Test your SCIM endpoint
100-
Provided below are test cases that you can use to ensure that your SCIM endpoint is compliant with the SCIM RFC.
101-
102-
#### Postman instructions
103-
1. Download the [Postman client](https://www.getpostman.com/downloads/).
104-
2. Import the Postman collection by copying the link [here](https://aka.ms/ProvisioningPostman) and pasting it into Postman as shown below:
105-
106-
![Postman](Screenshots/Postman.png)
107-
108-
3. Create a Postman environment for testing by specifying the following variables below:
109-
* **If running the project locally**:
110-
111-
|Variable|Value|
112-
|---|---|
113-
|Server|localhost|
114-
|Port|*The port you are using (e.g. **:44355**)|
115-
|API|scim|
116-
117-
* **If hosting the endpoint in Azure**:
118-
119-
|Variable|Value|
120-
|---|---|
121-
|Server|scimreferenceapi19.azurewebsites.net|
122-
|Port||
123-
|API|scim|
124-
125-
4. Turn off SSL Cert verification by navigating to **File > Settings > General > SSL certificate verification**.
126-
127-
![Postman2](Screenshots/Postman2.png)
128-
129-
5. Ensure that you are authorized to make requests to the endpoint:
130-
* **Option 1**: Turn off authorization for your endpoint (this is fine for testing purposes, but there must be some form of authorization for apps being used by customers in production).
131-
* **Option 2**: POST to key endpoint to retrieve a token.
132-
133-
6. Run your tests!
134-
135-
#### Tests executed
136-
137-
|Test|Description|
138-
|---|---|
139-
|CRUD operations on a Resource|Test that resources can be made, modified and deleted.|
140-
|Resource filtering|Test that specific resources are located and returned by filtered value (e.g. **?filters=DisplayName+eq+%22BobIsAmazing%22**).|
141-
|Attribute filtering|Test that specific attributes are located and returned (e.g. **?attributes=userName,emails**).|
142-
=======
14339
## Getting Started
144-
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.
145-
A step by step guide for starting up with the project can be found [here](docs/Get-Started.md)
146-
>>>>>>> Stashed changes
40+
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)
14741

14842
## Navigating the reference code
14943

docs/README.md

Lines changed: 0 additions & 189 deletions
This file was deleted.

0 commit comments

Comments
 (0)