From bb77ae487d0fd6b78d92f205304da87a9db80917 Mon Sep 17 00:00:00 2001 From: isemona Date: Tue, 20 Feb 2024 10:37:57 -0800 Subject: [PATCH 01/24] dotnet-scim-blog --- _source/_assets/img/avatar-ram-gandhi.jpg | Bin 0 -> 22867 bytes _source/_assets/img/blog/net-scim/import.jpeg | Bin 0 -> 150433 bytes _source/_assets/img/blog/net-scim/ngrok.jpeg | Bin 0 -> 110160 bytes .../img/blog/net-scim/provisioning.jpeg | Bin 0 -> 126623 bytes _source/_assets/img/blog/net-scim/social.jpg | Bin 0 -> 122230 bytes _source/_data/authors.yml | 6 + .../2023-06-21-net-maui-authentication.md | 2 +- _source/_posts/2024-02-20-net-scim.md | 1909 +++++++++++++++++ 8 files changed, 1916 insertions(+), 1 deletion(-) create mode 100644 _source/_assets/img/avatar-ram-gandhi.jpg create mode 100644 _source/_assets/img/blog/net-scim/import.jpeg create mode 100644 _source/_assets/img/blog/net-scim/ngrok.jpeg create mode 100644 _source/_assets/img/blog/net-scim/provisioning.jpeg create mode 100644 _source/_assets/img/blog/net-scim/social.jpg create mode 100644 _source/_posts/2024-02-20-net-scim.md diff --git a/_source/_assets/img/avatar-ram-gandhi.jpg b/_source/_assets/img/avatar-ram-gandhi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..183fe2cf73efde12a6faba0f2663f8a992c3a7df GIT binary patch literal 22867 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 literal 0 HcmV?d00001 diff --git a/_source/_assets/img/blog/net-scim/import.jpeg b/_source/_assets/img/blog/net-scim/import.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..607b78b5579cb5eb896bb8174fd641ceb5f2d5fc GIT binary patch literal 150433 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%0DaF;?E3*{IqA1T<>lR>?H^* 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 literal 0 HcmV?d00001 diff --git a/_source/_assets/img/blog/net-scim/social.jpg b/_source/_assets/img/blog/net-scim/social.jpg new file mode 100644 index 0000000000000000000000000000000000000000..380d8191195e80de4ecded491d1bef031a77aef6 GIT binary patch literal 122230 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 z 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 Ae*gdg literal 0 HcmV?d00001 diff --git a/_source/_data/authors.yml b/_source/_data/authors.yml index 851662d19c..58c9139ae3 100644 --- a/_source/_data/authors.yml +++ b/_source/_data/authors.yml @@ -929,3 +929,9 @@ michael-palermo: web: https://about.me/palermo4 bio: Michael is the Manager of Developer Advocacy at Okta. He has been advocating developer technologies for over 25 years. Michael is a published author of technical books as well as online courses with Pluralsight. Previously, Michael evangelized "smart home" with the Amazon Alexa team, taught developers location data with HERE Technologies, and championed HTML5 while at Microsoft. +ram-gandhi: + full_name: Ram Gandhi + display_name: Ram Gandhi + avatar: avatar-ram-gandhi.jpg + github: https://github.com/ramgandhi-okta + bio: Ram Gandhi is a Developer Support Solutions Architect at Okta, a full-stack developer, DevOps expert, and a problem solver who loves the thrill of learning new things. He has over 13 years of experience developing software applications across various industries and securing them using industry best practices. He loves to work in cross-platform development and Kubernetes. diff --git a/_source/_posts/2023-06-21-net-maui-authentication.md b/_source/_posts/2023-06-21-net-maui-authentication.md index 40761187c7..376a0a90ca 100644 --- a/_source/_posts/2023-06-21-net-maui-authentication.md +++ b/_source/_posts/2023-06-21-net-maui-authentication.md @@ -5,7 +5,7 @@ author: laura-rodriguez by: contractor communities: [mobile, .net] description: "Add authentication to your MAUI applications and keep your .NET mobile apps secure!" -tags: [net, mobile] +tags: [dotnet, mobile] tweets: - "" - "" diff --git a/_source/_posts/2024-02-20-net-scim.md b/_source/_posts/2024-02-20-net-scim.md new file mode 100644 index 0000000000..c71994f7de --- /dev/null +++ b/_source/_posts/2024-02-20-net-scim.md @@ -0,0 +1,1909 @@ +--- +layout: blog_post +title: "How to Manage User Lifecycle with .NET and SCIM" +author: ram-gandhi +by: contractor +communities: [.net] +description: "Manage your users' lifecycle using .NET, SCIM, and an Identity Provider such as Okta." +tags: [scim,dotnet] +tweets: +- "" +- "" +- "" +image: blog/net-scim/social.jpg +type: awareness +--- + +Several challenges exist in provisioning users for a growing company across systems and applications. It can be time-consuming, error-prone, challenging to sync users across domains, and potentially a security risk to keep track of existing profiles. Fortunately, a protocol called SCIM (System for Cross-domain Identity Management) standardizes user information across systems, making it possible to sync users. Also, combined with a SCIM-compliant Identity Provider (IdP), it securely automates common user lifecycle operations. +In this tutorial, I'll walk you through building a .NET SCIM server with the CRUD (Create, Read, Update, Delete) Restful API endpoints outlined in the SCIM protocol. We'll then test the server using Swagger User Interface before integrating it with Okta, a SCIM compliant IdP. + +## What is SCIM? +[SCIM](https://datatracker.ietf.org/doc/html/rfc7644)is an HTTP-based protocol that defines a set of standard endpoints and schemas that developers can use to overcome complexity in implementing user lifecycle management operations across different systems. + +## Components of a SCIM integration +There are two primary components for a SCIM integration. The first is the *SCIM server*, which is a server that has implemented the endpoints as described in the SCIM spec - for example, User endpoints, Group endpoints, Schemas endpoints, etc. The applications team typically develops these endpoints, which leaves the IdP to manage the user profiles. This blog will detail how to create a sample SCIM server using .NET. The other component is the *SCIM client*, which makes SCIM-compliant HTTP calls to a SCIM server to exchange user profile information. Okta (the IdP), in our use case, will act as a SCIM client and call the .NET SCIM server we'll build using this tutorial. + +## Build a .NET SCIM server + +### Prerequisites +- dotnet SDK (I used [dotnet 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) in this demo) +- Code Editor (I used Visual Studio Code) +- [Okta CLI](https://cli.okta.com/) + +### Create a .NET project +- Open a new terminal window (within VS Code) +- Create a new folder named *okta-scim-server-dotnet* using the command `mkdir okta-scim-server-dotnet` +- Switch into this folder using the command `cd okta-scim-server-dotnet` +- Create a new API project using the command `dotnet new webapi` +- Trust the self-signed TLS certs using the command `dotnet dev-certs https --trust` + +### Test the .NET project using Swagger UI +- Run the project using the command `dotnet watch --launch-profile https` +- At this point using the *https://localhost:[port]/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser. + +### Setup Okta (the IdP) +Before you begin, you'll need a free Okta developer account. We'll use the [Okta CLI](https://cli.okta.com/) to create an account via your terminal. Follow the installation instructions provided [here](https://cli.okta.com/manual/). On the same terminal where you ran the installation, run the `okta register` command to sign up for a new account. If you already have an account, run the command `okta login` instead. +- Then, run `okta apps create` +- Application name: `okta dotnet swagger client` +- Type of Application: `Single Page App` +- Enter your Redirect URI(s): `https://localhost:[port]]/swagger/oauth2-redirect.html` (Port is from previous testing step) +- Enter your Post Logout Redirect URI(s): leave default +- Keep `Issuer` and `ClientId` for configuring later + +### Create the database models +This sample uses `EntityFrameworkCore` as the Object Relational Mapper (ORM) and `Sqlite` as the database. Let's develop the database models! + +Add the required dependencies by running the following commands +- `dotnet tool install --global dotnet-ef` +- `dotnet add package Microsoft.EntityFrameworkCore.Tools` +- `dotnet add package Microsoft.EntityFrameworkCore.Design` +- `dotnet add package Microsoft.EntityFrameworkCore.Sqlite` + +Create a `DataModels.cs` file and add the required model classes for `User` and child object `Email`. +```c# +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace okta_scim_server_dotnet; + +public partial class User +{ + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public string? ExternalId { get; set; } + + public string UserName { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string? MiddleName { get; set; } + public string DisplayName { get; set; } + public bool Active { get; set; } + + public virtual ICollection? Emails { get; set; } +} + +[PrimaryKey(nameof(Value), nameof(UserId))] +public class Email +{ + public string Type { get; set; } + public string Value { get; set; } + public bool Primary { get; set; } + + public int UserId { get; set; } + public virtual User User { get; set; } +} +``` +Add DB context for each entity framework in the `DataModels.cs` file, i.e., to the two models we created above. We'll also add some seed data using the method `OnModelCreating`, which will be useful for testing. In this sample, we will create support for the User resource type. However, if you want to expand on this, you can use similar concepts to maintain endpoints for other resource types, such as Group. Paste the following code just below the `Email` class: +```c# +public partial class ScimDbContext : DbContext +{ + public ScimDbContext(){} + public ScimDbContext(DbContextOptions options) : base(options) { } + + public virtual DbSet Users { get; set; } + public virtual DbSet Emails { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity().HasIndex(u => u.UserName).IsUnique(); + modelBuilder.Entity().HasData(new List { + new User { Id = 1, FirstName = "Micky", LastName = "Daldo", DisplayName = "Micky Daldo", UserName = "mdaldo@fake.domain", Active = true }, + new User { Id = 2, FirstName = "Dan", LastName = "Slem", DisplayName = "Dan Slem", UserName = "dslem@fake.domain", Active = true }, + new User { Id = 3, FirstName = "Sarika", LastName = "Mahesh", DisplayName = "Sarika Mahesh", UserName = "smahesh@fake.domain", Active = true } + }); + modelBuilder.Entity().HasData(new List { + new Email { Type = "work", Value="mdaldo@fake.domain", Primary = true, UserId = 1 }, + new Email { Type = "personal", Value="mdaldo@personal.domain", Primary = false, UserId = 1 }, + new Email { Type = "work", Value="dslem@fake.domain", Primary = true, UserId = 2 }, + new Email { Type = "work", Value="smahesh@fake.domain", Primary = true, UserId = 3 } + }); + base.OnModelCreating(modelBuilder); + } +} +``` + +The `DataModels.cs` file should look like this: + +```c# +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace okta_scim_server_dotnet; + +public partial class User +{ + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public string? ExternalId { get; set; } + + public string UserName { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string? MiddleName { get; set; } + public string DisplayName { get; set; } + public bool Active { get; set; } + + public virtual ICollection? Emails { get; set; } +} + +[PrimaryKey(nameof(Value), nameof(UserId))] +public class Email +{ + public string Type { get; set; } + public string Value { get; set; } + public bool Primary { get; set; } + + public int UserId { get; set; } + public virtual User User { get; set; } +} + +public partial class ScimDbContext : DbContext +{ + public ScimDbContext(){} + public ScimDbContext(DbContextOptions options) : base(options) { } + + public virtual DbSet Users { get; set; } + public virtual DbSet Emails { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity().HasIndex(u => u.UserName).IsUnique(); + modelBuilder.Entity().HasData(new List { + new User { Id = 1, FirstName = "Micky", LastName = "Daldo", DisplayName = "Micky Daldo", UserName = "mdaldo@fake.domain", Active = true }, + new User { Id = 2, FirstName = "Dan", LastName = "Slem", DisplayName = "Dan Slem", UserName = "dslem@fake.domain", Active = true }, + new User { Id = 3, FirstName = "Sarika", LastName = "Mahesh", DisplayName = "Sarika Mahesh", UserName = "smahesh@fake.domain", Active = true } + }); + modelBuilder.Entity().HasData(new List { + new Email { Type = "work", Value="mdaldo@fake.domain", Primary = true, UserId = 1 }, + new Email { Type = "personal", Value="mdaldo@personal.domain", Primary = false, UserId = 1 }, + new Email { Type = "work", Value="dslem@fake.domain", Primary = true, UserId = 2 }, + new Email { Type = "work", Value="smahesh@fake.domain", Primary = true, UserId = 3 } + }); + base.OnModelCreating(modelBuilder); + } +} +``` + +Add dbconfiguration in the `Properties/appsettings.json` file as a top-level property. +```json +"ConnectionStrings": { + "DefaultConnection": "Data Source=scim-dev.db;" +} +``` + +This command above creates a db file in the project folder named `scim-db.dev`. After adding this property, the JSON file should look like this: +```json +{ + "ConnectionStrings": { + "DefaultConnection": "Data Source=scim-dev.db;" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} +``` +Now we can wire it all up in `Program.cs` for DI using `AddDbContextPool` middleware +- At the top of the file, add dependencies with `using` statements + ```c# + using Microsoft.EntityFrameworkCore; + using okta_scim_server_dotnet; + ``` +- After `builder.Services.AddSwaggerGen();` add the following code: + ```c# + builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) + ); + ``` +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +var summaries = new[] +{ + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" +}; + +app.MapGet("/weatherforecast", () => +{ + var forecast = Enumerable.Range(1, 5).Select(index => + new WeatherForecast + ( + DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + Random.Shared.Next(-20, 55), + summaries[Random.Shared.Next(summaries.Length)] + )) + .ToArray(); + return forecast; +}) +.WithName("GetWeatherForecast") +.WithOpenApi(); + +app.Run(); + +record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) +{ + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +} +``` + +We can then migrate the coded database models and data into the actual database. +- Prepare db migration by running `dotnet ef migrations add InitialScimDb` +- Apply these changes to db by running `dotnet ef database update`. This command would have created a file named `scim-dev.db` in your project folder. +- *Optional:* Test db creation using the command line tool, + - You should have sqllite3 client installed. (I had this OOB in Mac OS) + - Connect using`sqlite3 <>/scim-dev.db` + - List tables using `.tables` + - List users by running `select * from Users;` + - Then exit using `.exit` + +### Create SCIM models and mapping +Having taken care of data models and database creation, let's move on to creating SCIM-compliant models. Our requests and responses will be using these models to communicate with SCIM clients. Create a new file, `ScimModels.cs`, and add the following SCIM models: +- `ScimListResourceRequest` is used when listing resources. It has pagination and filtering parameters. +- `ScimListResourceResponse` is used when returning a list of resources. Since this is a generic model, it can therefore be used for multiple resource types. +- `ScimErrorResponse` is used when returning an error such as resource not found in standard SCIM format. +- `ScimUser`, `ScimName`, and `ScimEmail` are user objects and child objects which are SCIM compliant. + +```c# +namespace okta_scim_server_dotnet; + +public class ScimListResourceRequest +{ + public string? filter { get; set; } + public int? startIndex { get; set; } + public int? count { get; set; } + // TODO: Start with simple parsing on what Okta sends. Extend it to be generic to handle other operations + public Dictionary parsedFilter + { + get + { + Dictionary parsedValue = new Dictionary(); + if (!string.IsNullOrWhiteSpace(filter)) + { + var filterTerms = filter.Split(" eq "); + if (filterTerms.Length == 2) + { + parsedValue.Add(filterTerms[0], filterTerms[1].Substring(1, filterTerms[1].Length - 2)); + } + } + return parsedValue; + } + } + public int parsedStartIndex { get { return startIndex ?? 1; } } + public int parsedCount { get { return count ?? 100; } } +} + +public class ScimListResourceResponse +{ + public IEnumerable schemas = new[] { "urn:ietf:params:scim:api:messages:2.0:ListResponse" }; + public int totalResults { get; set; } + public int startIndex { get; set; } + public int itemsPerPage { get; set; } + public IEnumerable Resources { get; set; } +} + +public class ScimErrorResponse +{ + public ScimErrorResponse(int status, string detail) + { + this.schemas = new[] { "urn:ietf:params:scim:api:messages:2.0:Error" }; + this.status = status; + this.detail = detail; + } + public IEnumerable schemas {get; private set;} + public string? detail { get; set; } + public int status { get; set; } +} +public class ScimUser +{ + public IEnumerable schemas { get; set; } + public string? id { get; set; } + public string externalId { get; set; } + public string userName { get; set; } + public ScimName name { get; set; } + public string displayName { get; set; } + public IEnumerable emails { get; set; } + public bool active { get; set; } +} + +public class ScimName +{ + public string givenName { get; set; } + public string familyName { get; set; } + public string? middleName { get; set; } +} + +public class ScimEmail +{ + public string value { get; set; } + public string type { get; set; } + public bool primary { get; set; } +} +``` +We also need to create mappers between DB models and SCIM models to avoid many manual conversions. For this, we will use the `AutoMapper` package. +- Install dependencies by running the following commands + - `dotnet add package AutoMapper` + - `dotnet add package Automapper.Extensions.Microsoft.DependencyInjection` +- Add Mappings to `ScimModels.cs`: + - At the top of the file, add the `using` statement + ```c# + using AutoMapper; + ``` + - At the bottom, add the following code: + ```c# + public class UserProfile: Profile + { + public UserProfile() + { + CreateMap() + .ForMember(dest => dest.FirstName, act => act.MapFrom(src => src.name.givenName)) + .ForMember(dest => dest.LastName, act => act.MapFrom(src => src.name.familyName)) + .ForMember(dest => dest.MiddleName, act => act.MapFrom(src => src.name.middleName)) + .ReverseMap() + .ForPath(dest => dest.id, act => act.MapFrom(src => src.Id)) + .ForPath(dest => dest.schemas, act => act.MapFrom(src => new[] { "urn:ietf:params:scim:schemas:core:2.0:User" })); + + CreateMap().ReverseMap(); + } + } + ``` +The `ScimModels.cs` file should now look like this: + +```c# +using AutoMapper; + +namespace okta_scim_server_dotnet; + +public class ScimListResourceRequest +{ + public string? filter { get; set; } + public int? startIndex { get; set; } + public int? count { get; set; } + // TODO: Starting with simple parsing on what okta sends. Extend it to be generic to handle other operations + public Dictionary parsedFilter + { + get + { + Dictionary parsedValue = new Dictionary(); + if (!string.IsNullOrWhiteSpace(filter)) + { + var filterTerms = filter.Split(" eq "); + if (filterTerms.Length == 2) + { + parsedValue.Add(filterTerms[0], filterTerms[1].Substring(1, filterTerms[1].Length - 2)); + } + } + return parsedValue; + } + } + public int parsedStartIndex { get { return startIndex ?? 1; } } + public int parsedCount { get { return count ?? 100; } } +} + +public class ScimListResourceResponse +{ + public IEnumerable schemas = new[] { "urn:ietf:params:scim:api:messages:2.0:ListResponse" }; + public int totalResults { get; set; } + public int startIndex { get; set; } + public int itemsPerPage { get; set; } + public IEnumerable Resources { get; set; } +} + +public class ScimErrorResponse +{ + public ScimErrorResponse(int status, string detail) + { + this.schemas = new[] { "urn:ietf:params:scim:api:messages:2.0:Error" }; + this.status = status; + this.detail = detail; + } + public IEnumerable schemas {get; private set;} + public string? detail { get; set; } + public int status { get; set; } +} +public class ScimUser +{ + public IEnumerable schemas { get; set; } + public string? id { get; set; } + public string externalId { get; set; } + public string userName { get; set; } + public ScimName name { get; set; } + public string displayName { get; set; } + public IEnumerable emails { get; set; } + public bool active { get; set; } +} + +public class ScimName +{ + public string givenName { get; set; } + public string familyName { get; set; } + public string? middleName { get; set; } +} + +public class ScimEmail +{ + public string value { get; set; } + public string type { get; set; } + public bool primary { get; set; } +} +public class UserProfile: Profile +{ + public UserProfile() + { + CreateMap() + .ForMember(dest => dest.FirstName, act => act.MapFrom(src => src.name.givenName)) + .ForMember(dest => dest.LastName, act => act.MapFrom(src => src.name.familyName)) + .ForMember(dest => dest.MiddleName, act => act.MapFrom(src => src.name.middleName)) + .ReverseMap() + .ForPath(dest => dest.id, act => act.MapFrom(src => src.Id)) + .ForPath(dest => dest.schemas, act => act.MapFrom(src => new[] { "urn:ietf:params:scim:schemas:core:2.0:User" })); + + CreateMap().ReverseMap(); + } +} +``` + +- To wire up the SCIM models and the mappers we have created, `AddAutoMapper` middleware in `Program.cs` + - At the top of the file, add the `using` statements + ```c# + using AutoMapper; + ``` + - After `builder.Services.AddDbContextPool(...);` add the following code + ```c# + builder.Services.AddAutoMapper(typeof(Program).Assembly); + ``` + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +var summaries = new[] +{ + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" +}; + +app.MapGet("/weatherforecast", () => +{ + var forecast = Enumerable.Range(1, 5).Select(index => + new WeatherForecast + ( + DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + Random.Shared.Next(-20, 55), + summaries[Random.Shared.Next(summaries.Length)] + )) + .ToArray(); + return forecast; +}) +.WithName("GetWeatherForecast") +.WithOpenApi(); + +app.Run(); + +record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) +{ + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +} +``` + +### Create the .NET SCIM server RESTful API endpoints +Since we have created the necessary data and SCIM models. We can move on to creating the endpoints for user lifecycle management. First, let's set up dependencies, some basic global configuration, and clean up unnecessary code +- Install dependencies by running `dotnet add package Newtonsoft.Json` +- At the top of the `Program.cs` file, add `using` statements + ```c# + using System.Text.Json.Serialization; + using System.Text.Json; + using System.Net; + using Microsoft.AspNetCore.Mvc; + ``` +- Add the following code after `var builder = WebApplication.CreateBuilder(args);` to respond cleanly and overcome parsing limitations + ```c# + builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; + }); + ``` +- Remove WeatherForecast related sample code + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +app.Run(); +``` + +### Retrieve a user +We are using minimal APIs for creating endpoints. For retrieving a user, let's create the route that expects the user's `id` in the path and responds with a single `ScimUser` object if found and a `ScimErrorResponse` if the user doesn't exist. Add the following code before `app.Run();` in the `Program.cs` file. +```c# +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); +``` + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); + +app.Run(); +``` + +Some variables are declared outside of this method for reuse. + +Run the project using the steps mentioned in the [testing](#testing) section. To expand it, click on the `GET /scim/v2/users/{id}` endpoint. Click `Try it out` and enter `3` as the `id` value in the description box, then click the `Execute` button. You should receive the following as a response based on the seeding data with status code `200`: + +```json +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "3", + "userName": "smahesh@fake.domain", + "name": { + "givenName": "Sarika", + "familyName": "Mahesh" + }, + "displayName": "Sarika Mahesh", + "emails": [ + { + "value": "smahesh@fake.domain", + "type": "work", + "primary": true + } + ], + "active": true +} +``` + +Now change `id` to `100` and try again. You should receive the following as a response with status code `404`: +```json +{ + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:Error" + ], + "detail": "Resource Not Found", + "status": 404 +} +``` +We've completed our testing for the GET user endpoint. Let's add other endpoints! + +### List all users +For listing users, add the following code to the `Program.cs` file below the previously added section. This method expects `ScimListResourceRequest` attributes in the query and responds with `200` status and `ScimListResourceResponse` user in body. Okta will use pagination to retrieve large sets of users: + +```c# +app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { + string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); + // filter and paginate results based on input + var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); + return new ScimListResourceResponse + { + totalResults = users.Count, + startIndex = request.parsedStartIndex, + itemsPerPage = request.parsedCount, + Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) + }; +}) +.WithName("ListUsers") +.WithOpenApi(); +``` + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); + +app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { + string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); + // filter and paginate results based on input + var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); + return new ScimListResourceResponse + { + totalResults = users.Count, + startIndex = request.parsedStartIndex, + itemsPerPage = request.parsedCount, + Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) + }; +}) +.WithName("ListUsers") +.WithOpenApi(); + +app.Run(); +``` + +To test this, you'll need to rebuild the .NET SCIM server every time you add a new endpoint. To do this, enter `Ctrl+R` on your terminal, where you have your .NET SCIM server running. Once the server has been refreshed, click on the `GET /scim/v2/users` endpoint and the `Try it out` button. Then click the `Execute` button to run the request without any parameters. The code has some defaults and will return the first 100 users. You can expect a response with `200` status and body similar to the following: + +```json +{ + "totalResults": 4, + "startIndex": 1, + "itemsPerPage": 100, + "resources": [ + { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "4", + "userName": "fakeguy@fake.domain", + "name": { + "givenName": "Fake", + "familyName": "Guy" + }, + "displayName": "Fake Guy", + "emails": [], + "active": true + }, + ... //Removed for brevity + ] +} +``` +You can explore by adding different numerical values in `startIndex`, `count`, and also some valid `filter` parameter such as `userName eq "fakeguy@fake.domain"` + +### Create a user +To create a user, add the following code to the `Program.cs` file below the previously added section. This method expects a `ScimUser` object in the request body: + +```c# +app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var user = mapper.Map(scimUser); + db.Users.Add(user); + await db.SaveChangesAsync(); + return Results.Created($"users/{user.Id}", mapper.Map(user)); +}) +.WithName("CreateUser") +.WithOpenApi(); +``` + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); + +app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { + string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); + // filter and paginate results based on input + var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); + return new ScimListResourceResponse + { + totalResults = users.Count, + startIndex = request.parsedStartIndex, + itemsPerPage = request.parsedCount, + Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) + }; +}) +.WithName("ListUsers") +.WithOpenApi(); + +app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var user = mapper.Map(scimUser); + db.Users.Add(user); + await db.SaveChangesAsync(); + return Results.Created($"users/{user.Id}", mapper.Map(user)); +}) +.WithName("CreateUser") +.WithOpenApi(); + +app.Run(); + +``` + +To test this, you'll need to rebuild the .NET SCIM server everytime you add a new endpoint, to do this enter `Ctrl+R` on your terminal where you have your .NET SCIM server running. Click on the `POST/scim/v2/users` endpoint and the `Try it out` button, then enter the following JSON payload as the request body in Swagger UI before clicking the `Execute` button: + +```json +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "userName": "fakeguy@fake.domain", + "name": { + "givenName": "Fake", + "familyName": "Guy" + }, + "displayName": "Fake Guy", + "active": true +} +``` +The expected response will be something like below with `201` status +```json +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "4", + "userName": "fakeguy@fake.domain", + "name": { + "givenName": "Fake", + "familyName": "Guy" + }, + "displayName": "Fake Guy", + "emails": [], + "active": true +} +``` + +### Update a user +To update a user, add the following code to the `Program.cs` file below the previously added section. We'll a `PUT` operation, but you can also develop a `PATCH` request. This operation expects the user's `id` in the path and the `ScimUser` object in the body, which can return either a `200` or `404` response: + +```c# +app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + db.Entry(existingUser).CurrentValues.SetValues(mapper.Map(scimUser)); + foreach (var email in existingUser.Emails.ToList()) + { + if(!scimUser.emails.Any(u => u.value == email.Value)) { db.Emails.Remove(email); } + } + foreach (var email in scimUser.emails) + { + var existingEmail = existingUser.Emails.Where(e => e.Value == email.value).SingleOrDefault(); + if(existingEmail is not null) + { + db.Entry(existingEmail).CurrentValues.SetValues(email); + } else + { + existingUser.Emails.Add(mapper.Map(email)); + } + } + await db.SaveChangesAsync(); + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUser") +.WithOpenApi(); +``` + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); + +app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { + string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); + // filter and paginate results based on input + var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); + return new ScimListResourceResponse + { + totalResults = users.Count, + startIndex = request.parsedStartIndex, + itemsPerPage = request.parsedCount, + Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) + }; +}) +.WithName("ListUsers") +.WithOpenApi(); + +app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var user = mapper.Map(scimUser); + db.Users.Add(user); + await db.SaveChangesAsync(); + return Results.Created($"users/{user.Id}", mapper.Map(user)); +}) +.WithName("CreateUser") +.WithOpenApi(); + +app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + db.Entry(existingUser).CurrentValues.SetValues(mapper.Map(scimUser)); + foreach (var email in existingUser.Emails.ToList()) + { + if(!scimUser.emails.Any(u => u.value == email.Value)) { db.Emails.Remove(email); } + } + foreach (var email in scimUser.emails) + { + var existingEmail = existingUser.Emails.Where(e => e.Value == email.value).SingleOrDefault(); + if(existingEmail is not null) + { + db.Entry(existingEmail).CurrentValues.SetValues(email); + } else + { + existingUser.Emails.Add(mapper.Map(email)); + } + } + await db.SaveChangesAsync(); + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUser") +.WithOpenApi(); + +app.Run(); +``` + +To test this, again, you'll need to rebuild the .NET SCIM server, so enter `Ctrl+R` on the terminal where you have your .NET SCIM server running. Let's update Fake Guy's profile to include his middle initial R. To do this, click on the `PUT/scim/v2/users/{id}` endpoint and the `Try it out` button, then enter `4` as the `id` value and the following JSON payload as the request body in the Swagger UI before clicking the `Execute` button: + +```json +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "4", + "userName": "fakeguy@fake.domain", + "name": { + "givenName": "Fake", + "familyName": "Guy", + "middleName": "R" + }, + "displayName": "Fake Guy", + "emails": [], + "active": true +} +``` +The expected response will be something like below with `200` status. +```json +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "4", + "userName": "fakeguy@fake.domain", + "name": { + "givenName": "Fake", + "familyName": "Guy", + "middleName": "R" + }, + "displayName": "Fake Guy", + "emails": [], + "active": true +} +``` +Feel free to test it with an invalid user id to get a `404` response. + +### Delete a user +Add the following code to the `Program.cs` file below the previously added section for deleting user. This endpoint is not a true delete endpoint but rather a soft-delete that uses the `PATCH` operation by setting the property `active: false`. This operation expects the user's `id` in the path and the `JsonPatchDocument` object in the body which can return either a `200` or `404` response. + +```c# +app.MapPatch(userRoute + "/{id}", async Task (int id, [FromBody] JsonDocument patchJson, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + + foreach(JsonElement operation in patchJson.RootElement.GetProperty("Operations").EnumerateArray()) { + // Handling only active property for simplicity + if (operation.GetProperty("op").GetString() == "replace" && operation.GetProperty("value").TryGetProperty("active", out var temp)) { + existingUser.Active = operation.GetProperty("value").GetProperty("active").GetBoolean(); + await db.SaveChangesAsync(); + } + } + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUserPartial") +.WithOpenApi(); +``` + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); + +app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { + string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); + // filter and paginate results based on input + var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); + return new ScimListResourceResponse + { + totalResults = users.Count, + startIndex = request.parsedStartIndex, + itemsPerPage = request.parsedCount, + Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) + }; +}) +.WithName("ListUsers") +.WithOpenApi(); + +app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var user = mapper.Map(scimUser); + db.Users.Add(user); + await db.SaveChangesAsync(); + return Results.Created($"users/{user.Id}", mapper.Map(user)); +}) +.WithName("CreateUser") +.WithOpenApi(); + +app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + db.Entry(existingUser).CurrentValues.SetValues(mapper.Map(scimUser)); + foreach (var email in existingUser.Emails.ToList()) + { + if(!scimUser.emails.Any(u => u.value == email.Value)) { db.Emails.Remove(email); } + } + foreach (var email in scimUser.emails) + { + var existingEmail = existingUser.Emails.Where(e => e.Value == email.value).SingleOrDefault(); + if(existingEmail is not null) + { + db.Entry(existingEmail).CurrentValues.SetValues(email); + } else + { + existingUser.Emails.Add(mapper.Map(email)); + } + } + await db.SaveChangesAsync(); + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUser") +.WithOpenApi(); + +app.MapPatch(userRoute + "/{id}", async Task (int id, [FromBody] JsonDocument patchJson, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + + foreach(JsonElement operation in patchJson.RootElement.GetProperty("Operations").EnumerateArray()) { + // Handling only active property for simplicity + if (operation.GetProperty("op").GetString() == "replace" && operation.GetProperty("value").TryGetProperty("active", out var temp)) { + existingUser.Active = operation.GetProperty("value").GetProperty("active").GetBoolean(); + await db.SaveChangesAsync(); + } + } + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUserPartial") +.WithOpenApi(); + +app.Run(); +``` + +To test this, again you'll need to rebuild the SCIM server so enter `Ctrl+R` on your terminal where you have your SCIM server running. Let's deactivate Fake Guy's profile. To do this, click on the `PATCH/scim/v2/users/{id}` endpoint and the `Try it out` button, then enter `4` as the `id` value and the following JSON payload in the Swagger UI before clicking the `Execute` button: + +```json +{ + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ], + "Operations": [ + { + "op": "replace", + "value": { + "active": false + } + } + ] +} +``` +The expected response will be something like below with `200` status. +```json +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "4", + "userName": "fakeguy@fake.domain", + "name": { + "givenName": "Fake", + "familyName": "Guy", + "middleName": "R" + }, + "displayName": "Fake Guy", + "emails": [], + "active": false +} +``` +Feel free to test it out with an invalid user id to get a `404` response. + +### Secure your .NET SCIM server endpoints + +Now that endpoints are created and tested. It is time to secure it before integration with Okta. Okta recommends at least one of three ways to secure your server. For this sample, we will use *oAuth* using the `Okta.AspNetCore` package. +- Install dependency by running `dotnet add package Okta.AspNetCore` +- Add okta configuration in `Properties/appsettings.json` file as a top-level property + ```json + "Okta": { + "OktaDomain": "https://${yourOktaDomain}.com", + "AuthorizationServerId": "${authorizationServerId}" + }, + ``` +The `Properties/appsettings.json` file should now look like this: + +```json +{ + "Okta": { + "OktaDomain": "https://${yourOktaDomain}.com", + "AuthorizationServerId": "${authorizationServerId}" +}, + "ConnectionStrings": { + "DefaultConnection": "Data Source=scim-dev.db;" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} +``` + +If you've created an application through the Okta CLI (from the Setup Okta steps), then set your Authorization Server Id to the default template Authorization Server like this: + +```json +{ +"AuthorizationServerId": "default" +} +``` + +Another place to find the Authorization Server Id is in your Okta Dashboard under Security > API > Authorization Servers > Name of the Authorization Server, e.g., "default." + +- Make the following changes in `Program.cs` to implement authentication using `AddOktaWebApi` middleware. + - At the top of the file, add the `using` statement: + ```c# + using Okta.AspNetCore; + ``` + - Add the following code after `builder.Services.AddAutoMapper(...);`: + ```c# + builder.Services + .AddAuthentication(options => + { + options.DefaultAuthenticateScheme = OktaDefaults.ApiAuthenticationScheme; + options.DefaultChallengeScheme = OktaDefaults.ApiAuthenticationScheme; + options.DefaultSignInScheme = OktaDefaults.ApiAuthenticationScheme; + }) + .AddOktaWebApi(new OktaWebApiOptions + { + OktaDomain = builder.Configuration["okta:OktaDomain"], + AuthorizationServerId = builder.Configuration["okta:AuthorizationServerId"] + }); + builder.Services.AddAuthorization(); + ``` + - Add the following code before `app.UseHttpsRedirection();`: + ```c# + app.UseAuthentication(); + app.UseAuthorization(); + ``` +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; +using Okta.AspNetCore; + + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); +builder.Services + .AddAuthentication(options => + { + options.DefaultAuthenticateScheme = OktaDefaults.ApiAuthenticationScheme; + options.DefaultChallengeScheme = OktaDefaults.ApiAuthenticationScheme; + options.DefaultSignInScheme = OktaDefaults.ApiAuthenticationScheme; + }) + .AddOktaWebApi(new OktaWebApiOptions + { + OktaDomain = builder.Configuration["okta:OktaDomain"], + AuthorizationServerId = builder.Configuration["okta:AuthorizationServerId"] + }); +builder.Services.AddAuthorization(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); +app.UseAuthentication(); +app.UseAuthorization(); + +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); + +app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { + string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); + // filter and paginate results based on input + var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); + return new ScimListResourceResponse + { + totalResults = users.Count, + startIndex = request.parsedStartIndex, + itemsPerPage = request.parsedCount, + Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) + }; +}) +.WithName("ListUsers") +.WithOpenApi(); + +app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var user = mapper.Map(scimUser); + db.Users.Add(user); + await db.SaveChangesAsync(); + return Results.Created($"users/{user.Id}", mapper.Map(user)); +}) +.WithName("CreateUser") +.WithOpenApi(); + +app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + db.Entry(existingUser).CurrentValues.SetValues(mapper.Map(scimUser)); + foreach (var email in existingUser.Emails.ToList()) + { + if(!scimUser.emails.Any(u => u.value == email.Value)) { db.Emails.Remove(email); } + } + foreach (var email in scimUser.emails) + { + var existingEmail = existingUser.Emails.Where(e => e.Value == email.value).SingleOrDefault(); + if(existingEmail is not null) + { + db.Entry(existingEmail).CurrentValues.SetValues(email); + } else + { + existingUser.Emails.Add(mapper.Map(email)); + } + } + await db.SaveChangesAsync(); + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUser") +.WithOpenApi(); + +app.MapPatch(userRoute + "/{id}", async Task (int id, [FromBody] JsonDocument patchJson, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + + foreach(JsonElement operation in patchJson.RootElement.GetProperty("Operations").EnumerateArray()) { + // Handling only active property for simplicity + if (operation.GetProperty("op").GetString() == "replace" && operation.GetProperty("value").TryGetProperty("active", out var temp)) { + existingUser.Active = operation.GetProperty("value").GetProperty("active").GetBoolean(); + await db.SaveChangesAsync(); + } + } + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUserPartial") +.WithOpenApi(); + +app.Run(); +``` + +- Next let's wire up this authentication requirement to all endpoints we developed. Simply add `RequireAuthorization()` to all routes. Here is an example for the POST endpoint (where `RequireAuthorization()` was added to the end of the code), + ```c# + app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var user = mapper.Map(scimUser); + db.Users.Add(user); + await db.SaveChangesAsync(); + return Results.Created($"users/{user.Id}", mapper.Map(user)); + }) + .WithName("CreateUser") + .WithOpenApi() + .RequireAuthorization(); + ``` +### Bootstrap OAuth to Swagger UI +- Update `Okta` section in `Properties/appsettings.json` with the *Client ID* from earlier [section](#setup-okta) + ```json + "Okta": { + "OktaDomain": "https://${yourOktaDomain}.com", + "AuthorizationServerId": "${authorizationServerId}", + "SwaggerClientId": "${clientId}" + } + ``` +The `Properties/appsettings.json` file should now look like this: + +```json +{ + "Okta": { + "OktaDomain": "https://${yourOktaDomain}.com", + "AuthorizationServerId": "${authorizationServerId}", + "SwaggerClientId": "${clientId}" +}, + "ConnectionStrings": { + "DefaultConnection": "Data Source=scim-dev.db;" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} +``` + +- In `Program.cs` and at the top of the file, add `using Microsoft.OpenApi.Models;` +- Update `builder.Services.AddSwaggerGen();` to + ```c# + builder.Services.AddSwaggerGen(c => + { + c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme + { + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows + { + AuthorizationCode = new OpenApiOAuthFlow + { + AuthorizationUrl = new Uri($"{builder.Configuration["okta:OktaDomain"]}/oauth2/{builder.Configuration["okta:AuthorizationServerId"]}/v1/authorize"), + TokenUrl = new Uri($"{builder.Configuration["okta:OktaDomain"]}/oauth2/{builder.Configuration["okta:AuthorizationServerId"]}/v1/token"), + Scopes = new Dictionary{% raw %}{{ "openid", "openid" }, { "profile", "profile" }} {% endraw %} + } + } + }); + c.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { + new OpenApiSecurityScheme + { + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" }, + In = ParameterLocation.Header + }, + new List() + } + }); + }); + ``` +- Update `app.UseSwaggerUI();` to + ```c# + app.UseSwaggerUI(c => + { + c.OAuthClientId(builder.Configuration["okta:SwaggerClientId"]); + c.OAuthUsePkce(); + }); + ``` + +The `Program.cs` file should now look like this: + +```c# +using Microsoft.EntityFrameworkCore; +using okta_scim_server_dotnet; +using AutoMapper; +using System.Text.Json.Serialization; +using System.Text.Json; +using System.Net; +using Microsoft.AspNetCore.Mvc; +using Okta.AspNetCore; +using Microsoft.OpenApi.Models; + + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => { + options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; +}); + +// Add services to the container. +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); + +builder.Services.AddSwaggerGen(c => + { + c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme + { + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows + { + AuthorizationCode = new OpenApiOAuthFlow + { + AuthorizationUrl = new Uri($"{builder.Configuration["okta:OktaDomain"]}/oauth2/{builder.Configuration["okta:AuthorizationServerId"]}/v1/authorize"), + TokenUrl = new Uri($"{builder.Configuration["okta:OktaDomain"]}/oauth2/{builder.Configuration["okta:AuthorizationServerId"]}/v1/token"), + Scopes = new Dictionary {% raw %}{{ "openid", "openid" }, { "profile", "profile" }} {% endraw %} + } + } + }); + c.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { + new OpenApiSecurityScheme + { + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" }, + In = ParameterLocation.Header + }, + new List() + } + }); + }); + +builder.Services.AddDbContextPool( + options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) +); + +builder.Services.AddAutoMapper(typeof(Program).Assembly); +builder.Services + .AddAuthentication(options => + { + options.DefaultAuthenticateScheme = OktaDefaults.ApiAuthenticationScheme; + options.DefaultChallengeScheme = OktaDefaults.ApiAuthenticationScheme; + options.DefaultSignInScheme = OktaDefaults.ApiAuthenticationScheme; + }) + .AddOktaWebApi(new OktaWebApiOptions + { + OktaDomain = builder.Configuration["okta:OktaDomain"], + AuthorizationServerId = builder.Configuration["okta:AuthorizationServerId"] + }); +builder.Services.AddAuthorization(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(c => + { + c.OAuthClientId(builder.Configuration["okta:SwaggerClientId"]); + c.OAuthUsePkce(); + }); +} + +app.UseHttpsRedirection(); +app.UseAuthentication(); +app.UseAuthorization(); + +var scimPrefix = "/scim/v2"; +var userRoute = $"{scimPrefix}/users"; +var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); +app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { + ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); + if(user is null) + { + return Results.NotFound(notFoundResponse); + } + return Results.Ok(user); +}) +.WithName("GetUser") +.WithOpenApi(); + +app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { + string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); + // filter and paginate results based on input + var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); + return new ScimListResourceResponse + { + totalResults = users.Count, + startIndex = request.parsedStartIndex, + itemsPerPage = request.parsedCount, + Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) + }; +}) +.WithName("ListUsers") +.WithOpenApi() +.RequireAuthorization(); + +app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var user = mapper.Map(scimUser); + db.Users.Add(user); + await db.SaveChangesAsync(); + return Results.Created($"users/{user.Id}", mapper.Map(user)); +}) +.WithName("CreateUser") +.WithOpenApi() +.RequireAuthorization(); + +app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + db.Entry(existingUser).CurrentValues.SetValues(mapper.Map(scimUser)); + foreach (var email in existingUser.Emails.ToList()) + { + if(!scimUser.emails.Any(u => u.value == email.Value)) { db.Emails.Remove(email); } + } + foreach (var email in scimUser.emails) + { + var existingEmail = existingUser.Emails.Where(e => e.Value == email.value).SingleOrDefault(); + if(existingEmail is not null) + { + db.Entry(existingEmail).CurrentValues.SetValues(email); + } else + { + existingUser.Emails.Add(mapper.Map(email)); + } + } + await db.SaveChangesAsync(); + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUser") +.WithOpenApi() +.RequireAuthorization(); + +app.MapPatch(userRoute + "/{id}", async Task (int id, [FromBody] JsonDocument patchJson, ScimDbContext db, IMapper mapper) => { + var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); + if (existingUser is null) { return Results.NotFound(notFoundResponse); } + + foreach(JsonElement operation in patchJson.RootElement.GetProperty("Operations").EnumerateArray()) { + // Handling only active property for simplicity + if (operation.GetProperty("op").GetString() == "replace" && operation.GetProperty("value").TryGetProperty("active", out var temp)) { + existingUser.Active = operation.GetProperty("value").GetProperty("active").GetBoolean(); + await db.SaveChangesAsync(); + } + } + return Results.Ok(mapper.Map(existingUser)); +}) +.WithName("UpdateUserPartial") +.WithOpenApi() +.RequireAuthorization(); + +app.Run(); +``` + +- At this point, our OAuth implementation can now can be tested on our CRUD endpoints. However, this needs an additional step. The Swagger UI should now have an `Authorize` button, click on this button, then click on the `select all` option under `Scopes` before clicking on the `Authorize` button again. If you do not authenticate, you will get `401` responses from any of the endpoints we've protected. + +### Test requests to the .NET SCIM server locally using a tunnel + +Okta will need to make requests to your server; therefore, you will need to expose your .NET SCIM server to the internet. One way to give your app a public URL or IP would be to host it on a cloud instance with DNS that you control. For development purposes, you can use ngrok or Localtunnel to provide a public address to the app running on your computer. In this project, we will be using [ngrok](https://ngrok.com/). Feel free to use any other tunneling tool such as [localtunnel](https://github.com/localtunnel/localtunnel). + +After setting up an account with ngrok: +1. Use the tunnel on a separate terminal from where you are running your .NET SCIM server. +2. Run `ngrok http <>` (you can get this port from *Properties/launchSettings.json*). +3. Note down the domain listed in the console (this is the *scim server domain*). +4. Open http://localhost:4040 to inspect traffic. + +### Create a SCIM provisioning application in Okta + +Log in to your [Okta Developer Account](https://developer.okta.com/login/) that you created previously. + +In this step, you will create an app integration in Okta. Although there are several ways to create apps, we will demonstrate the workflow you would use if you decide to publish your SCIM integration to customers on the Okta Integration Network. Don't worry, we won't submit the sample app to the integration network! + +Log in to your Okta Developer Account. Ensure you're in the Admin Console — when you're in the Admin Console, the URL will be "dev-youraccountid-admin.okta.com". In the sidebar, select **Applications** > **Applications**, and press the **Browse App Catalog** button. + +Enter "**SCIM 2.0 Test App**" in the search box. Select the "**SCIM 2.0 Test App (OAuth Bearer Token)**", and press the **+ Add Integration** button to confirm creating an integration using "SCIM 2.0 Test App (Header Auth)". + +You'll then see configuration options. Leave the options under the **General Settings** tab and navigate to the **Sign-On Options** tab. Give the app a helpful name in the **Application label** field. For example, you can keep the default or change it to ".NET SCIM Server". Leave the **Automatically log in when a user lands on login page** checked, and click **Next**. + +Keep the default settings in the **Sign-On Options** dialog, as our app doesn't use these. Click the **Done** button at the bottom of the page. + +In the **Provisioning** tab of the application, press the **Configure API Integration** button and check the **Enable API Integration** checkbox. Provide the **Base URL**, which is the ngrok localtunnel URL with `/scim/v2` appended to the end. The **OAuth Bearer Token** is can be retrieved from the test you did above either from UI or curl. Press **Save** to save the settings. + +For example, below is a highlighted sample base URL from ngrok. + +{% img blog/net-scim/ngrok.jpeg alt:"Image of highlighted sample base URL from ngrok" width:"800" %}{: .center-image } + + When you save these settings or use the **Test API Credentials** button, Okta will make a `GET /Users` request with the OAuth token you provided to verify a connection with your .NET SCIM server. + +Finally, under the **Provisioning** tab, click the **To App** heading in the left sidebar.In the **Provisioning To App** settings, press the **Edit** button. Enable **Create Users**, **Update User Attributes**, and **Deactivate Users**. Leave the **Sync Passwords** setting unchecked for now. Press **Save**. Remain on this screen for the next steps. + +{% img blog/net-scim/provisioning.jpeg alt:"Image of the Okta Provisioning Tab with the option to create, update, deactivate users enabled." width:"800" %}{: .center-image } + +## Test common user lifecycle operations + +We are now ready to test common user lifecycle requests between Okta and your .NET SCIM server. + +### Import users from the .NET SCIM server + +As you know, we have existing users in our .NET SCIM server. Let's sync them over to Okta so that we have visibility of all users. We can also designate Okta as the source of truth for info about users assigned to this app or organization. + +In the **Import** tab of the SCIM Test App in Okta, click the **Import Now** button. You'll see a dialog confirming Okta scanned your users and found new users. You'll then have a screen to confirm assignments. When the import succeeds, Okta will request to get all users and confirm those already not recorded. In the list of users to import, check the boxes by those you want to sync to Okta and click **Confirm Assignments**. Then go to the **Assignments** tab and watch as the imported users appear. + +{% img blog/net-scim/import.jpeg alt:"Image of users detected by Okta during import." width:"800" %}{: .center-image } + +### Sync users from Okta to the .NET SCIM server + +To sync a user who exists in Okta but not our app, we'll first need to create a user in Okta. From within the Okta Admin Console sidebar, navigate to **Directory** > **People**. Press the **Add Person** button and add a person with the default **User type** of "User" with a **First name** of "Tom", **Last name** of "Anderson", **Username** of "tom.anderson@fake.domain", and press **Save**. + +You can now go back to your SCIM Application. Navigate to **Applications** > **Applications** in the sidebar. Find your SCIM app and press on the list item to edit it. In the **Assignments** tab, click the **Assign** button and select **Assign to People** in the dropdown menu. Click the **Assign** button next to "Tom Anderson" in the user list, and press **Save and Go Back** to accept the default values. Press the **Done** button to save your changes. On the Swagger UI, double-check that Tom is in the downstream server by making a GET /scim/v2/users request to list all current users. + +### Deprovision a user + +Let's say Tom's contract with the company ends, and you must deprovision him from the application. + +In the **Assignments** tab of the Okta SCIM application, find "Tom Anderson" and press the **X** button next to Tom's entry to unassign them from the app. This unassignment triggers Okta to send a PATCH request to your .NET SCIM server, setting the unassigned user's `active` attribute to `false` which indicates that a user's account is deactivated. + +We can confirm that Tom's `active` attribute is now `false` in the Swagger UI by making a request to the GET /scim/v2/users endpoint filtering for Tom's email "tom.anderson@fake.domain". + +### Reprovision a user + +Let's say Tom gets hired full-time with the company and needs access to the application again. + +To reactivate Tom's account, we will repeat the steps for assigning his Okta account to the application. Reactivating Tom causes Okta to send a PATCH request to your scim server, setting their `active` attribute to `true`. + +Again, we can confirm that Tom's account is now `active` through the Swagger UI by making a request to the GET Users endpoint filtering for Tom's email "tom.anderson@fake.domain". + +### Change a user's info in Okta + +Let's look at one more scenario. Let's say not only has Tom returned, but he also changed his name! Worry not, as our SCIM connection will automatically propagate this profile update. Let's change Tom's name to Leo and watch how Okta sends the new name to the .NET SCIM server. + +In the Okta Admin Console sidebar, navigate to **Directory** > **People**, and click on Tom's name in the user list to edit their settings. In the **Profile** tab, click **Edit** in the **Attributes** pane. Change the `firstName` field to "Leo", and update their `login` and `email` to `leo.anderson@fake.domain`. Use the **Save** button at the bottom of the page to save your changes. Again, on the Swagger UI, double-check Tom's updated name by making a GET /scim/v2/users request to list all current users. + +## Troubleshooting tip: + +If you are experiencing import issues with Okta, double-check to see that your previous SCIM base URL is not cached under the Provisioning > Integration tab. If it is cached, requests will not be made to your .NET SCIM server. + +## Next steps - more exploration + - You can get the complete sample code for this .NET SCIM Server project from [GitHub]. + - Inspect traffic to see the contents of request/response. If you use ngrok, you can use http://localhost:4040 + - Now you can add more users, update users, or remove users and explore more SCIM interactions + - You can extend resources supported by adding groups + - Change authentication to use basic auth or header auth + - Update the SCIM model to add more attributes you might need + +## Keep experimenting with SCIM + +This tutorial provides the fundamental steps to create your .NET SCIM server to manage user lifecycle with an identity provider such as Okta. You can go further and create an application that authenticates users using the same identity provider to provide Single Sign On to users already provisioned through your .NET SCIM server. + +- [Enterprise-Ready Workshop: Manage users with SCIM](/blog/2023/07/28/scim-workshop) +- [Enterprise-Ready Workshop: Authenticate with OpenID Connect](/blog/2023/07/28/oidc_workshop) + +You can further manage your users and groups using Terraform or Workflows: +- [Enterprise Maturity Workshop: Terraform](/blog/2023/07/28/terraform-workshop) +- [Enterprise Ready Workshop: Automate with no-code Okta Workflows](/blog/2023/09/15/workflows-workshop) + +Excited to learn more about creating secure .NET apps? Follow us on [Twitter](https://twitter.com/oktadev) and subscribe to our [YouTube](https://www.youtube.com/c/oktadev) channel. If you have any questions or you want to share what tutorial you'd like to see next, please comment below! \ No newline at end of file From 5f48dec0dea5107bce5b7d4a6109a2dedbbf9b4e Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Fri, 23 Feb 2024 10:34:12 -0800 Subject: [PATCH 02/24] Update _source/_posts/2024-02-20-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-20-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-20-net-scim.md b/_source/_posts/2024-02-20-net-scim.md index c71994f7de..33cb4e56f3 100644 --- a/_source/_posts/2024-02-20-net-scim.md +++ b/_source/_posts/2024-02-20-net-scim.md @@ -25,7 +25,7 @@ There are two primary components for a SCIM integration. The first is the *SCIM ## Build a .NET SCIM server -### Prerequisites +**Prerequisites** - dotnet SDK (I used [dotnet 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) in this demo) - Code Editor (I used Visual Studio Code) - [Okta CLI](https://cli.okta.com/) From aa566e82b35e8cc4cdc7e7179d2c73e924693a3d Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Fri, 23 Feb 2024 10:34:50 -0800 Subject: [PATCH 03/24] Update _source/_posts/2024-02-20-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-20-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-20-net-scim.md b/_source/_posts/2024-02-20-net-scim.md index 33cb4e56f3..b13ddd16d9 100644 --- a/_source/_posts/2024-02-20-net-scim.md +++ b/_source/_posts/2024-02-20-net-scim.md @@ -17,7 +17,7 @@ type: awareness Several challenges exist in provisioning users for a growing company across systems and applications. It can be time-consuming, error-prone, challenging to sync users across domains, and potentially a security risk to keep track of existing profiles. Fortunately, a protocol called SCIM (System for Cross-domain Identity Management) standardizes user information across systems, making it possible to sync users. Also, combined with a SCIM-compliant Identity Provider (IdP), it securely automates common user lifecycle operations. In this tutorial, I'll walk you through building a .NET SCIM server with the CRUD (Create, Read, Update, Delete) Restful API endpoints outlined in the SCIM protocol. We'll then test the server using Swagger User Interface before integrating it with Okta, a SCIM compliant IdP. -## What is SCIM? +## Use SCIM to manage users [SCIM](https://datatracker.ietf.org/doc/html/rfc7644)is an HTTP-based protocol that defines a set of standard endpoints and schemas that developers can use to overcome complexity in implementing user lifecycle management operations across different systems. ## Components of a SCIM integration From 2e6526873e1f2724696e3c8f3ad8d7175e0180c5 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Fri, 23 Feb 2024 10:35:44 -0800 Subject: [PATCH 04/24] Update _source/_posts/2024-02-20-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-20-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-20-net-scim.md b/_source/_posts/2024-02-20-net-scim.md index b13ddd16d9..37529f419d 100644 --- a/_source/_posts/2024-02-20-net-scim.md +++ b/_source/_posts/2024-02-20-net-scim.md @@ -50,7 +50,7 @@ Before you begin, you'll need a free Okta developer account. We'll use the [Okta - Enter your Post Logout Redirect URI(s): leave default - Keep `Issuer` and `ClientId` for configuring later -### Create the database models +### Create the database models using Entity Framework This sample uses `EntityFrameworkCore` as the Object Relational Mapper (ORM) and `Sqlite` as the database. Let's develop the database models! Add the required dependencies by running the following commands From fdafc69c332a2f7b4aae02cccd769b5e4170c55e Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Fri, 23 Feb 2024 12:14:13 -0800 Subject: [PATCH 05/24] Update 2024-02-20-net-scim.md --- _source/_posts/2024-02-20-net-scim.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/_source/_posts/2024-02-20-net-scim.md b/_source/_posts/2024-02-20-net-scim.md index 37529f419d..927b5b446d 100644 --- a/_source/_posts/2024-02-20-net-scim.md +++ b/_source/_posts/2024-02-20-net-scim.md @@ -12,6 +12,7 @@ tweets: - "" image: blog/net-scim/social.jpg type: awareness +github: https://github.com/oktadev/okta-net-scim-example --- Several challenges exist in provisioning users for a growing company across systems and applications. It can be time-consuming, error-prone, challenging to sync users across domains, and potentially a security risk to keep track of existing profiles. Fortunately, a protocol called SCIM (System for Cross-domain Identity Management) standardizes user information across systems, making it possible to sync users. Also, combined with a SCIM-compliant Identity Provider (IdP), it securely automates common user lifecycle operations. @@ -31,11 +32,9 @@ There are two primary components for a SCIM integration. The first is the *SCIM - [Okta CLI](https://cli.okta.com/) ### Create a .NET project -- Open a new terminal window (within VS Code) -- Create a new folder named *okta-scim-server-dotnet* using the command `mkdir okta-scim-server-dotnet` -- Switch into this folder using the command `cd okta-scim-server-dotnet` -- Create a new API project using the command `dotnet new webapi` -- Trust the self-signed TLS certs using the command `dotnet dev-certs https --trust` +Create a directory called `okta-scim-server-dotnet`. Navigate to the directory in your terminal, then run the following commands: +- `dotnet new webapi` (Creates a new API project) +- `dotnet dev-certs https --trust` (Trust the self-signed TLS certs) ### Test the .NET project using Swagger UI - Run the project using the command `dotnet watch --launch-profile https` @@ -278,7 +277,7 @@ We can then migrate the coded database models and data into the actual database. - Prepare db migration by running `dotnet ef migrations add InitialScimDb` - Apply these changes to db by running `dotnet ef database update`. This command would have created a file named `scim-dev.db` in your project folder. - *Optional:* Test db creation using the command line tool, - - You should have sqllite3 client installed. (I had this OOB in Mac OS) + - You should have [sqlite3](https://www.sqlite.org/index.html) client installed. (I had this our of the box in Mac OS) - Connect using`sqlite3 <>/scim-dev.db` - List tables using `.tables` - List users by running `select * from Users;` @@ -1883,12 +1882,12 @@ Let's look at one more scenario. Let's say not only has Tom returned, but he als In the Okta Admin Console sidebar, navigate to **Directory** > **People**, and click on Tom's name in the user list to edit their settings. In the **Profile** tab, click **Edit** in the **Attributes** pane. Change the `firstName` field to "Leo", and update their `login` and `email` to `leo.anderson@fake.domain`. Use the **Save** button at the bottom of the page to save your changes. Again, on the Swagger UI, double-check Tom's updated name by making a GET /scim/v2/users request to list all current users. -## Troubleshooting tip: +**Troubleshooting tip** -If you are experiencing import issues with Okta, double-check to see that your previous SCIM base URL is not cached under the Provisioning > Integration tab. If it is cached, requests will not be made to your .NET SCIM server. +If you are experiencing import issues with Okta, double-check that your previous SCIM base URL is not cached under the Provisioning > Integration tab. If it is cached, requests will not be made to your .NET SCIM server. ## Next steps - more exploration - - You can get the complete sample code for this .NET SCIM Server project from [GitHub]. + - You can get the complete sample code for this .NET SCIM Server project from [GitHub](https://github.com/oktadev/okta-net-scim-example). - Inspect traffic to see the contents of request/response. If you use ngrok, you can use http://localhost:4040 - Now you can add more users, update users, or remove users and explore more SCIM interactions - You can extend resources supported by adding groups @@ -1906,4 +1905,4 @@ You can further manage your users and groups using Terraform or Workflows: - [Enterprise Maturity Workshop: Terraform](/blog/2023/07/28/terraform-workshop) - [Enterprise Ready Workshop: Automate with no-code Okta Workflows](/blog/2023/09/15/workflows-workshop) -Excited to learn more about creating secure .NET apps? Follow us on [Twitter](https://twitter.com/oktadev) and subscribe to our [YouTube](https://www.youtube.com/c/oktadev) channel. If you have any questions or you want to share what tutorial you'd like to see next, please comment below! \ No newline at end of file +Excited to learn more about creating secure .NET apps? Follow us on [Twitter](https://twitter.com/oktadev) and subscribe to our [YouTube](https://www.youtube.com/c/oktadev) channel. If you have any questions or you want to share what tutorial you'd like to see next, please comment below! From 156e356e797b6c72a9422d28d896246385b1f812 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Sun, 25 Feb 2024 17:35:13 -0800 Subject: [PATCH 06/24] Update and rename 2024-02-20-net-scim.md to 2024-02-29-net-scim.md --- ...2024-02-20-net-scim.md => 2024-02-29-net-scim.md} | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) rename _source/_posts/{2024-02-20-net-scim.md => 2024-02-29-net-scim.md} (99%) diff --git a/_source/_posts/2024-02-20-net-scim.md b/_source/_posts/2024-02-29-net-scim.md similarity index 99% rename from _source/_posts/2024-02-20-net-scim.md rename to _source/_posts/2024-02-29-net-scim.md index 927b5b446d..a6857a811e 100644 --- a/_source/_posts/2024-02-20-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -41,13 +41,11 @@ Create a directory called `okta-scim-server-dotnet`. Navigate to the directory i - At this point using the *https://localhost:[port]/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser. ### Setup Okta (the IdP) -Before you begin, you'll need a free Okta developer account. We'll use the [Okta CLI](https://cli.okta.com/) to create an account via your terminal. Follow the installation instructions provided [here](https://cli.okta.com/manual/). On the same terminal where you ran the installation, run the `okta register` command to sign up for a new account. If you already have an account, run the command `okta login` instead. -- Then, run `okta apps create` -- Application name: `okta dotnet swagger client` -- Type of Application: `Single Page App` -- Enter your Redirect URI(s): `https://localhost:[port]]/swagger/oauth2-redirect.html` (Port is from previous testing step) -- Enter your Post Logout Redirect URI(s): leave default -- Keep `Issuer` and `ClientId` for configuring later +Before you begin, you'll need a free Okta developer account. We'll use the [Okta CLI](https://cli.okta.com/) to create an account via your terminal. + +{% include setup/cli.md type="spa" framework=“ASP.NET Core” loginRedirectUri="https://localhost:[port]]/swagger/oauth2-redirect.html" logoutRedirectUri="https://localhost:[port]]/swagger/oauth2-redirect.html" %} + +Note the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. ### Create the database models using Entity Framework This sample uses `EntityFrameworkCore` as the Object Relational Mapper (ORM) and `Sqlite` as the database. Let's develop the database models! From 523d346f8b2ac62367524f76efec241642759f8a Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Mon, 26 Feb 2024 13:56:35 -0800 Subject: [PATCH 07/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index a6857a811e..27e8492153 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -38,12 +38,12 @@ Create a directory called `okta-scim-server-dotnet`. Navigate to the directory i ### Test the .NET project using Swagger UI - Run the project using the command `dotnet watch --launch-profile https` -- At this point using the *https://localhost:[port]/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser. +- At this point using the *https://localhost:7094/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser. ### Setup Okta (the IdP) Before you begin, you'll need a free Okta developer account. We'll use the [Okta CLI](https://cli.okta.com/) to create an account via your terminal. -{% include setup/cli.md type="spa" framework=“ASP.NET Core” loginRedirectUri="https://localhost:[port]]/swagger/oauth2-redirect.html" logoutRedirectUri="https://localhost:[port]]/swagger/oauth2-redirect.html" %} +{% include setup/cli.md type="spa" framework=“ASP.NET Core” loginRedirectUri="https://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="https://localhost:7094/swagger/oauth2-redirect.html" %} Note the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. From 36398d070bb276c2318a52bf66ae69c79988b29e Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Mon, 26 Feb 2024 14:21:20 -0800 Subject: [PATCH 08/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 27e8492153..4bff74e93a 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -43,7 +43,7 @@ Create a directory called `okta-scim-server-dotnet`. Navigate to the directory i ### Setup Okta (the IdP) Before you begin, you'll need a free Okta developer account. We'll use the [Okta CLI](https://cli.okta.com/) to create an account via your terminal. -{% include setup/cli.md type="spa" framework=“ASP.NET Core” loginRedirectUri="https://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="https://localhost:7094/swagger/oauth2-redirect.html" %} +{% include setup/cli.md type="spa" framework="ASP.NET Core" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} Note the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. From 69fbd8d709d3ae9726fdde2bf48b1037b6e83f05 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Mon, 26 Feb 2024 17:27:46 -0800 Subject: [PATCH 09/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 4bff74e93a..1924d3b34b 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -19,7 +19,7 @@ Several challenges exist in provisioning users for a growing company across syst In this tutorial, I'll walk you through building a .NET SCIM server with the CRUD (Create, Read, Update, Delete) Restful API endpoints outlined in the SCIM protocol. We'll then test the server using Swagger User Interface before integrating it with Okta, a SCIM compliant IdP. ## Use SCIM to manage users -[SCIM](https://datatracker.ietf.org/doc/html/rfc7644)is an HTTP-based protocol that defines a set of standard endpoints and schemas that developers can use to overcome complexity in implementing user lifecycle management operations across different systems. +[SCIM](https://datatracker.ietf.org/doc/html/rfc7644) is an HTTP-based protocol that defines a set of standard endpoints and schemas that developers can use to overcome complexity in implementing user lifecycle management operations across different systems. ## Components of a SCIM integration There are two primary components for a SCIM integration. The first is the *SCIM server*, which is a server that has implemented the endpoints as described in the SCIM spec - for example, User endpoints, Group endpoints, Schemas endpoints, etc. The applications team typically develops these endpoints, which leaves the IdP to manage the user profiles. This blog will detail how to create a sample SCIM server using .NET. The other component is the *SCIM client*, which makes SCIM-compliant HTTP calls to a SCIM server to exchange user profile information. Okta (the IdP), in our use case, will act as a SCIM client and call the .NET SCIM server we'll build using this tutorial. @@ -31,6 +31,8 @@ There are two primary components for a SCIM integration. The first is the *SCIM - Code Editor (I used Visual Studio Code) - [Okta CLI](https://cli.okta.com/) +{% include toc.md %} + ### Create a .NET project Create a directory called `okta-scim-server-dotnet`. Navigate to the directory in your terminal, then run the following commands: - `dotnet new webapi` (Creates a new API project) @@ -41,8 +43,6 @@ Create a directory called `okta-scim-server-dotnet`. Navigate to the directory i - At this point using the *https://localhost:7094/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser. ### Setup Okta (the IdP) -Before you begin, you'll need a free Okta developer account. We'll use the [Okta CLI](https://cli.okta.com/) to create an account via your terminal. - {% include setup/cli.md type="spa" framework="ASP.NET Core" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} Note the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. @@ -1812,7 +1812,7 @@ After setting up an account with ngrok: 1. Use the tunnel on a separate terminal from where you are running your .NET SCIM server. 2. Run `ngrok http <>` (you can get this port from *Properties/launchSettings.json*). 3. Note down the domain listed in the console (this is the *scim server domain*). -4. Open http://localhost:4040 to inspect traffic. +4. Open the web interface hosted on http://localhost:4040 to inspect the network traffic between Okta and the SCIM server. ### Create a SCIM provisioning application in Okta @@ -1880,21 +1880,13 @@ Let's look at one more scenario. Let's say not only has Tom returned, but he als In the Okta Admin Console sidebar, navigate to **Directory** > **People**, and click on Tom's name in the user list to edit their settings. In the **Profile** tab, click **Edit** in the **Attributes** pane. Change the `firstName` field to "Leo", and update their `login` and `email` to `leo.anderson@fake.domain`. Use the **Save** button at the bottom of the page to save your changes. Again, on the Swagger UI, double-check Tom's updated name by making a GET /scim/v2/users request to list all current users. -**Troubleshooting tip** - -If you are experiencing import issues with Okta, double-check that your previous SCIM base URL is not cached under the Provisioning > Integration tab. If it is cached, requests will not be made to your .NET SCIM server. - -## Next steps - more exploration - - You can get the complete sample code for this .NET SCIM Server project from [GitHub](https://github.com/oktadev/okta-net-scim-example). - - Inspect traffic to see the contents of request/response. If you use ngrok, you can use http://localhost:4040 - - Now you can add more users, update users, or remove users and explore more SCIM interactions - - You can extend resources supported by adding groups - - Change authentication to use basic auth or header auth - - Update the SCIM model to add more attributes you might need +>**Troubleshooting**: If you are experiencing import issues with Okta, double-check that your previous SCIM base URL is not cached under the Provisioning > Integration tab. If it is cached, requests will not be made to your .NET SCIM server. ## Keep experimenting with SCIM -This tutorial provides the fundamental steps to create your .NET SCIM server to manage user lifecycle with an identity provider such as Okta. You can go further and create an application that authenticates users using the same identity provider to provide Single Sign On to users already provisioned through your .NET SCIM server. +This tutorial provides the fundamental steps to create your .NET SCIM server to manage user lifecycle with an identity provider such as Okta. You can get the complete sample code for this project from [here](https://github.com/oktadev/okta-net-scim-example). Now, you can extend resources supported by adding groups. Or update the SCIM model to add more attributes you may need. + +You can go even further and create an application that authenticates users using the same identity provider to provide Single Sign On to users already provisioned through your .NET SCIM server. - [Enterprise-Ready Workshop: Manage users with SCIM](/blog/2023/07/28/scim-workshop) - [Enterprise-Ready Workshop: Authenticate with OpenID Connect](/blog/2023/07/28/oidc_workshop) From 9898f066e54bec83a5f5948c5d1dd1624d6d0c60 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Mon, 26 Feb 2024 18:23:05 -0800 Subject: [PATCH 10/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 1924d3b34b..c82de0c672 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -1337,7 +1337,7 @@ The expected response will be something like below with `200` status. ``` Feel free to test it out with an invalid user id to get a `404` response. -### Secure your .NET SCIM server endpoints +## Secure your .NET SCIM server endpoints Now that endpoints are created and tested. It is time to secure it before integration with Okta. Okta recommends at least one of three ways to secure your server. For this sample, we will use *oAuth* using the `Okta.AspNetCore` package. - Install dependency by running `dotnet add package Okta.AspNetCore` @@ -1556,8 +1556,8 @@ app.Run(); .WithOpenApi() .RequireAuthorization(); ``` -### Bootstrap OAuth to Swagger UI -- Update `Okta` section in `Properties/appsettings.json` with the *Client ID* from earlier [section](#setup-okta) +## Bootstrap OAuth to Swagger UI +Update `Okta` section in `Properties/appsettings.json` with the *Client ID* from earlier [section](#setup-okta) ```json "Okta": { "OktaDomain": "https://${yourOktaDomain}.com", @@ -1804,7 +1804,7 @@ app.Run(); - At this point, our OAuth implementation can now can be tested on our CRUD endpoints. However, this needs an additional step. The Swagger UI should now have an `Authorize` button, click on this button, then click on the `select all` option under `Scopes` before clicking on the `Authorize` button again. If you do not authenticate, you will get `401` responses from any of the endpoints we've protected. -### Test requests to the .NET SCIM server locally using a tunnel +## Test requests to the .NET SCIM server locally using a tunnel Okta will need to make requests to your server; therefore, you will need to expose your .NET SCIM server to the internet. One way to give your app a public URL or IP would be to host it on a cloud instance with DNS that you control. For development purposes, you can use ngrok or Localtunnel to provide a public address to the app running on your computer. In this project, we will be using [ngrok](https://ngrok.com/). Feel free to use any other tunneling tool such as [localtunnel](https://github.com/localtunnel/localtunnel). @@ -1814,7 +1814,7 @@ After setting up an account with ngrok: 3. Note down the domain listed in the console (this is the *scim server domain*). 4. Open the web interface hosted on http://localhost:4040 to inspect the network traffic between Okta and the SCIM server. -### Create a SCIM provisioning application in Okta +## Create a SCIM provisioning application in Okta Log in to your [Okta Developer Account](https://developer.okta.com/login/) that you created previously. From a151649aa44ed6865da03faee4bdb5af9856856b Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Mon, 26 Feb 2024 18:40:47 -0800 Subject: [PATCH 11/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index c82de0c672..f99e859e02 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -1557,7 +1557,7 @@ app.Run(); .RequireAuthorization(); ``` ## Bootstrap OAuth to Swagger UI -Update `Okta` section in `Properties/appsettings.json` with the *Client ID* from earlier [section](#setup-okta) +Update `Okta` section in `Properties/appsettings.json` with the *Client ID* from earlier [section](#setup-okta-the-idp). ```json "Okta": { "OktaDomain": "https://${yourOktaDomain}.com", From 14e930971223d2d4642aacbe2fbf35029d83093d Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Wed, 28 Feb 2024 12:32:35 -0800 Subject: [PATCH 12/24] Update _source/_posts/2024-02-29-net-scim.md Co-authored-by: Colton Beach <98902851+cbeac243@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index f99e859e02..96e79a566c 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -40,7 +40,7 @@ Create a directory called `okta-scim-server-dotnet`. Navigate to the directory i ### Test the .NET project using Swagger UI - Run the project using the command `dotnet watch --launch-profile https` -- At this point using the *https://localhost:7094/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser. +- At this point using the *https://localhost:7094/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser: ### Setup Okta (the IdP) {% include setup/cli.md type="spa" framework="ASP.NET Core" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} From fc89d63996630847e24a7f00020b73cd1ce26b22 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Wed, 28 Feb 2024 12:34:26 -0800 Subject: [PATCH 13/24] Update _source/_posts/2024-02-29-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 96e79a566c..330acb7443 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -19,7 +19,7 @@ Several challenges exist in provisioning users for a growing company across syst In this tutorial, I'll walk you through building a .NET SCIM server with the CRUD (Create, Read, Update, Delete) Restful API endpoints outlined in the SCIM protocol. We'll then test the server using Swagger User Interface before integrating it with Okta, a SCIM compliant IdP. ## Use SCIM to manage users -[SCIM](https://datatracker.ietf.org/doc/html/rfc7644) is an HTTP-based protocol that defines a set of standard endpoints and schemas that developers can use to overcome complexity in implementing user lifecycle management operations across different systems. +[SCIM](https://datatracker.ietf.org/doc/html/rfc7644) is an HTTP-based protocol defining standard endpoints and schemas to overcome complexity when implementing user lifecycle management operations across different systems. ## Components of a SCIM integration There are two primary components for a SCIM integration. The first is the *SCIM server*, which is a server that has implemented the endpoints as described in the SCIM spec - for example, User endpoints, Group endpoints, Schemas endpoints, etc. The applications team typically develops these endpoints, which leaves the IdP to manage the user profiles. This blog will detail how to create a sample SCIM server using .NET. The other component is the *SCIM client*, which makes SCIM-compliant HTTP calls to a SCIM server to exchange user profile information. Okta (the IdP), in our use case, will act as a SCIM client and call the .NET SCIM server we'll build using this tutorial. From e5213600d7579e47f6ede8c5e1aede3994d81ba2 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Wed, 28 Feb 2024 12:35:53 -0800 Subject: [PATCH 14/24] Update _source/_posts/2024-02-29-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 330acb7443..eb7e52c5cd 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -22,7 +22,7 @@ In this tutorial, I'll walk you through building a .NET SCIM server with the CRU [SCIM](https://datatracker.ietf.org/doc/html/rfc7644) is an HTTP-based protocol defining standard endpoints and schemas to overcome complexity when implementing user lifecycle management operations across different systems. ## Components of a SCIM integration -There are two primary components for a SCIM integration. The first is the *SCIM server*, which is a server that has implemented the endpoints as described in the SCIM spec - for example, User endpoints, Group endpoints, Schemas endpoints, etc. The applications team typically develops these endpoints, which leaves the IdP to manage the user profiles. This blog will detail how to create a sample SCIM server using .NET. The other component is the *SCIM client*, which makes SCIM-compliant HTTP calls to a SCIM server to exchange user profile information. Okta (the IdP), in our use case, will act as a SCIM client and call the .NET SCIM server we'll build using this tutorial. +There are two primary components for a SCIM integration. The first is the *SCIM server*, which is a server that has implemented the endpoints as described in the SCIM spec—for example, User endpoints, Group endpoints, Schemas endpoints, etc. The applications team typically develops these endpoints, which leaves the IdP to manage the user profiles. This blog will detail creating a sample SCIM server using .NET. The other component is the *SCIM client*, which makes SCIM-compliant HTTP calls to a SCIM server to exchange user profile information. Okta (the IdP), in our use case, will act as a SCIM client and call the .NET SCIM server we'll build using this tutorial. ## Build a .NET SCIM server From 82f3c8312778b9d391741c58f05030beddcee386 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Wed, 28 Feb 2024 12:40:06 -0800 Subject: [PATCH 15/24] Apply suggestions from code review Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> Co-authored-by: Colton Beach <98902851+cbeac243@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index eb7e52c5cd..cb87162aec 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -43,7 +43,7 @@ Create a directory called `okta-scim-server-dotnet`. Navigate to the directory i - At this point using the *https://localhost:7094/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser: ### Setup Okta (the IdP) -{% include setup/cli.md type="spa" framework="ASP.NET Core" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} +{% include setup/cli.md type="spa" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} Note the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. @@ -90,7 +90,7 @@ public class Email public virtual User User { get; set; } } ``` -Add DB context for each entity framework in the `DataModels.cs` file, i.e., to the two models we created above. We'll also add some seed data using the method `OnModelCreating`, which will be useful for testing. In this sample, we will create support for the User resource type. However, if you want to expand on this, you can use similar concepts to maintain endpoints for other resource types, such as Group. Paste the following code just below the `Email` class: +Add DB context for each entity framework in the `DataModels.cs` file, (i.e., to the two models we created above.) We'll also add some seed data using the method `OnModelCreating`, which will be useful for testing. In this sample, we will create support for the User resource type. However, if you want to expand on this, you can use similar concepts to maintain endpoints for other resource types, such as Group. Paste the following code just below the `Email` class: ```c# public partial class ScimDbContext : DbContext { @@ -365,7 +365,7 @@ public class ScimEmail } ``` We also need to create mappers between DB models and SCIM models to avoid many manual conversions. For this, we will use the `AutoMapper` package. -- Install dependencies by running the following commands +- Install dependencies by running the following commands: - `dotnet add package AutoMapper` - `dotnet add package Automapper.Extensions.Microsoft.DependencyInjection` - Add Mappings to `ScimModels.cs`: @@ -557,7 +557,7 @@ record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) ``` ### Create the .NET SCIM server RESTful API endpoints -Since we have created the necessary data and SCIM models. We can move on to creating the endpoints for user lifecycle management. First, let's set up dependencies, some basic global configuration, and clean up unnecessary code +Since we have created the necessary data and SCIM models. We can move on to creating the endpoints for user lifecycle management. First, let's set up dependencies, some basic global configuration, and clean up unnecessary code. - Install dependencies by running `dotnet add package Newtonsoft.Json` - At the top of the `Program.cs` file, add `using` statements ```c# @@ -619,7 +619,7 @@ app.Run(); ``` ### Retrieve a user -We are using minimal APIs for creating endpoints. For retrieving a user, let's create the route that expects the user's `id` in the path and responds with a single `ScimUser` object if found and a `ScimErrorResponse` if the user doesn't exist. Add the following code before `app.Run();` in the `Program.cs` file. +We are using minimal APIs for creating endpoints. For retrieving a user, let's create the route that expects the user's `id` in the path and responds with a single `ScimUser` object if found and a `ScimErrorResponse` if the user doesn't exist. Add the following code before `app.Run();` in the `Program.cs` file: ```c# var scimPrefix = "/scim/v2"; var userRoute = $"{scimPrefix}/users"; @@ -1802,7 +1802,7 @@ app.MapPatch(userRoute + "/{id}", async Task (int id, [FromBody] JsonDo app.Run(); ``` -- At this point, our OAuth implementation can now can be tested on our CRUD endpoints. However, this needs an additional step. The Swagger UI should now have an `Authorize` button, click on this button, then click on the `select all` option under `Scopes` before clicking on the `Authorize` button again. If you do not authenticate, you will get `401` responses from any of the endpoints we've protected. +- At this point, our OAuth implementation can now can be tested on our CRUD endpoints. However, this needs an additional step. The Swagger UI should now have an `Authorize` button. Click on this button, then click on the `select all` option under `Scopes` before clicking on the `Authorize` button again. If you do not authenticate, you will get `401` responses from any of the endpoints we've protected. ## Test requests to the .NET SCIM server locally using a tunnel @@ -1830,7 +1830,7 @@ Keep the default settings in the **Sign-On Options** dialog, as our app doesn't In the **Provisioning** tab of the application, press the **Configure API Integration** button and check the **Enable API Integration** checkbox. Provide the **Base URL**, which is the ngrok localtunnel URL with `/scim/v2` appended to the end. The **OAuth Bearer Token** is can be retrieved from the test you did above either from UI or curl. Press **Save** to save the settings. -For example, below is a highlighted sample base URL from ngrok. +For example, below is a highlighted sample base URL from ngrok: {% img blog/net-scim/ngrok.jpeg alt:"Image of highlighted sample base URL from ngrok" width:"800" %}{: .center-image } @@ -1870,7 +1870,7 @@ We can confirm that Tom's `active` attribute is now `false` in the Swagger UI by Let's say Tom gets hired full-time with the company and needs access to the application again. -To reactivate Tom's account, we will repeat the steps for assigning his Okta account to the application. Reactivating Tom causes Okta to send a PATCH request to your scim server, setting their `active` attribute to `true`. +To reactivate Tom's account, we will repeat the steps for assigning his Okta account to the application. Reactivating Tom causes Okta to send a PATCH request to your SCIM server, setting their `active` attribute to `true`. Again, we can confirm that Tom's account is now `active` through the Swagger UI by making a request to the GET Users endpoint filtering for Tom's email "tom.anderson@fake.domain". From 4ccd1e9fbc473603659f3a192d8c1bd9124d970a Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Wed, 28 Feb 2024 12:48:53 -0800 Subject: [PATCH 16/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index cb87162aec..17610ba22a 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -51,10 +51,13 @@ Note the `Issuer` and the `Client ID`. You'll need those values for your authent This sample uses `EntityFrameworkCore` as the Object Relational Mapper (ORM) and `Sqlite` as the database. Let's develop the database models! Add the required dependencies by running the following commands -- `dotnet tool install --global dotnet-ef` -- `dotnet add package Microsoft.EntityFrameworkCore.Tools` -- `dotnet add package Microsoft.EntityFrameworkCore.Design` -- `dotnet add package Microsoft.EntityFrameworkCore.Sqlite` + +```shell +dotnet tool install --global dotnet-ef +dotnet add package Microsoft.EntityFrameworkCore.Tools +dotnet add package Microsoft.EntityFrameworkCore.Design +dotnet add package Microsoft.EntityFrameworkCore.Sqlite +``` Create a `DataModels.cs` file and add the required model classes for `User` and child object `Email`. ```c# @@ -90,7 +93,7 @@ public class Email public virtual User User { get; set; } } ``` -Add DB context for each entity framework in the `DataModels.cs` file, (i.e., to the two models we created above.) We'll also add some seed data using the method `OnModelCreating`, which will be useful for testing. In this sample, we will create support for the User resource type. However, if you want to expand on this, you can use similar concepts to maintain endpoints for other resource types, such as Group. Paste the following code just below the `Email` class: +Add DB context for each entity framework in the `DataModels.cs` file, (i.e., to the two models we created above). We'll also add some seed data using the method `OnModelCreating`, which will be useful for testing. In this sample, we will create support for the User resource type. However, if you want to expand on this, you can use similar concepts to maintain endpoints for other resource types, such as Group. Paste the following code just below the `Email` class: ```c# public partial class ScimDbContext : DbContext { @@ -366,8 +369,10 @@ public class ScimEmail ``` We also need to create mappers between DB models and SCIM models to avoid many manual conversions. For this, we will use the `AutoMapper` package. - Install dependencies by running the following commands: - - `dotnet add package AutoMapper` - - `dotnet add package Automapper.Extensions.Microsoft.DependencyInjection` + ``` + dotnet add package AutoMapper + dotnet add package Automapper.Extensions.Microsoft.DependencyInjection + ``` - Add Mappings to `ScimModels.cs`: - At the top of the file, add the `using` statement ```c# From f3e8b9535aee45f6d3f8bf3e8bc8f0ca6b83cd5f Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Wed, 28 Feb 2024 14:23:48 -0800 Subject: [PATCH 17/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 349 ++------------------------ 1 file changed, 18 insertions(+), 331 deletions(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 17610ba22a..755c09170d 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -4,7 +4,7 @@ title: "How to Manage User Lifecycle with .NET and SCIM" author: ram-gandhi by: contractor communities: [.net] -description: "Manage your users' lifecycle using .NET, SCIM, and an Identity Provider such as Okta." +description: "Manage your user's lifecycles using .NET, SCIM, and an Identity Provider such as Okta." tags: [scim,dotnet] tweets: - "" @@ -35,13 +35,17 @@ There are two primary components for a SCIM integration. The first is the *SCIM ### Create a .NET project Create a directory called `okta-scim-server-dotnet`. Navigate to the directory in your terminal, then run the following commands: -- `dotnet new webapi` (Creates a new API project) -- `dotnet dev-certs https --trust` (Trust the self-signed TLS certs) +``` +`dotnet new webapi` (Creates a new API project) +`dotnet dev-certs https --trust` (Trust the self-signed TLS certs) +``` ### Test the .NET project using Swagger UI - Run the project using the command `dotnet watch --launch-profile https` - At this point using the *https://localhost:7094/swagger/index.html* you will be able to see the Swagger UI. Typically, a browser tab will automatically open; if not, manually check for the URL to the Swagger UI under `Properties/launchSettings.json` and copy/paste this URL onto the browser: +>**Note**: You may get different ports so be sure to double-check the URLs in `Properties/launchSettings.json`. + ### Setup Okta (the IdP) {% include setup/cli.md type="spa" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} @@ -284,7 +288,7 @@ We can then migrate the coded database models and data into the actual database. - List users by running `select * from Users;` - Then exit using `.exit` -### Create SCIM models and mapping +### Create SCIM complaint request and response models Having taken care of data models and database creation, let's move on to creating SCIM-compliant models. Our requests and responses will be using these models to communicate with SCIM clients. Create a new file, `ScimModels.cs`, and add the following SCIM models: - `ScimListResourceRequest` is used when listing resources. It has pagination and filtering parameters. - `ScimListResourceResponse` is used when returning a list of resources. Since this is a generic model, it can therefore be used for multiple resource types. @@ -644,29 +648,7 @@ app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, I The `Program.cs` file should now look like this: ```c# -using Microsoft.EntityFrameworkCore; -using okta_scim_server_dotnet; -using AutoMapper; -using System.Text.Json.Serialization; -using System.Text.Json; -using System.Net; -using Microsoft.AspNetCore.Mvc; - -var builder = WebApplication.CreateBuilder(args); - -builder.Services.ConfigureHttpJsonOptions(options => { - options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; - options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; -}); - -// Add services to the container. -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); - -builder.Services.AddDbContextPool( - options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) -); +//..........Omitted for brevity.......... builder.Services.AddAutoMapper(typeof(Program).Assembly); @@ -760,42 +742,7 @@ app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, Sci The `Program.cs` file should now look like this: ```c# -using Microsoft.EntityFrameworkCore; -using okta_scim_server_dotnet; -using AutoMapper; -using System.Text.Json.Serialization; -using System.Text.Json; -using System.Net; -using Microsoft.AspNetCore.Mvc; - -var builder = WebApplication.CreateBuilder(args); - -builder.Services.ConfigureHttpJsonOptions(options => { - options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; - options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; -}); - -// Add services to the container. -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); - -builder.Services.AddDbContextPool( - options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) -); - -builder.Services.AddAutoMapper(typeof(Program).Assembly); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseSwagger(); - app.UseSwaggerUI(); -} - -app.UseHttpsRedirection(); +//..........Omitted for brevity.......... var scimPrefix = "/scim/v2"; var userRoute = $"{scimPrefix}/users"; @@ -874,56 +821,7 @@ app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, The `Program.cs` file should now look like this: ```c# -using Microsoft.EntityFrameworkCore; -using okta_scim_server_dotnet; -using AutoMapper; -using System.Text.Json.Serialization; -using System.Text.Json; -using System.Net; -using Microsoft.AspNetCore.Mvc; - -var builder = WebApplication.CreateBuilder(args); - -builder.Services.ConfigureHttpJsonOptions(options => { - options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; - options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; -}); - -// Add services to the container. -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); - -builder.Services.AddDbContextPool( - options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) -); - -builder.Services.AddAutoMapper(typeof(Program).Assembly); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseSwagger(); - app.UseSwaggerUI(); -} - -app.UseHttpsRedirection(); - -var scimPrefix = "/scim/v2"; -var userRoute = $"{scimPrefix}/users"; -var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); -app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { - ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); - if(user is null) - { - return Results.NotFound(notFoundResponse); - } - return Results.Ok(user); -}) -.WithName("GetUser") -.WithOpenApi(); +//..........Omitted for brevity.......... app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); @@ -1020,71 +918,7 @@ app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, S The `Program.cs` file should now look like this: ```c# -using Microsoft.EntityFrameworkCore; -using okta_scim_server_dotnet; -using AutoMapper; -using System.Text.Json.Serialization; -using System.Text.Json; -using System.Net; -using Microsoft.AspNetCore.Mvc; - -var builder = WebApplication.CreateBuilder(args); - -builder.Services.ConfigureHttpJsonOptions(options => { - options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; - options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; -}); - -// Add services to the container. -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); - -builder.Services.AddDbContextPool( - options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) -); - -builder.Services.AddAutoMapper(typeof(Program).Assembly); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseSwagger(); - app.UseSwaggerUI(); -} - -app.UseHttpsRedirection(); - -var scimPrefix = "/scim/v2"; -var userRoute = $"{scimPrefix}/users"; -var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); -app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { - ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); - if(user is null) - { - return Results.NotFound(notFoundResponse); - } - return Results.Ok(user); -}) -.WithName("GetUser") -.WithOpenApi(); - -app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { - string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); - // filter and paginate results based on input - var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); - return new ScimListResourceResponse - { - totalResults = users.Count, - startIndex = request.parsedStartIndex, - itemsPerPage = request.parsedCount, - Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) - }; -}) -.WithName("ListUsers") -.WithOpenApi(); +//..........Omitted for brevity.......... app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { var user = mapper.Map(scimUser); @@ -1186,80 +1020,7 @@ app.MapPatch(userRoute + "/{id}", async Task (int id, [FromBody] JsonDo The `Program.cs` file should now look like this: ```c# -using Microsoft.EntityFrameworkCore; -using okta_scim_server_dotnet; -using AutoMapper; -using System.Text.Json.Serialization; -using System.Text.Json; -using System.Net; -using Microsoft.AspNetCore.Mvc; - -var builder = WebApplication.CreateBuilder(args); - -builder.Services.ConfigureHttpJsonOptions(options => { - options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; - options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; -}); - -// Add services to the container. -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); - -builder.Services.AddDbContextPool( - options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")) -); - -builder.Services.AddAutoMapper(typeof(Program).Assembly); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseSwagger(); - app.UseSwaggerUI(); -} - -app.UseHttpsRedirection(); - -var scimPrefix = "/scim/v2"; -var userRoute = $"{scimPrefix}/users"; -var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); -app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { - ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); - if(user is null) - { - return Results.NotFound(notFoundResponse); - } - return Results.Ok(user); -}) -.WithName("GetUser") -.WithOpenApi(); - -app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { - string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); - // filter and paginate results based on input - var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); - return new ScimListResourceResponse - { - totalResults = users.Count, - startIndex = request.parsedStartIndex, - itemsPerPage = request.parsedCount, - Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) - }; -}) -.WithName("ListUsers") -.WithOpenApi(); - -app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { - var user = mapper.Map(scimUser); - db.Users.Add(user); - await db.SaveChangesAsync(); - return Results.Created($"users/{user.Id}", mapper.Map(user)); -}) -.WithName("CreateUser") -.WithOpenApi(); +//..........Omitted for brevity.......... app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, ScimDbContext db, IMapper mapper) => { var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); @@ -1467,84 +1228,7 @@ app.UseHttpsRedirection(); app.UseAuthentication(); app.UseAuthorization(); -var scimPrefix = "/scim/v2"; -var userRoute = $"{scimPrefix}/users"; -var notFoundResponse = new ScimErrorResponse((int)HttpStatusCode.NotFound, "Resource Not Found"); -app.MapGet(userRoute + "/{id}", async Task (int id, ScimDbContext db, IMapper mapper) => { - ScimUser? user = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).Select(u => mapper.Map(u)).FirstOrDefaultAsync(); - if(user is null) - { - return Results.NotFound(notFoundResponse); - } - return Results.Ok(user); -}) -.WithName("GetUser") -.WithOpenApi(); - -app.MapGet(userRoute, async ([AsParameters] ScimListResourceRequest request, ScimDbContext db, IMapper mapper) => { - string filterUsername = request.parsedFilter.Where(f => f.Key.ToLower() == "username").Select(f => f.Value).SingleOrDefault(); - // filter and paginate results based on input - var users = await db.Users.Where(u => string.IsNullOrWhiteSpace(filterUsername) || u.UserName == filterUsername).OrderByDescending(u => u.Id).Include(u => u.Emails).ToListAsync(); - return new ScimListResourceResponse - { - totalResults = users.Count, - startIndex = request.parsedStartIndex, - itemsPerPage = request.parsedCount, - Resources = users.Skip(request.parsedStartIndex - 1).Take(request.parsedCount).Select(u => mapper.Map(u)) - }; -}) -.WithName("ListUsers") -.WithOpenApi(); - -app.MapPost(userRoute, async Task (ScimUser scimUser, ScimDbContext db, IMapper mapper) => { - var user = mapper.Map(scimUser); - db.Users.Add(user); - await db.SaveChangesAsync(); - return Results.Created($"users/{user.Id}", mapper.Map(user)); -}) -.WithName("CreateUser") -.WithOpenApi(); - -app.MapPut(userRoute + "/{id}", async Task (int id,ScimUser scimUser, ScimDbContext db, IMapper mapper) => { - var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); - if (existingUser is null) { return Results.NotFound(notFoundResponse); } - db.Entry(existingUser).CurrentValues.SetValues(mapper.Map(scimUser)); - foreach (var email in existingUser.Emails.ToList()) - { - if(!scimUser.emails.Any(u => u.value == email.Value)) { db.Emails.Remove(email); } - } - foreach (var email in scimUser.emails) - { - var existingEmail = existingUser.Emails.Where(e => e.Value == email.value).SingleOrDefault(); - if(existingEmail is not null) - { - db.Entry(existingEmail).CurrentValues.SetValues(email); - } else - { - existingUser.Emails.Add(mapper.Map(email)); - } - } - await db.SaveChangesAsync(); - return Results.Ok(mapper.Map(existingUser)); -}) -.WithName("UpdateUser") -.WithOpenApi(); - -app.MapPatch(userRoute + "/{id}", async Task (int id, [FromBody] JsonDocument patchJson, ScimDbContext db, IMapper mapper) => { - var existingUser = await db.Users.Where(u => u.Id == id).Include(u => u.Emails).FirstOrDefaultAsync(); - if (existingUser is null) { return Results.NotFound(notFoundResponse); } - - foreach(JsonElement operation in patchJson.RootElement.GetProperty("Operations").EnumerateArray()) { - // Handling only active property for simplicity - if (operation.GetProperty("op").GetString() == "replace" && operation.GetProperty("value").TryGetProperty("active", out var temp)) { - existingUser.Active = operation.GetProperty("value").GetProperty("active").GetBoolean(); - await db.SaveChangesAsync(); - } - } - return Results.Ok(mapper.Map(existingUser)); -}) -.WithName("UpdateUserPartial") -.WithOpenApi(); +//..........Omitted for brevity.......... app.Run(); ``` @@ -1570,13 +1254,16 @@ Update `Okta` section in `Properties/appsettings.json` with the *Client ID* from "SwaggerClientId": "${clientId}" } ``` + +>**Note**If you use the template authorization server called default as mentioned [here](https://developer.okta.com/docs/concepts/auth-servers/#default-custom-authorization-server), then set the AuthorizationServerId to the value "default". As shown below. + The `Properties/appsettings.json` file should now look like this: ```json { "Okta": { "OktaDomain": "https://${yourOktaDomain}.com", - "AuthorizationServerId": "${authorizationServerId}", + "AuthorizationServerId": "default", "SwaggerClientId": "${clientId}" }, "ConnectionStrings": { From ee472c167c9236e04c6b5200134c7bea028302e7 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Wed, 28 Feb 2024 14:33:39 -0800 Subject: [PATCH 18/24] Update 2024-02-29-net-scim.md --- _source/_posts/2024-02-29-net-scim.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 755c09170d..6292139e69 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -36,8 +36,8 @@ There are two primary components for a SCIM integration. The first is the *SCIM ### Create a .NET project Create a directory called `okta-scim-server-dotnet`. Navigate to the directory in your terminal, then run the following commands: ``` -`dotnet new webapi` (Creates a new API project) -`dotnet dev-certs https --trust` (Trust the self-signed TLS certs) +dotnet new webapi (Creates a new API project) +dotnet dev-certs https --trust (Trust the self-signed TLS certs) ``` ### Test the .NET project using Swagger UI @@ -49,7 +49,7 @@ Create a directory called `okta-scim-server-dotnet`. Navigate to the directory i ### Setup Okta (the IdP) {% include setup/cli.md type="spa" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} -Note the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. +Take note of the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. ### Create the database models using Entity Framework This sample uses `EntityFrameworkCore` as the Object Relational Mapper (ORM) and `Sqlite` as the database. Let's develop the database models! @@ -1255,7 +1255,7 @@ Update `Okta` section in `Properties/appsettings.json` with the *Client ID* from } ``` ->**Note**If you use the template authorization server called default as mentioned [here](https://developer.okta.com/docs/concepts/auth-servers/#default-custom-authorization-server), then set the AuthorizationServerId to the value "default". As shown below. +>**Note**: If you use the template authorization server called default as mentioned [here](https://developer.okta.com/docs/concepts/auth-servers/#default-custom-authorization-server), then set the AuthorizationServerId to the value "default". As shown below. The `Properties/appsettings.json` file should now look like this: From 8cce291dc65ca0f39cda34717439bbf6211c6c77 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Thu, 29 Feb 2024 08:46:09 -0800 Subject: [PATCH 19/24] Update _source/_posts/2024-02-29-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 6292139e69..82e0c9bd77 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -1576,7 +1576,7 @@ In the Okta Admin Console sidebar, navigate to **Directory** > **People**, and c ## Keep experimenting with SCIM -This tutorial provides the fundamental steps to create your .NET SCIM server to manage user lifecycle with an identity provider such as Okta. You can get the complete sample code for this project from [here](https://github.com/oktadev/okta-net-scim-example). Now, you can extend resources supported by adding groups. Or update the SCIM model to add more attributes you may need. +This tutorial provides the fundamental steps to create your .NET SCIM server to manage user lifecycle with an identity provider such as Okta. You can get the complete sample code for this project from [the GitHub repository](https://github.com/oktadev/okta-net-scim-example). Now, you can extend resources supported by adding groups. Or update the SCIM model to add more attributes you may need. You can go even further and create an application that authenticates users using the same identity provider to provide Single Sign On to users already provisioned through your .NET SCIM server. From 3500a0ce0a7de93cc55e325f0d7818b8f079353d Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Thu, 29 Feb 2024 08:46:57 -0800 Subject: [PATCH 20/24] Update _source/_posts/2024-02-29-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 82e0c9bd77..322e14b5dc 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -1572,7 +1572,7 @@ Let's look at one more scenario. Let's say not only has Tom returned, but he als In the Okta Admin Console sidebar, navigate to **Directory** > **People**, and click on Tom's name in the user list to edit their settings. In the **Profile** tab, click **Edit** in the **Attributes** pane. Change the `firstName` field to "Leo", and update their `login` and `email` to `leo.anderson@fake.domain`. Use the **Save** button at the bottom of the page to save your changes. Again, on the Swagger UI, double-check Tom's updated name by making a GET /scim/v2/users request to list all current users. ->**Troubleshooting**: If you are experiencing import issues with Okta, double-check that your previous SCIM base URL is not cached under the Provisioning > Integration tab. If it is cached, requests will not be made to your .NET SCIM server. +>**Troubleshooting**: If you experience import issues with Okta, double-check that your previous SCIM base URL isn't cached under the **Provisioning** > **Integration** tab. If it's cached, requests won't be made to your .NET SCIM server. ## Keep experimenting with SCIM From 65e8acc78e726f1e984cbfd6012f9e073cab8e46 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Thu, 29 Feb 2024 08:47:22 -0800 Subject: [PATCH 21/24] Update _source/_posts/2024-02-29-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 322e14b5dc..6c1578edac 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -46,7 +46,7 @@ dotnet dev-certs https --trust (Trust the self-signed TLS certs) >**Note**: You may get different ports so be sure to double-check the URLs in `Properties/launchSettings.json`. -### Setup Okta (the IdP) +### Set up Okta as your identity provider (IdP) for authentication and authorization {% include setup/cli.md type="spa" loginRedirectUri="http://localhost:7094/swagger/oauth2-redirect.html" logoutRedirectUri="http://localhost:7094" %} Take note of the `Issuer` and the `Client ID`. You'll need those values for your authentication configuration coming up soon. From efebb396796b0ec59989f2a075a4dfb7a5a1ea0f Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Thu, 29 Feb 2024 09:08:12 -0800 Subject: [PATCH 22/24] Update _source/_posts/2024-02-29-net-scim.md Co-authored-by: Alisa <7586237+alisaduncan@users.noreply.github.com> --- _source/_posts/2024-02-29-net-scim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_posts/2024-02-29-net-scim.md b/_source/_posts/2024-02-29-net-scim.md index 6c1578edac..4bd89a4283 100644 --- a/_source/_posts/2024-02-29-net-scim.md +++ b/_source/_posts/2024-02-29-net-scim.md @@ -22,7 +22,7 @@ In this tutorial, I'll walk you through building a .NET SCIM server with the CRU [SCIM](https://datatracker.ietf.org/doc/html/rfc7644) is an HTTP-based protocol defining standard endpoints and schemas to overcome complexity when implementing user lifecycle management operations across different systems. ## Components of a SCIM integration -There are two primary components for a SCIM integration. The first is the *SCIM server*, which is a server that has implemented the endpoints as described in the SCIM spec—for example, User endpoints, Group endpoints, Schemas endpoints, etc. The applications team typically develops these endpoints, which leaves the IdP to manage the user profiles. This blog will detail creating a sample SCIM server using .NET. The other component is the *SCIM client*, which makes SCIM-compliant HTTP calls to a SCIM server to exchange user profile information. Okta (the IdP), in our use case, will act as a SCIM client and call the .NET SCIM server we'll build using this tutorial. +There are two primary components for a SCIM integration. The first is the *SCIM server*, which is a server that has implemented the endpoints as described in the SCIM spec — for example, User endpoints, Group endpoints, Schemas endpoints, etc. The applications team typically develops these endpoints, which leaves the IdP to manage the user profiles. This blog will detail creating a sample SCIM server using .NET. The other component is the *SCIM client*, which makes SCIM-compliant HTTP calls to a SCIM server to exchange user profile information. Okta (the IdP), in our use case, will act as a SCIM client and call the .NET SCIM server we'll build using this tutorial. ## Build a .NET SCIM server From 0117e9609f0af7404ebda74aaed45f1e0f79f7c3 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Thu, 29 Feb 2024 09:54:14 -0800 Subject: [PATCH 23/24] Update authors.yml --- _source/_data/authors.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_data/authors.yml b/_source/_data/authors.yml index 58c9139ae3..ac2e82d122 100644 --- a/_source/_data/authors.yml +++ b/_source/_data/authors.yml @@ -934,4 +934,4 @@ ram-gandhi: display_name: Ram Gandhi avatar: avatar-ram-gandhi.jpg github: https://github.com/ramgandhi-okta - bio: Ram Gandhi is a Developer Support Solutions Architect at Okta, a full-stack developer, DevOps expert, and a problem solver who loves the thrill of learning new things. He has over 13 years of experience developing software applications across various industries and securing them using industry best practices. He loves to work in cross-platform development and Kubernetes. + bio: Ram Gandhi is a Developer Support Solutions Architect at Okta, a full-stack developer, DevOps expert, and a problem solver who finds excitement in learning new things. He has over 13 years of experience developing software applications across various industries and securing them using industry best practices. He loves to work in cross-platform development and Kubernetes. From 071727f38fcc0f1c329f7bed24d653f7e19d1e87 Mon Sep 17 00:00:00 2001 From: Semona Igama Date: Thu, 29 Feb 2024 10:11:10 -0800 Subject: [PATCH 24/24] Update authors.yml --- _source/_data/authors.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_source/_data/authors.yml b/_source/_data/authors.yml index ac2e82d122..7cc09fdaeb 100644 --- a/_source/_data/authors.yml +++ b/_source/_data/authors.yml @@ -934,4 +934,4 @@ ram-gandhi: display_name: Ram Gandhi avatar: avatar-ram-gandhi.jpg github: https://github.com/ramgandhi-okta - bio: Ram Gandhi is a Developer Support Solutions Architect at Okta, a full-stack developer, DevOps expert, and a problem solver who finds excitement in learning new things. He has over 13 years of experience developing software applications across various industries and securing them using industry best practices. He loves to work in cross-platform development and Kubernetes. + bio: Ram Gandhi is a Developer Support Solutions Architect at Okta, a full-stack developer, DevOps expert, and a problem solver who is excited by learning new things. He has over 13 years of experience developing software applications across various industries and securing them using industry best practices. He loves to work in cross-platform development and Kubernetes.