Пытается использовать Thindecture identityserver v3 как простой sts для нескольких приложений mvc.
Я могу пройти через образцы приложений и выполнить нормально, но все они используют встроенный идентификационный сервер. Мне нужно, чтобы identserver был отдельным приложением, чтобы я мог использовать его как sts для нескольких приложений. Когда я пытаюсь запустить идентификационный сервер и подключить образец приложения mvc к нему, похоже, что-то не хватает.thinktecture identityserver v3
Образец MVC приложение использует катану
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions...
, но я просто не понимая, как правильно конфиг для внешней службы приложения. Я предполагаю, что я не использую правильную конечную точку.
Здесь моя конфигурация полагающейся стороны как mvc. Я тогда последняя IS v3 работает нетронутым здесь: : 44333
В MVC приложение всякий раз, когда я пытаюсь перейти к виду, который требует авторизации я получаю исключение.
Трассировка стека:
[HttpRequestException: Response status code does not indicate success: 404 (Not Found).]
System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() +87960
Microsoft.IdentityModel.Protocols.<GetDocumentAsync>d__0.MoveNext() +496
[IOException: Unable to get document from: https://localhost:44333/.well-known/openid-configuration]
Microsoft.IdentityModel.Protocols.<GetDocumentAsync>d__0.MoveNext() +830
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +24
Microsoft.IdentityModel.Protocols.<GetAsync>d__0.MoveNext() +512
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +24
Microsoft.IdentityModel.Protocols.<GetConfigurationAsync>d__3.MoveNext() +1332
здесь является полная авторизация конфигурации в приложении MVC.
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
//Authority = "https://localhost:44319/identity",
Authority = "https://localhost:44333",
ClientId = "mvc",
Scope = "openid profile roles",
RedirectUri = "https://localhost:44319/",
SignInAsAuthenticationType = "Cookies",
UseTokenLifetime = false,
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = async n =>
{
var id = n.AuthenticationTicket.Identity;
// we want to keep first name, last name, subject and roles
var givenName = id.FindFirst(Constants.ClaimTypes.GivenName);
var familyName = id.FindFirst(Constants.ClaimTypes.FamilyName);
var sub = id.FindFirst(Constants.ClaimTypes.Subject);
var roles = id.FindAll(Constants.ClaimTypes.Role);
// create new identity and set name and role claim type
var nid = new ClaimsIdentity(
id.AuthenticationType,
Constants.ClaimTypes.GivenName,
Constants.ClaimTypes.Role);
nid.AddClaim(givenName);
nid.AddClaim(familyName);
nid.AddClaim(sub);
nid.AddClaims(roles);
// keep the id_token for logout
nid.AddClaim(new Claim("id_token", n.ProtocolMessage.IdToken));
// add some other app specific claim
nid.AddClaim(new Claim("app_specific", "some data"));
n.AuthenticationTicket = new AuthenticationTicket(
nid,
n.AuthenticationTicket.Properties);
},
RedirectToIdentityProvider = async n =>
{
if (n.ProtocolMessage.RequestType == OpenIdConnectRequestType.LogoutRequest)
{
var idTokenHint = n.OwinContext.Authentication.User.FindFirst("id_token");
if (idTokenHint != null)
{
n.ProtocolMessage.IdTokenHint = idTokenHint.Value;
}
}
}
}
});
Ну я немного дальше, но все равно был бы признателен за руководство к моей глупости, если кто-то готов предложить. Изменив полномочия и добавив параметр MeadataAddress в mvc, я собирался заставить его работать. Authority = "https://idsrv3.com", MetadataAddress = "https: // localhost: 44333/core/.well-known/openid-configuration", – Aaron792000
Вы могли бы добавить содержимое файла Startup.cs, который вы использовали настроить IdentityServerv3? Я также создал учебник по настройке IdSrv3, там у вас есть конфигурация Idsrv, а также приложение Mvc, запрашивающее некоторый публичный ресурс после того, как пользователь дал согласие: [ссылка на учебник] (http://cedric-dumont.com/tutorials/ identityserver-v3-membershipreboot-angularjs-webapi-2-and-mvc-mix-it-introduction /) –
Я рекомендую эту проблему, обновляя страницу, решив ее. Кажется, что сайт STS не реагирует некоторое время. –