加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-web-api2 – asp.net 5和IdentityServer4

发布时间:2020-12-16 03:17:19 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET 5制作网站重新架构的原型,我正在讨论使用IdentityServer4进行身份验证和授权.我已经回顾了很多关于设置IdentityServer3和4的示例和文章,如果它能够以正确的方式处理我的客户端的要求,我试图解决这个问题.这是我的要求. 我有3个需要授权的
我正在使用ASP.NET 5制作网站重新架构的原型,我正在讨论使用IdentityServer4进行身份验证和授权.我已经回顾了很多关于设置IdentityServer3和4的示例和文章,如果它能够以正确的方式处理我的客户端的要求,我试图解决这个问题.这是我的要求.

我有3个需要授权的网站.站点1(abc.com)将需要Windows身份验证,并且将使用角色(或转换为声明的角色)进行授权的mvc和webapi调用的组合.站点2(def.com)是一个受信任的站点,它希望在其站点上具有用户名/密码/ rememberme文本框的登录窗口小部件,在提交时将对用户进行身份验证并将其重定向到站点3(xyz.com).站点3也将有自己的登录页面,并将使用声明的mvc和webapi调用的组合.站点2和3将不使用Windows身份验证,并且客户端不希望它们重定向到身份服务器登录屏幕,而是拥有自己的登录屏幕并从具有登录凭据的代码调用身份服务器.

以下是有关此方案和IdentityServer4的问题.

> Idsvr4可以使用Windows身份验证处理一个客户端
????另一个使用用户名/密码验证?

>如果是的话,有没有
有理由在idsvr4中使用Windows auth或者它应该只使用标准
在webapp中的Windows身份验证?

>可以设置idsvr4让客户端收集用户名/密码/ rememberme值并通过代码传递给它们
????为mvc和webapi获取正确的jwt令牌?

>如果是的话,可以
???将它们记录到另一个站点上的mvc和webapi应用程序中?
>如果是这样,这是否规避了identityserver4的真正目的
???因此是一个坏主意?

>如果它可以处理这种情况并且是一个好主意,我如何设置客户端,范围和代码来处理通过代码登录和重定向?

示例非常好,非常受欢迎,但我甚至不确定用什么词汇来搜索这个场景,所以即使指向正确的方向也会有很大的帮助.

解决方法

不确定这个问题是否仍然有效.但是,是的,我相信你可以做到这一切.

1)您可以通过在客户端上设置IdentityProviderRestrictions来设置每个客户端可用的ldp(docs)

1.1) – 不确定你的意思,我相信拥有idsrv的一个要点就是将你的身份验证转发给你,并且它使未来的网站更容易与同一服务集成.

2)使用客户端(应用程序)登录时,还要指定客户端有权访问哪个apiResource,并且应用程序需要在登录时将其添加到请求的范围.因此,如果您的客户端是mvc应用程序,则只需添加AllowedScopes中的ApiResource – 并将request_type设置为id_token代码 – 这将为用户提供一个access_token,该access_token随每个请求传递给后端api. (docs)

2.1) – 这基本上会在两个站点上记录用户 – 使用一个访问令牌,该令牌表示用户有权使用后端api.

2.2) – 在我看来,这个流程是让idsrv变得伟大的事情之一 – 他们甚至提到这是idsrv自身的一个重要特征.您只需要1次访问authserver即可访问所有系统.

至于pt. 3 – 进一步查看文档,尝试按照快速入门设置一个空白项目.

要从您自己的登录页面登录,您需要使用授权类型资源所有者密码 – 尽管他们不建议这样做是为了解决安全问题(通过网络传输密码) – 它是受支持的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读