结合IdentityServer4和MVC客户端

本文关键字:客户端 MVC IdentityServer4 结合 | 更新日期: 2023-09-27 18:04:18

我从Github下载了示例IdentityServer和MVC客户端项目。我的目标是创建一个门户环境,用户可以在其中进行身份验证,然后继续请求受保护的资源。

所以我所做的是将视图从MVC客户端移动到IdentityServer项目,更改client .cs以支持同一端口上的客户端,并在IdentityServer的启动中添加以下内容:

        var oidcOptions = new OpenIdConnectOptions
        {
            AuthenticationScheme = "oidc",
            SignInScheme = "Cookies",
            Authority = "http://localhost:5000",
            RequireHttpsMetadata = false,
            PostLogoutRedirectUri = "http://localhost:5000/",
            ClientId = "mvc",
            ClientSecret = "secret",
            ResponseType = "code id_token",
            GetClaimsFromUserInfoEndpoint = true,
            SaveTokens = true
        };

我的问题是,是否有任何理由,考虑到安全性,我不应该实现这个并保持它的分离?

结合IdentityServer4和MVC客户端

从安全的角度来看,这完全没有问题。

然而,我必须警告你,你可能会遇到一个问题,当处理cookie和令牌。在单独的项目中运行它们会隐式地分离MVC和IDS项目的关注点。

您可能想要做的是通过使用app.Map()来分叉您的请求管道。(例如将IDS映射到"/identity",将MVC项目映射到"/ui")