Identity Server 作为 Web API 的一部分或单独的应用程序

Sam*_*Sam 5 asp.net-web-api asp.net-identity identityserver4

我有一个 ASP.NET Core Web API 应用程序,为了保护它,我实现了JWT Bearer身份验证。下一步是管理用户访问和颁发JWT令牌。

最初我考虑使用 Azure AD B2C,但它似乎不支持我的业务需求。所以我现在正在考虑使用 Identity Server 4。

Identity Server 4 是否作为一个完全独立的应用程序运行?另外,我是否正确理解它被用作:

  1. 供用户注册和登录的 Web 界面
  2. 也是一个带有发布JWT令牌的API 的网络应用程序

换句话说,Identity Server 4 是否“充当”了我自己的 Azure AD B2C 服务?

aar*_*onR 1

IdentityServer 4 是一个 Web 应用程序(登录和注销页面),其 API 实现了 OAuth 2.0 和 OpenID Connect 规范。这些示例提供了简单的用户登录和注销视图,您可以根据自己的喜好进行更改。

\n

关于用户注册过程,您可以将其添加到 IdentityServer4 实现中或将其作为单独的 Web 应用程序。

\n

与 Azure AD B2C 的相似之处

\n

这来自另一篇博客文章

\n

授权

\n
\n

Azure AD B2C 允许您将用户角色建模为您定义的\n组中的成员身份。您目前\xe2\x80\x99t 无法获取包含这些声明的令牌,但您可以使用 Azure AD Graph API 作为解决方法来\n检索组成员身份,并\n在应用程序内部的授权检查中使用它们。现在\xe2\x80\x99s 有点棘手,但是\nB2C 团队\xe2\x80\x99s 的路线图上已经对此进行了改进。

\n
\n

API认证

\n
\n

Azure AD B2C 可以提供令牌,用于通过 OpenID Connect 验证 API 访问\n,但除此之外,功能受到限制。不支持\xe2\x80\x99\nOAuth 2.0 客户端凭据流程,并且 B2C 不\xe2\x80\x99t\n包含任何 API 密钥管理功能,因此,如果您的服务需要支持API密钥认证。

\n
\n

另一篇关于 IdentityServer4 PROS 的文章。

\n
\n

IdentityServer 4 是一个身份验证框架,\n能够为您的 API 提供开箱即用的单点登录 (SSO) 和安全性,并且最近\n支持实现您自己的身份验证协议和令牌,\n并提供 WS-Federation 协议的示例实现和 SAML\n令牌。SSO 适用于所有应用程序,无论它们使用的是 OpenID Connect 还是 WS-Federation。

\n
\n

概括

\n

IdentityServer4 与 Azure AD B2C 类似,具有更多功能,如链接文章中所述。

\n