Skip to content

Commit a4595f1

Browse files
committed
chore(identity): configure partial identity
1 parent 444c1a4 commit a4595f1

File tree

9 files changed

+77
-63
lines changed

9 files changed

+77
-63
lines changed

Micro.AppRegistration.Api/Controllers/CreateApplicationRequest.cs

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

Micro.AppRegistration.Api/Controllers/WeatherForecast.cs

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

Micro.AppRegistration.Api/Controllers/WeatherForecastController.cs

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

Micro.AppRegistration.Api/Controllers/AppRegistrationController.cs renamed to Micro.AppRegistration.Api/CreateApplication/AppRegistrationController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Microsoft.AspNetCore.Mvc;
22

3-
namespace Micro.AppRegistration.Api.Controllers
3+
namespace Micro.AppRegistration.Api.CreateApplication
44
{
55
[ApiController]
66
[Route("api/[controller]")]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Threading.Tasks;
2+
using Micro.AppRegistration.Api.Models;
3+
4+
namespace Micro.AppRegistration.Api.CreateApplication
5+
{
6+
public interface IAppRegistrationService
7+
{
8+
public Task<Application> CreateApplication(CreateApplicationRequest request, string userId);
9+
}
10+
11+
public class AppRegistrationService : IAppRegistrationService
12+
{
13+
public async Task<Application> CreateApplication(CreateApplicationRequest request, string userId)
14+
{
15+
throw new System.NotImplementedException();
16+
}
17+
}
18+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Micro.AppRegistration.Api.CreateApplication
2+
{
3+
public class CreateApplicationRequest
4+
{
5+
public string Name { set; get; }
6+
public string ShortCode { set; get; }
7+
public bool UseDefault { set; get; }
8+
}
9+
}

Micro.AppRegistration.Api/Micro.AppRegistration.Api.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<PackageReference Include="App.Metrics.AspNetCore.Mvc" Version="3.2.0-dev0002" />
1010
<PackageReference Include="App.Metrics.Extensions.Configuration" Version="3.2.0-dev0002" />
1111
<PackageReference Include="App.Metrics.Reporting.InfluxDB" Version="3.2.0-dev0002" />
12+
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.0.3" />
1213
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0-preview8.19405.11" />
1314
<PackageReference Include="Microsoft.Extensions.Logging.Slack" Version="1.1.0" />
1415
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.0.0-preview8" />

Micro.AppRegistration.Api/Models/Application.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace Micro.AppRegistration.Api.Models
55
public class Application
66
{
77
public string Id { set; get; }
8+
public string Name { set; get; }
89
public string User { set; get; }
910
public string Secret { set; get; }
1011
public string ShortCode { set; get; }
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using System;
2+
using Microsoft.AspNetCore.Authentication.JwtBearer;
3+
using Microsoft.AspNetCore.Identity;
4+
using Microsoft.Extensions.Configuration;
5+
using Microsoft.Extensions.DependencyInjection;
6+
using Microsoft.IdentityModel.Tokens;
7+
8+
namespace Micro.AppRegistration.Api.StartupExtensions
9+
{
10+
public static class Identity
11+
{
12+
public static void ConfigureIdentityServices(this IServiceCollection serviceCollection,
13+
IConfiguration configuration)
14+
{
15+
serviceCollection.AddAuthentication(options =>
16+
{
17+
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
18+
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
19+
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
20+
}).AddJwtBearer();
21+
}
22+
23+
private static void ConfigureJwtBearer(IServiceCollection services, JwtBearerOptions config)
24+
{
25+
config.RequireHttpsMetadata = false;
26+
config.SaveToken = false;
27+
config.TokenValidationParameters = new TokenValidationParameters
28+
{
29+
ValidateIssuer = true,
30+
ValidateIssuerSigningKey = true,
31+
ValidateLifetime = true,
32+
ValidateActor = true,
33+
ValidateAudience = true,
34+
ValidIssuer = "my_app_auth",
35+
ValidAudiences = new []{"my_app"},
36+
ClockSkew = TimeSpan.Zero,
37+
IssuerSigningKeyResolver = (token, secToken, kid, parameters) =>
38+
{
39+
// todo: first get keystore to generate a sdk and publish to nuget automatically
40+
// add that package as a dependency
41+
// and finally copy logic from micro.auth
42+
throw new NotImplementedException();
43+
}
44+
};
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)