我从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
};
我的问题是有任何理由,关于安全问题,我不应该实施这个并将其分开吗?
答案 0 :(得分:3)
从安全角度来看,这根本没有任何问题。
但是,我必须警告您,在处理Cookie和令牌时可能会遇到问题。在单独的项目中运行它们隐含地分离了MVC和IDS项目的关注点。
您可能想要做的是使用app.Map()
分叉您的请求管道。 (例如,将IDS映射到“/ identity”,将MVC项目映射到“/ ui”)