Entschuldigt, wenn dies bereits auf dieser Seite oder in der umfangreichen ServiceStack Dokumentation beantwortet - ich ausgesehen haben, aber wenn es nicht vorhanden ist, würde ich einen Zeiger zu schätzen wissen!OAuth2 Authentifizierungs-Plugin für ServiceStack .NET Core-
Ich habe versucht, ein Beispiel Service-Stack (1.0.35) Dienst, der die Verwendung von OAuth2 mit .NET Kern (nicht .NET 4.5.x) zeigt, zu klopfen.
Ich habe this web page gefunden und das AuthFeature-Plugin wie beschrieben hinzugefügt, was für die verfügbaren Anbieter in Ordnung zu sein scheint.
Meine Frage: Die Yahoo, OpenId, Google und LinkedIn-Anbieter scheinen nicht Teil des ServiceStack.Auth Namespace (noch?). Ich habe das Servicestack.Authentication.OAuth2 NuGET-Paket angeschaut, aber dies scheint auf .NET 4.6.x ausgerichtet zu sein. Ist diese Funktionalität verfügbar oder in der Roadmap für ServiceStack .NET Core enthalten?
vollständigen Code Repo meiner Demo-Anwendung:
namespace ServiceStackAuthTest1
{
public class Program
{
public static void Main(string[] args)
{
IWebHost host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseUrls("http://*:40000/")
.Build();
host.Run();
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseServiceStack((AppHostBase)Activator.CreateInstance<AppHost>());
app.Run((RequestDelegate)(context => (Task)Task.FromResult<int>(0)));
}
}
public class AppHost : AppHostBase
{
public AppHost()
: base("My Test Service", typeof(MyService).GetAssembly())
{
}
public override void Configure(Container container)
{
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[]
{
new JwtAuthProvider(AppSettings)
{
HashAlgorithm = "RS256",
PrivateKeyXml = AppSettings.GetString("PrivateKeyXml")
},
new ApiKeyAuthProvider(AppSettings), //Sign-in with API Key
new CredentialsAuthProvider(), //Sign-in with UserName/Password credentials
new BasicAuthProvider(), //Sign-in with HTTP Basic Auth
new DigestAuthProvider(AppSettings), //Sign-in with HTTP Digest Auth
new TwitterAuthProvider(AppSettings), //Sign-in with Twitter
new FacebookAuthProvider(AppSettings), //Sign-in with Facebook
//new YahooOpenIdOAuthProvider(AppSettings), //Sign-in with Yahoo OpenId
//new OpenIdOAuthProvider(AppSettings), //Sign-in with Custom OpenId
//new GoogleOAuth2Provider(AppSettings), //Sign-in with Google OAuth2 Provider
//new LinkedInOAuth2Provider(AppSettings), //Sign-in with LinkedIn OAuth2 Provider
new GithubAuthProvider(AppSettings), //Sign-in with GitHub OAuth Provider
new YandexAuthProvider(AppSettings), //Sign-in with Yandex OAuth Provider
new VkAuthProvider(AppSettings), //Sign-in with VK.com OAuth Provider
}));
}
}
public class MyService : Service
{
}
Ich plane einen .NET-Core-kompatiblen Anschluss von ServiceStack.Auth.OAuth2.OAuth2Provider als OSS zu schreiben, aber zuerst ist ich bin auf der Suche, um zu sehen, ob es bereits geschehen. Hat jemand das schon mal gemacht? –
In der Zwischenzeit Abstimmung über https://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/19534429-support-oauth2-on-net-core –