0

首先对我的英语感到抱歉。IdentityServer4项目架构

我花了一些时间了解IS4,.NET Core,Identity,Auth,Auth,Claims等。今天,我开始在自己的网络项目上工作,让这些组件一起工作。我的解决方案包括3个客户端(React,Admin-Razor,Mobile),IS4服务器和WebAPI(React和Mobile将与API交谈)。

  1. 由于React和Admin客户端有两个不同的登录页面,他们是否都使用IS4进行授权和身份验证?

  2. admin项目将是一个ASP.NET MVC项目,不会从不同的项目调用API,所以我必须使用哪些GrantTypes,并且应该使用IS4?

我不是在寻找代码示例,只需要IS4项目体系结构的帮助。

谢谢!

回答

0

身份服务器是OpenID Connect 身份提供商。 (openidConnect构建在OAuth2之上)。这意味着,身份服务器应用程序将处理与身份令牌,不同流,联合身份和委托权限有关的所有内容,换句话说,执行与认证和授权相关的所有内容。 OpenId connect & OAuth2方法在处理需要集中安全性的分布式系统时非常合适。这意味着,使用IS4可确保所有信任您的身份服务器的应用程序将以统一的方式处理身份验证和授权。

的非常建筑,似乎IS4是一个很好的起点,但:

  1. 由于反应,并联系客户有两个不同的登录页面,他们都应该使用IS4授权和认证?

IS4是单独的应用程序,它会发出,验证和管理YPU客户的令牌,并最终令牌。因此,认证过程可能会在IS4方面完成。它与第三方身份提供商非常相似(如Facebook或谷歌,请记住buttins“用google登录”?),但在您的情况下,您拥有自己的身份服务--IS4,作为应用程序托管。因此,登录页面本身应该位于IS4的一侧,但您可以自定义布局。

  • 管理项目将是一个ASP.NET MVC项目并不会调用来自不同项目的API,所以我必须用什么GrantTypes并应使用IS4呢?
  • 答案与往常一样取决于您。如果你在你的应用程序中需要一些身份(不是匿名访问),那么IS的使用是可能的,甚至是首选。但是,如果您的管理员部分是服务器端应用程序,则最适合的授权流程是“授权代码”(代表用户的服务器 - 服务器通信)。

    +0

    谢谢你的回答。我将使用IS4作为反应和移动客户端,但有可能有两个不同的登录页面? –

    +0

    可能必须检查哪个客户端发出了请求,然后显示它的登录页面。 –