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

山姆

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

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

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

  1. 一个用于用户注册和登录的Web界面
  2. 也是具有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可以提供用于通过OpenID Connect验证API访问身份的令牌,但除此之外,功能受到限制。不支持OAuth 2.0客户端凭据流,并且B2C不包含任何API密钥管理功能,因此,如果您的服务需要支持API密钥身份验证,则需要滚动自己的代码。

有关PROS for IdentityServer4的一篇文章

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

概要

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Angle 4作为现有Web应用程序的一部分

触发Spring Batch作为Web应用程序的一部分

如何在余烬应用程序中将api密钥作为url的一部分传递

作为常规应用程序迁移的一部分,运行初始RBAC迁移

调试应用程序作为解决方案的一部分

使用子域访问Web应用程序的一部分(Symfony)

如何CMD作为java程序,而无需单独启动它的一部分?

作为更广泛的Django项目的一部分,运行流星应用程序

作为<form>一部分的输入字段破坏了我的ASP.NET应用程序

Web.config版本转换未作为Azure DevOps服务器中Web应用程序生成的一部分应用

什么是Azure上的Web作业,它是Web应用程序的一部分还是独立的

如何从Web应用程序插件的一部分Servlet中访问.js文件?

使用gradle作为应用程序的一部分在AAR中生成资源

作为JPackage安装的一部分,我如何在linux中使本机linux应用程序可执行

作为VSTS构建管道的一部分,如何将文件复制到MVC应用程序的根目录中?

作为Django Web应用程序的MS Azure应用程序服务发布管道的一部分运行迁移

部署Web应用程序期间出现错误“无法打开源文件:找不到路径的一部分”

测试的Mockito单独通过,但不能作为套件的一部分

如何CMake作为我的应用程序源而不是静态/共享库的一部分来编译库?

Angular-如何将应用程序的一部分作为辅助独立版本输出

Scala错误处理-如果我的Scala代码的一部分失败,我想将function()作为程序的一部分执行

作为AOSP构建的一部分构建gradle系统应用

从 C# 程序集中提取版本作为 Jenkins 管道的一部分

代码可以独立运行,但不能作为整个程序的一部分

Haskell:是否可以将类型作为程序的一部分输出?

作为C#安装程序向导的一部分安装Matlab MCR

我如何创建自己的完成处理程序作为方法参数的一部分

Promise 作为 redux 状态的一部分

使用变量作为语句的一部分