/ / ASP.NET Identity Plugin-Benutzeroberfläche (IdentityManager) für IdentityServer3 funktioniert nach der Bereitstellung auf Azure (WebApp) nicht - c #, asp.net, azure, asp.net-identity, identityserver3

ASP.NET Identity Plugin Benutzeroberfläche (IdentityManager) für IdentityServer3 funktioniert nicht nach der Bereitstellung in Azure (WebApp) - c #, ASP.net, Azure, ASP.net-Identität, IdentityServer3

Ich habe IdentityServer3 für die Verwendung von ASP.NET Identity mit dem bereitgestellten Beispiel eingerichtet. Alles funktioniert lokal einwandfrei, ich kann über "/ admin" auf die Identity Manager-Benutzeroberfläche zugreifen und Benutzer / Rollen hinzufügen / entfernen.

Wenn ich es jedoch in Azure bereitstelle und versuche, darauf zuzugreifen, passiert nichts und ich komme zu einer URL, die folgendermaßen aussieht: https://IdentityServer3/admin/authorize?state=11373557769572288&client_id=idmgr&response_type=token

Es funktioniert lokal einwandfrei, unabhängig davon, ob ich eine lokale oder eine entfernte Datenbank (Azure SQL) verwende.

IdentityManager meldet sich beim ersten Zugriff automatisch beim lokalen Benutzer an. Ich vermute, es könnte ein Problem beim Zugriff auf einen Remote-Server sein.

Das von mir verwendete Beispiel ist hier: https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/AspNetIdentity

Antworten:

2 für die Antwort № 1

Ok, falls jemand anderes darüber stolpert, besteht die Lösung darin, die Sicherheitskonfiguration von IdentityManager in zu ändern HostSecurityConfiguration und dann entweder:

  1. Implementieren Sie manuell einen einfachen Authentifizierungsmechanismus wie den hier gezeigten: https://vimeo.com/125427106

    oder

  2. Konfigurieren Sie den IdentityManager wie alle anderen OIDC-Clients. Weitere Details hier: https://www.scottbrady91.com/ASPNET-Identity/Identity-Manager-using-ASPNET-Identity

All dies ist notwendig, da der IdentityManager standardmäßig verwendet LocalhostSecurityConfiguration was nur die Authentifizierung über erlaubt localhost.

Bei der zweiten Option sieht die Sicherheitskonfiguration von IdentityManager folgendermaßen aus:

managerApp.UseIdentityManager(new IdentityManagerOptions()
{
SecurityConfiguration = new HostSecurityConfiguration
{
HostAuthenticationType = "cookies",
AdditionalSignOutType = "oidc",
NameClaimType = Constants.ClaimTypes.Name,
RoleClaimType = Constants.ClaimTypes.Role,
AdminRoleName = "IdentityManagerAdministrator" //default role name for IdentityManager
}
});

Als Tipp, wenn Sie den IdentityManager ausführenStellen Sie in derselben Webanwendung wie der IdentityServer selbst sicher, dass Sie die IdentityManager-Authentifizierungslogik nach der IdentityServer-Zuordnung und vor der IdentityManager-Zuordnung platzieren:

app.Map("/identity", idsrvApp =>

//this sets IdentityManager to use IdentityServer as Idp
ConfigureIdentityManagerAuthentication(app);

app.Map("/manager", managerApp =>

Wenn Sie es vor den IdentityServern platzierendann wird ein zusätzlicher externer "OpenId" -Provider auf der IdentityServer-Anmeldeseite angezeigt. Wenn Sie es hinter die IdentityManager-Map setzen, funktioniert die Authentifizierung nicht.