我是SSO的新手,所以希望我提出的问题是有道理的。所以我目前的设置是使用.NET MVC
/ cookies(OWIN
)的app.UseCookieAuthentication()
网站和自定义用户表(不是ASP.NET Identity
用户)。
所以我想知道我是否只能为外部提供商添加IdentityServer3
,但是保留所有现有的用户/身份验证内容,以及#34;本地用户"。所以我看到你可以实现一个自定义IUserService
来查找用户对你的本地数据库,我认为我有这个工作,但我想甚至避免这样做。我想避免隐藏IdentityServer
登录屏幕的主题。所以像这样:
[Authorize]
属性的页面。 IdentityServer
东西)这可能吗?或者您还必须通过IdentityServer3
运行本地用户吗?我注意到,如果您不提供IUserService
并且不使用UseInMemoryUsers()
,我会收到错误。
因此,通过以下各种指南,我在我的Startup.cs中有这个:app.UseIdentityServer()
,app.UseCookieAuthentication()
和app.UseOpenIdConnectAuthentication()
,Authority
设置为我的IdentityServer端点。
希望这是有道理的,谢谢!
答案 0 :(得分:1)
如果它可以帮助其他人,那就回答我自己的问题。这里重要的部分是AuthenticationMode
中的OpenIdConnectAuthenticationOptions
。 AuthenticationMode.Active
会在用[Authorize]
点击操作时将用户重定向到您的OIDC提供商。AuthenticationMode.Passive
将允许您将您的OIDC提供商用作其他身份验证方法。您希望通过ExternalLogin()
和ExternalLoginCallback()
控制器操作来跟踪示例,这些操作会向提供程序发出挑战,然后将身份验证用户与您的本地用户进行匹配。