应该使用什么OpenID Connect授权流来保护MVC客户端或其最终用户之间的Web API资源?

时间:2016-06-02 05:13:12

标签: oauth-2.0 authorization openid-connect

使用 IdentityServer3 OpenID Connect (流程和配置)的正确方法是什么,以实现以下目标:

我们有一个MVC网站 Products一个Web API Products.API我们必须保护所有Web API端点:

  1. 某些端点可以且应该只能由MVC应用程序代表经过身份验证的(已登录)用户访问。

  2. 其他端点(例如用于帐户注册,密码重置或匿名操作的端点)需要直接授权给MVC客户端站点,因为图片中没有经过身份验证的用户。

    < / LI>

    我们目前正在使用混合流程,但这主要是在观看Dominick Baier视频之后的动机。我调查了https://gist.github.com/jawadatgithub/638c11f08ecc0d76b05c,看起来我们正在寻找的是客户端凭据流资源所有者密码凭据流的组合,但我不是我确定我甚至可以混合两种流量,因为它显然不值得推荐。

1 个答案:

答案 0 :(得分:1)

您可以将API拆分为“服务”类型API和“用户”API,并具有单独的身份验证流程,但您真的需要拥有2个API吗?

注册码真的属于API吗?听起来像MVC应用程序(猜测它也是你的身份提供者)应该处理帐户注册 - 这通常是使用Oauth2.0的一个关键分离:API根本不关心用户管理员!

如果您重构注册功能以与身份提供者/ Auth服务器一起使用,那么您是否还需要2个身份验证流?

如果这样做,您可以只使用密码流,并在身份系统中为非用户上下文端点设置虚假的“admin”用户设置。您的MVC应用程序可以传递“admin”用户的凭据,API可以为此特定用户编码。这太可怕了,我不推荐它,但我看到它有效!