WIP separation Web et API
This commit is contained in:
@ -12,13 +12,13 @@ using Microsoft.AspNetCore.Mvc;
|
||||
// But, this redirect URI doesn't need to match the OAuth parameter, it's serialized in the query state,
|
||||
// to be used once the identification ends.
|
||||
var properties = new AuthenticationProperties { RedirectUri = returnUrl };
|
||||
return new ChallengeResult("Yavsc", properties);
|
||||
return new ChallengeResult("oidc", properties);
|
||||
}
|
||||
|
||||
[HttpGet("~/signout")]
|
||||
public async Task<IActionResult> SignOut(string returnUrl="/") {
|
||||
|
||||
return SignOut("Cookies", "Yavsc");
|
||||
return SignOut("Cookies", "oidc");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ namespace testOauthClient.Controllers
|
||||
var client = new HttpClient(new HttpClientHandler(){ AllowAutoRedirect=false });
|
||||
client.DefaultRequestHeaders.Add("Accept", "application/json");
|
||||
client.SetBearerToken(accessToken);
|
||||
var content = await client.GetAsync("https://localhost:5001/api/account/me");
|
||||
var content = await client.GetAsync("https://localhost:6001/api/account/me");
|
||||
content.EnsureSuccessStatusCode();
|
||||
var json = await content.Content.ReadAsStreamAsync();
|
||||
var obj = JsonSerializer.Deserialize<JsonElement>(json);
|
||||
|
@ -4,25 +4,17 @@
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:5002",
|
||||
"applicationUrl": "https://localhost:5003",
|
||||
"sslPort": 5003
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"http": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"applicationUrl": "http://localhost:5002",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
|
||||
"https": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"applicationUrl": "https://localhost:5003;http://localhost:5002",
|
||||
"applicationUrl": "https://localhost:5003;",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
|
@ -10,43 +10,43 @@ public class Startup
|
||||
{
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
|
||||
services.AddControllersWithViews();
|
||||
|
||||
JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
|
||||
|
||||
services.AddAuthentication(options =>
|
||||
{
|
||||
options.DefaultScheme = "Cookies";
|
||||
options.DefaultChallengeScheme = "Yavsc";
|
||||
})
|
||||
.AddCookie("Cookies")
|
||||
.AddOpenIdConnect("Yavsc", options =>
|
||||
{
|
||||
options.Authority = "https://localhost:5001";
|
||||
options.ClientId = "mvc";
|
||||
options.ClientSecret = "49C1A7E1-0C79-4A89-A3D6-A37998FB86B0";
|
||||
options.ResponseType = "code";
|
||||
options.UsePkce = true;
|
||||
options.Scope.Clear();
|
||||
options.Scope.Add("openid");
|
||||
options.Scope.Add("profile");
|
||||
options.Scope.Add("email");
|
||||
options.Scope.Add("offline_access");
|
||||
options.Scope.Add("scope2");
|
||||
|
||||
options.GetClaimsFromUserInfoEndpoint = true;
|
||||
options.SaveTokens = true;
|
||||
options.ClaimActions.MapUniqueJsonKey("http://schemas.microsoft.com/ws/2008/06/identity/claims/role", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role");
|
||||
|
||||
options.ClaimActions.MapUniqueJsonKey("role", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role");
|
||||
options.ClaimActions.MapUniqueJsonKey("roles", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role");
|
||||
options.TokenValidationParameters = new TokenValidationParameters
|
||||
services
|
||||
.AddAuthentication(options =>
|
||||
{
|
||||
NameClaimType = "name",
|
||||
RoleClaimType = "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"
|
||||
};
|
||||
options.DefaultScheme = "Cookies";
|
||||
options.DefaultChallengeScheme = "oidc";
|
||||
})
|
||||
.AddCookie("Cookies")
|
||||
.AddOpenIdConnect("oidc", options =>
|
||||
{
|
||||
options.Authority = "https://localhost:5001";
|
||||
|
||||
options.ClientId = "mvc";
|
||||
options.ClientSecret = "49C1A7E1-0C79-4A89-A3D6-A37998FB86B0";
|
||||
options.ResponseType = "code";
|
||||
|
||||
options.Scope.Add("scope2");
|
||||
|
||||
options.SaveTokens = true;
|
||||
|
||||
options.GetClaimsFromUserInfoEndpoint = true;
|
||||
options.SaveTokens = true;
|
||||
options.ClaimActions.MapUniqueJsonKey(
|
||||
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role",
|
||||
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role");
|
||||
options.ClaimActions.MapUniqueJsonKey("role",
|
||||
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role");
|
||||
options.ClaimActions.MapUniqueJsonKey("roles",
|
||||
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role");
|
||||
options.TokenValidationParameters = new TokenValidationParameters
|
||||
{
|
||||
NameClaimType = "name",
|
||||
RoleClaimType = "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"
|
||||
};
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||
|
@ -9,9 +9,6 @@
|
||||
"Kestrel": {
|
||||
"Endpoints":
|
||||
{
|
||||
"Http": {
|
||||
"Url": "http://localhost:5002"
|
||||
},
|
||||
"Https": {
|
||||
"Url": "https://localhost:5003"
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Yavsc.Abstract\Yavsc.Abstract.csproj" />
|
||||
<PackageReference Include="IdentityModel.AspNetCore" Version="4.3.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.12" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.13" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
Reference in New Issue
Block a user