Я следовал руководству по автономному приложению Blazor WebAssembly от Microsoft. Я использую Identity Server 4 вместе с его пользовательским интерфейсом, установленным для входа в систему, et c., И смог просмотреть известную страницу. Я предполагал, что у меня есть все необходимое для стандартного входа в систему из приложения Blazor, но я никогда не попадаю на страницу входа в Identity Server. Вместо этого приложение Blazor возвращает это сообщение об ошибке, когда я нажимаю ссылку для входа:
Произошла ошибка при попытке входа в систему: 'Недопустимый ответ Content-Type: text / html, с URL: https:login.microsoftonline.com/.well-known/openid-configuration '
Я не уверен, почему это происходит, и понятия не имею, почему URL-адрес направлен на microsoftonline.com. Я чувствую, что упускаю здесь очевидный шаг. Что мне не хватает?
Настройки запуска Blazor:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:59723",
"sslPort": 44398
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"ClientBlazor": {
"commandName": "Project",
"launchBrowser": true,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
"applicationUrl": "https://localhost:5003",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Настройки приложения Blazor:
{
"Local": {
"Authority": "https://localhost:5001",
"ClientId": "BlazorClient",
"DefaultScopes": [
"openid",
"profile"
],
"PostLogoutRedirectUri": "/",
"ResponseType": "code"
}
}
Blazor Основной метод:
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
builder.Services.AddOidcAuthentication(options =>
{
// Configure your authentication provider options here.
// For more information, see https://aka.ms/blazor-standalone-auth
builder.Configuration.Bind("Local", options.ProviderOptions);
});
await builder.Build().RunAsync();
}
Запуск сервера идентификации Параметры:
{
"profiles": {
"SelfHost": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5001"
}
}
}
Конфигурация сервера идентификации:
public static IEnumerable<Client> Clients =>
new List<Client>
{
// SPA client using code flow + pkce
new Client
{
ClientId = "BlazorClient",
ClientName = "Blazor Client",
ClientUri = "https://loclhost:5003/",
AllowedGrantTypes = GrantTypes.Code,
RequirePkce = true,
RequireClientSecret = false,
RedirectUris =
{
"https://localhost:5003/authentication/login-callback"
},
PostLogoutRedirectUris = { "http://localhost:5003/" },
AllowedCorsOrigins = { "http://localhost:5003" },
AllowedScopes = { "openid", "profile" },
Enabled = true
}
};