OpenAM之OAuth2配置

摘要:
关于如何获得范围,可以参考以下方法。打开Subject以查找用户,修改它,然后使用Chrome F12查看元素,EntityEdit XXX是所需的范围。此值将在稍后标记时获得。配置OAuth2ServiceProvider1。仪表板上有一个CommonTasks,找到ConfigureOAuthProvider菜单,然后配置ConfigureOAuth22。基本上没有什么可供选择的,只是默认情况下。

OpenAM OAuth2

OpenAM是很强大的,OAuth2的配置也相对简单,分3步走

  • 配置OAuth2 Application(=OAuth2 connect client / ≈OAuth2 agent)
  • 配置OAuth2 Service Provider(Configure OAuth2 authorization server)
  • 验证OAuth2的code/access_token/tokeninfo是否正确

配置OAuth2 Application

1.进入顶层Top Level Realm,找到Applications->OAuth2
在这里插入图片描述
2.New一个Agent,这里看到的Name,就是client_id
在这里插入图片描述

3.这里的Client password要记住,也就是后面要用的client_sercret

在这里插入图片描述
4.把要授权跳转的网站,配置进去Redirection_URIs,这里我们用http://java.bejson.com/generator/ 在这里插入图片描述
5.Scope可以设置几个,例如mail/employeenumber
在这里插入图片描述
*。至于Scope怎么获取,可以参考以下方法,从Subjects里面打开找到你的用户,然后修改,然后使用Chrome的F12查看元素,EntityEdit.XXX就是想要的Scope了,这个值后面tokeninfo的时候会获取到。
在这里插入图片描述

配置OAuth2 Service Provider

1.DashBoard有个Common Tasks,找到一个Configure OAuth Provider的菜单,配置Configure OAuth2
在这里插入图片描述

2.基本没什么可以选,默认即可。在这里插入图片描述
3.正常保存后,可以再Services里面找到一个OAuth2 Provider
在这里插入图片描述
4.里面有些配置可以定制,不过作为demo一般默认就够了在这里插入图片描述

验证OAuth2的code/access_token/tokeninfo是否正确

1.首先是code,开始构建url,关键是几个字段

http://localhost:8099/openampro/oauth2/realms/root/authorize?client_id=tomcatadmin&response_type=code&scope=employeenumber&redirect_uri=http://java.bejson.com/generator

  • client_id=tomcatadmin,前面agent/client里面的Name
  • response_type=code,这里是code,当然你可以粗暴一点设置为token直接获取access_token
  • scope=employeenumber,相当于你要tokeninfo可以获取的信息
  • redirect_uri=http://java.bejson.com/generator 必须是配置再重定向uris里面的地址

2.跳转并获取Code

在这里插入图片描述
3.从地址提取codede7f03c5-a72c-4d74-acae-b7671fbbeb19
在这里插入图片描述

4.使用Postman构造POST请求,获取ACCESS_TOKEN

  • url :

http://localhost:8099/openampro/oauth2/realms/root/access_token

  • 参数:

client_id:tomcatadmin
client_secret:tomcat123
code:de7f03c5-a72c-4d74-acae-b7671fbbeb19
grant_type:authorization_code
redirect_uri:http://java.bejson.com/generator

在这里插入图片描述

5.使用Postman构造GET请求,获取TOKEN INFO

http://localhost:8099/openampro/oauth2/realms/root/tokeninfo?access_token=5afab977-64b0-4480-83cb-40b140aae1ed

在这里插入图片描述

Summary

到此,一个简单的OpenAM-OAuth2的构建(redirectUrl->code->accessToken->tokenInfo)已经完成,但是这只是一个开始,还有更复杂的配置,更复杂的授权机制,还有LDAP/Subjects同步,Scope设置等等内容需要探索。

免责声明:文章转载自《OpenAM之OAuth2配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python--Yaml操作PHPMailer邮件类使用错误分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信公众号开发系列-获取微信OpenID

在微信开发时候在做消息接口交互的时候须要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID。接收事件推送方式和网页授权获取用户基本信息方式获取。 1、通过接收被动消息方式获取OpenId(接收事件推送方式)。下面事件中都能够获取到OpenID 关注/取消关注事件 用户在关注与取消关注公众号时。微信会把这个事件推送到开发人员填...

翻译:WebApi 认证--用户认证Oauth解析

The Web API v2用户认证模板提供了流行的应用用户认证场景,如.使用本地帐号的用户名密码认账 (包括创建用户、设置和修改密码)以及使用第三方的认证方式,如facebook,google等等– 在本地中包含了外部帐号的连接 所有的这些均通过使用一个OAuth2认证服务进行. To make all that happen the template...

Android第三方登陆

登录 javaweb中如何去维持登录状态 1.登录后 信息放入 session中 2.页面内验证session中是否有登录信息 3.如果有,不需要再次登录 4.如果没有,跳转登录页面 5.如果登录后点击注销,删除session中登录信息,并清除页面缓存(必要的) javaweb中哪些情况我们的session会过期 1.过期-->很长时间没有去访问网...

.NET微信开发通过Access Token和OpenID获取用户信息

本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称、头像、性别、国家、省份、城市、语言。 本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息,而无需模拟登录。 在本文中,特别要注意的是有两个不同的Access Token,他们产生的方式不一样,一种是使用AppID和AppSecret获取的acce...

Spring Cloud Security集成CAS (单点登录)对微服务认证

一、前言   由于leader要求在搭好的spring cloud 框架中加入对微服务的认证包括单点登录认证,来确保系统的安全,所以研究了Spring Cloud Security这个组件。在前面搭好的demo中,如何确保微服务的安全,为整个系统添加安全控制,就需要用到Spring Cloud Security。用户通过服务网关zuul来访问任何一个微服务...

OAuth2.0(基于django2.1.2实现版本)

基于python3.7 0),你要先对OAuth2.0有一定的了解,建议先读一下阮一峰的oauth2.0文章,直接看“授权码模式”即可,带着疑问再来读本文效果更好。http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 1),安装python3.7安装虚拟环境virtualenv pip install...