Я пытаюсь найти удостоверение личностиServer4 с отдельным IdentityService, клиентом MVC и WebAPI. Мой MVC-клиент может получить токен от службы Identity, перенаправившись на страницу входа в IdentityService. Теперь я хочу вызвать мой webAPI (ядро asp.net 2.2) из аутентифицированного клиента mvc (ядро asp.net 2.2) в неявном режиме на сервере идентификации 4 (отдельное ядро service-asp.net 2.2).
Я пробовал искать документацию и другие места для примера кода, но не повезло
Запуск WebAPI
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters();
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options => {
options.Authority = "https://localhost:44398/";
options.ApiName = "customAPI"; // required audience of access tokens
options.RequireHttpsMetadata = false; // dev only!
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseAuthentication();
app.UseHttpsRedirection();
app.UseMvc();
}
регистрация API
new Client
{
ClientId = "mvc",
ClientName = "MVC Client",
AllowedGrantTypes = GrantTypes.Implicit,
AllowedScopes = new List<string>
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"customAPI.read",
"customAPI.write"
},
// where to redirect to after login
RedirectUris = { "https://localhost:44356/signin-oidc" },
// where to redirect to after logout
PostLogoutRedirectUris = { "https://localhost:44356/signout-callback-oidc" },
RequireConsent = false,
}