gpt4 book ai didi

asp.net-core - Identity Server 4 和 ASP.NET Core 身份

转载 作者:行者123 更新时间:2023-12-04 12:48:07 24 4
gpt4 key购买 nike

我正在从事的一个项目包括一个网络 API、一个单页 React 应用程序和一个移动应用程序。从每个客户端,用户需要提供他们的用户名和密码才能访问 Web API 的 protected 部分。我设置了一个 Identity Server 4 身份验证服务器,它使用我自己的 IProfileServiceIResourceOwnerPasswordValidator 接口(interface)实现,因为我使用的是 ASP.NET Core Identity。这允许 Identity Server 访问 ASP.NET Core Identity UserManagerRoleManagerSignInManagers 以确定提供的用户名和密码是否有效。

我一直在使用的授权类型是“ResourceOwnerPassword”类型。我没有将授权完全集成到单页应用程序中,但我可以将用户的用户名和密码传递给身份服务器,并生成一个 token ,我可以将其添加到 API 请求的 header 中。

我对 Identity Server 和相关技术进行了更多研究,因为我对所有这些都是陌生的。似乎不希望使用 ResourceOwnerPassword 授权类型。据我所知,我似乎应该使用隐式授权类型,但我不完全理解用户名和密码如何适应该流程。有没有人知道我应该使用哪种类型?我描述的系统是否只能使用 ResourceOwnerPassword 授权类型?

最佳答案

资源所有者密码授权类型在 IdentityServer 文档中有这样的描述:

The resource owner password grant type allows to request tokens on behalf of a user by sending the user’s name and password to the token endpoint. This is so called “non-interactive” authentication and is generally not recommended.

There might be reasons for certain legacy or first-party integration scenarios, where this grant type is useful, but the general recommendation is to use an interactive flow like implicit or hybrid for user authentication instead.

(重点是我的)

所有其他流程都涉及重定向:用户在您的网站上单击登录并被重定向到身份服务器登录页面,他们在那里输入他们的凭据,然后被重定向回您的原始网页。

这与使用您的 Google 帐户相同,例如,登录其他网站。 Google 不希望您将该用户名和密码输入您自己的站点,因为您可能会窃取它们,这通常是不鼓励资源所有者密码授予类型的原因。但是,如果您正在进行第一方集成(即网站是您的,并且您相信用户在您的网站上输入他们的密码),那么我看不出问题出在哪里。

您应该阅读(并查看示例)其他流程/资助类型。他们肯定有自己的位置,我不会解雇他们,但如果您正在进行第一方集成,那么所做的应该没问题。

关于asp.net-core - Identity Server 4 和 ASP.NET Core 身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42629435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com