随笔分类 - [18]OAuth2.0/IdentityServer4
摘要:相关文章: "ASP.NET WebApi OWIN 实现 OAuth 2.0" 之前的项目实现,Token 放在请求头的 Headers 里面,类似于这样: 虽然这是最标准的实现方式,但有时候我们会面对一些业务变化,比如 Token 要求放在 URL 或是 Post Body 里面,比如这样: A
阅读全文
摘要:实现效果:通过生成的 获取用户的一些信息,这样客户端请求的时候,不需要传递用户信息了。 示例配置: Http 调用示例: 调用示例: 参考资料: "UserInfo Endpoint" "Resource owner flow UserInfo Endpoint" "Accessing /conne
阅读全文
摘要:如果使用 IdentityServer4 做授权服务的负载均衡,默认情况下是不可以的,比如有两个授权服务站点,一个资源服务绑定其中一个授权服务( 配置),如果通过另外一个授权服务获取 ,然后拿这个 去访问资源服务,会报 401 未授权错误,为什么?原因在这: By default an access
阅读全文
摘要:OAuth 2.0 默认四种授权模式(GrantType): 授权码模式( ) 简化模式( ) 密码模式( ) 客户端模式( ) 使用 IdentityServer4,我们可以自定义授权模式吗?答案是可以的,比如我们自定义实现一个 授权模式(匿名访问)。 创建 (继承 ): 修改 配置: DI 增加
阅读全文
摘要:IdentityServer4 默认提供了两种证书加密配置: 这两种证书加密方式,都是临时使用,每次重启项目的时候,都会重新生成一个新的证书,这时候就会导致一个问题,重启之前生成的 ,在重启之后,就不适用了,因为证书改变了,对应的加密方式也改变了,所以,就会出现下面这个问题: 错误信息: Www A
阅读全文
摘要:1. 业务场景 IdentityServer4 授权配置 中的 ,设置的是具体的 API 站点名字,也就是使用方设置的 ,示例代码: 上面两个 配置要一致,问题来了,因为授权中心的 配置是整个 API 服务,如果我们存在多个 配置,比如一个前台和后台,然后都需要访问 ,就会出现一些问题。 比如, 服
阅读全文
摘要:之前写了一篇文章:《 "IdentityServer4 实现 OpenID Connect 和 OAuth 2.0" 》 上面这篇文章虽然详细,但都是点到为止的介绍,并没有实际应用的示例,所以,后面在真正去实现的时候,踩到了自己之前种下的很多坑。 业务场景:前后端分离项目,前端调用后端业务服务需要授
阅读全文
摘要:IdentityServer4 登录成功后,默认会跳转到 配置的 地址 ,用于获取 Token,比如跳转后的地址: 前端会从 URL 中获取到 Token 信息,然后把用户信息和 Token 写入到上下文中,示例代码: 可以看到,登录成功后,是手动设置的跳转地址,那我们该如何调整到登录之前的地址呢?
阅读全文
摘要:IdentityServer4 退出登录后,默认会跳转到 配置的 地址,那我们如何动态的跳转到原来的地址呢?实现很简单, 修改如下: 授权中心删除 配置: 前端项目删除 配置:
阅读全文
摘要:IdentityServer4 在登录完成的适合,会再跳转一次页面(权限确认),如下: 我之前以为 IdentityServer4 就是这样使用的,但实际业务场景并不需要进行权限确认,而是登陆成功后直接跳转到之前的页面就行了,所以,为了实现这个需求,我做了很多兼容操作,比如 IdentityServ
阅读全文
摘要:业务场景: IdentityServer4 默认使用 和`UserStore`,需要模拟和加载所有的用户数据,正式环境肯定不能这样实现,我们想从自己的数据库中读取用户信息,另外,因为 IdentityServer4 实现了 OpenId 协议,我们想在用户登录的时候,在请求中添加用户的一些额外信息,
阅读全文
摘要:关于 OAuth 2.0 的相关内容,点击查看: "ASP.NET WebApi OWIN 实现 OAuth 2.0" OpenID 是一个去中心化的网上身份认证系统。对于支持 OpenID 的网站,用户不需要记住像用户名和密码这样的传统验证标记。取而代之的是,他们只需要预先在一个作为 OpenID
阅读全文
摘要:OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑
阅读全文