我有一个ASP.NET Core Web API应用程序并为了保护它,我已经实现了JWT Bearer
身份验证。下一步是管理用户访问并发出JWT
令牌。
最初我考虑过使用Azure AD B2C,但它似乎不支持我的业务需求。所以我现在正在考虑使用Identity Server 4.
Identity Server 4是否作为完全独立的应用程序运行?另外,我是否正确地理解它被用作:
JWT
令牌换句话说,Identity Server 4是否“充当”我自己的Azure AD B2C服务?
答案 0 :(得分:0)
IdentityServer 4是一个Web应用程序(登录和登录页面),其中包含一个实现OAuth 2.0和OpenID Connect规范的API。 samples提供了一个简单的用户登录和注销视图,您可以根据自己的喜好进行更改。
关于用户注册过程,您可以将其添加到IdentityServer4实现或将其作为单独的Web应用程序。
与Azure AD B2C的相似之处
这来自另一篇博客article
授权
Azure AD B2C允许您将用户角色建模为组中的成员身份 你定义的。您目前无法获得包含这些令牌的令牌 声明,但您可以使用Azure AD Graph API作为解决方法 检索组成员身份,并在授权检查中使用它们 在你的申请中。现在这有点棘手,但是 对此的改进是在B2C团队的路线图上。
API身份验证
Azure AD B2C可以提供令牌以通过身份验证API访问 OpenID Connect,但除此之外功能有限。该 不支持OAuth 2.0 Client Credentials流,B2C则不支持 包括任何API密钥管理功能,因此您需要滚动您的 如果您的服务需要支持API密钥身份验证,则拥有自己的代码。
另一个article具有IdentityServer4的PROS。
IdentityServer 4是一个能够使用的身份验证框架 框单点登录(SSO)和API的安全性,以及最近的 支持实现自己的身份验证协议和令牌, 以及WS-Federation协议和SAML的示例实现 令牌。 SSO适用于所有应用程序,无论它们是否适用 正在使用OpenID Connect或WS-Federation。
<强>摘要强>
IdentityServer4与Azure AD B2C类似,具有更多功能,如链接文章中所述。