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