问题标签 [gluu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring Boot OpenId Connect 和 Gluu 的配置问题
我正在尝试让 POC 与 Gluu 一起工作。我按照https://spring.io/guides/tutorials/spring-boot-oauth2/上的教程进行操作,并使其与 facebook 一起使用。然后我试图把它移到gluu。通过另一篇关于 stackoverflow 的文章解决了几个问题,但现在我遇到了这个错误。
{
"error": "invalid_request_redirect_uri",
"error_description": "The redirect_uri in the Authorization Request
does not match any of the Client's pre-registered redirect_uris.",
"state": "RexEdf"
}
应用程序.yml:
security:
oauth2:
client:
clientId: "<my client id>"
clientSecret: <my client secret>
accessTokenUri: https://<gluu server>/oxauth/seam/resource/restv1/oxauth/token
userAuthorizationUri: https://<gluu server>/oxauth/seam/resource/restv1/oxauth/authorize
tokenName: oauth_token
authenticationScheme: form
clientAuthenticationScheme: form
scope: openid
resource:
userInfoUri: https://<gluu server>/oxauth/seam/resource/restv1/oxauth/authorize
我在 gluu 和引导客户端上尝试了很多选项来尝试解决这个问题,但似乎没有任何效果。我假设这是一个简单的修复,但我无法找到任何有用的信息。
oauth - 注册后Gluu重定向
我刚刚开始使用 Gluu,而且大多数情况下它完全按照我的意愿工作。但是我在注册时遇到了一些困难。目前,当用户注册时,他/她会被重定向到 gluu 页面。我想要发生的事情是将用户重定向回将用户发送到注册页面(或至少是静态页面)的页面。
我知道这需要在用户注册脚本的 postRegistration 部分完成,但是我不太确定我需要做什么。
那么以前有人做过这样的事情吗?
编辑:
所以这就是我目前所处的位置... postRegistration 函数接受 4 个参数,self、user、requestParameters 和 configurationAttributes。
我假设self只是对自身的引用,因此在这种情况下它并不真正有价值,因为在该类中没有重定向的集合函数,并且它似乎没有任何有价值的参数。
user是即将注册的用户,是从下发过来的org.gluu.oxtrust.action.RegisterPersonAction
,是一个org.gluu.oxtrust.model.GluuCustomPerson
Object。我相信这是我解决此问题的最佳选择……尽管我不确定如何解决。它确实有一个setSourceServerName
看起来很有希望的功能,但设置它并没有以任何方式改变结果。
requestParameters只是在 URL 中发送的查询参数。我尝试将这些设置为有效的 openid 代码身份验证参数,但没有效果。
configurationAttributes只是从 Gluu 发送到脚本中的静态参数(只是静态设置到脚本的参数)
此外,该函数必须返回一个布尔值,所以我假设需要做的是更改输入参数作为副作用,因此我仅有的两个选项是用户对象和 requestParameters。requestParameters 似乎只是 registerPersonAction 类中的一个私有映射对象,它似乎没有做任何特别的事情,所以改变它不应该有我想要的结果。因此它必须是我需要修改的用户对象。但是如前所述,我还不知道以什么方式
jira - Jira SAML 元数据示例?
我正在尝试让 Jira Cloud 与我的 Gluu 服务器集成以实现 SSO。我读过的所有内容都需要来自我的 SP 的元数据文件。Jira 在设置 SAML 时不提供该功能。它们提供 SP 实体 ID 和 SP 断言消费者服务 URL。有人有他们的 Jira 元数据文件的例子吗?我问了 Atlassian,但我还没有收到他们的任何消息。
ubuntu - 在 Ubuntu 上安装 Gluu Server(CE) 后,我的系统会再次自动重启。请建议我如何解决这个问题?
我按照以下命令在 Ubuntu 上安装 Gluu Server:
1.Add Gluu Repository
# echo "deb https://repo.gluu.org/ubuntu/xenial main" > /etc/apt/sources.list.d/gluu-repo.list
2.Add Gluu GPG Key
# curl https ://repo.gluu.org/ubuntu/gluu-apt.key | apt-key add -
3.Update/Clean Repo
# apt-get update
4.Install Gluu Server
# apt-get install gluu-server-3.0.1
5.Start Gluu Server 并登录
# service gluu-server-3.0.1 start
# service gluu-server-3.0.1 login
6.Run setup.py # cd /install/community-edition-setup
#./setup.py
wso2 - Gluu vs keyclock vs wso2 身份管理
我的公司正在使用 Auth0 进行身份管理,我们希望迁移到以下之一:
- 钥匙斗篷
- 胶
- Wso2身份管理
您能建议任何平台有哪些优点和缺点吗?是否有特别突出的功能或与从 Auth0 迁移特别相关的功能?
到目前为止,我能够安装 gluu 服务器、keycloak 和 wso2 似乎非常棘手。
oauth-2.0 - 如何使用自己的登录页面而不是 GLUU 自定义页面?
任何帮助表示赞赏。
目前,对于登录和注册,我都可以使用 OpenID Connect (OAuth 2) 授权代码流。但在这个过程中,我必须使用 GLUU 自定义页面。GLUU 页面经过定制,看起来像我们的组织应用程序登录页面。
我希望使用我们自己的组织应用程序登录页面,而不是自定义 GLUU 登录页面。
如何使用自己的登录页面而不是 GLUU 自定义页面?可能吗?
- 大卫。
keycloak - 角色活动和访问级别
我开发了一个具有以下架构的 Web 应用程序:
- 前端:Angular 6
- 后端:带有 Springboot 的 Java REST API
我想为其添加身份验证和授权。为此,我正在寻找一些开源应用程序(例如 KeyCloak、Gluu 等)。我想知道在哪个工具中支持以下场景。
- UI 上将有一组预定义的活动(例如添加、编辑、删除等)
- 将有预定义的访问级别(例如读、写、无访问)
- 我应该能够创建角色,然后将活动和访问级别分配给这些角色,并将这些角色分配给用户。
你能帮我找出一个支持我上述场景的工具吗?
我为 KeyCloak 尝试了一些东西,但我找不到添加活动、访问级别和映射角色的方法。我认为那里的一切都只受角色支配。
我刚刚意识到我需要基于活动的授权而不是基于角色的授权。请帮我找到一些工具。
angular - Angular-5登录后如何实现基于角色的重定向?
我是新手Angular
,我正在使用Angular-5
. 在我的应用程序中,我有 2 个屏幕/组件,分别称为“ Admin-Dashboard ”和“ HR-Dashboard ”。我的默认路线是 /Admin-Dashboard
查看以下路线:
如果用户未登录我的AuthGaurd
重定向用户到登录屏幕,则用户使用他的有效凭据登录。当用户登录时,用户用户被重定向到/
即默认路由,然后自动重定向到/Admin-Dashboard
。
我的问题是我必须根据他的角色(HR 或 ADMIN)重定向到登录用户。如果user.role=="ADMIN"
去 Admin-Dashboard,如果 user.role=="HR" 去 HR-Dashboard。
目前我的方法是,/Admin-Dashboard
由于默认路由设置,用户首先重定向到,然后在其构造函数中我检查用户角色,如果是,HR
我使用重定向用户到“HR-Dashboard” router.navigate()
。这工作正常,但首先在地址栏中 /Admin-Dashboard呈现,然后重定向到 HR-Dashboard。
我正在寻找一些更好的方法来实现相同的功能。有什么方法可以让我检查路由本身是管理员还是 hr 并相应地重定向?
更新:对不起,我忘了提大事,我正在使用Gluu
(第三方身份验证服务器)作为身份验证服务器,它将用户重定向到我的应用程序 url(https://ip/port例如' https://192.168.55.10:4200 ') 如果用户成功登录。我没有控制从 gluu 更改导航,它只会重定向到我的默认 URL 以及用户数据。即使是登录屏幕也不是我的应用程序的一部分,它托管在 cloude 上,我使用环境配置文件重定向到登录OIDC_Settings
页面AuthGaurd
。
先感谢您。
java - Spring Security OAuth 2 资源服务器:为 jwt 验证转换 jwks 不支持 use==enc
我正在尝试实现一个满足资源服务器 OAuth 角色的服务 (API)。我们有一个实现隐式流程的 Angular 客户端应用程序。我们使用 GLUU 作为我们的 OpenID 提供者。id_token
客户端应用程序能够从授权服务器成功获取(JWT)。但是,当它调用 API(将该令牌作为授权标头中的不记名令牌传递)时,资源服务器无法尝试验证它。我收到一条JwkException
消息:enc (use) is currently not supported.
我正在使用我的 GLUU 服务器提供的端点进行配置security.oauth2.resource.jwk.key-set-uri
(application.yml
https ://[my-gluu-server-host]/oxauth/restv1/jwks)
资源服务器中的故障发生在这种方法中:org.springframework.security.oauth2.provider.token.store.jwk.JwkSetConverter.createRsaJwkDefinition(Map<String, String>)
具体来说,它发生在以下块中,它从/oxauth/restv1/jwks
端点解析文档:
来自 GLUU 服务器的 jwks 文档除其他键外,还包括以下内容:
和
所以我的问题是,为什么org.springframework.security.oauth2.provider.token.store.jwk.JwkSetConverter
当它看到一个不是用于签名的密钥时会抛出异常?在我看来,集合中是否有加密密钥并不重要。
可能我可以告诉 GLUU 不要包含这些键,但我似乎找不到任何支持这项工作的文档。
任何想法如何解决这个问题?
wso2 - 具有外部 GLUU OpenId Connect IDP 的 WSO2 身份服务器 - 身份验证方法 client_secret_basic 与 client_secret_post
我正在使用外部 OpenID Connect IDP 测试 wso2 身份服务器。外部 IDP 是 GLUU。
在我的测试用例中,我有三个组件:
- 部署在 localhost:8099 上的简单 Web 应用程序
- 部署在 localhost:9443 上的 wso2 身份服务器(使用其默认端口)
- 部署在 localhost 上的 GLUU 服务器(使用其默认端口)
我要获取的流程是 OpenId Connect 授权码,我的“简单 Web 应用程序”(配置为 wso2is 中的服务提供商)需要 wso2is 的代码,被重定向到 GLUU 登录页面,获取授权码并交换授权码用于访问令牌。
“简单 Web 应用程序”在 wso2is 中注册为服务提供者(名称为“服务提供者测试”),其入站身份验证配置类型为“OAuth/OpenId 连接配置”。在此配置中,我设置了“简单 Web 应用”的回调 URL,以及我的简单 Web 应用用于获取访问令牌的客户端密码和客户端 ID。
“本地和出站身份验证配置”部分中的此“服务提供商测试”设置为联合身份验证,使用“我的 Gluu 测试 IDP”。
我的 Gluu 测试 IDP 是我添加到 wso2is 的“服务提供者”的身份提供者的名称。我已将 Gluu 的证书上传到“我的 Gluu 测试 IDP”。
在“My Gluu Test IDP”的“Federated Authenticators”部分中,我设置了一个“OAuth/OpenId Connect Configuration”,其中包含 GLUU IDP(客户端 ID、秘密、令牌和身份验证端点)的信息以及此 URL 回调:https://localhost:9443/commonauth
这是前提。
我第一次尝试这种情况,这是我得到的:
- 从我的“简单网络应用程序”调用 wso2is 授权端点
- 重定向到 GLUU 登录页面
- 回到我的“简单网络应用程序”回调 uri,其中包含错误而不是授权代码:{error_description=Authentication required, state=OX86oF, error=login_required, session_state=70b94648800ea5fa1e2476570ee9678225eaccc4deecea18ca9db022b7e1697c.fF2IdhJSG3aTE_TIsyGlYg}
与此错误相关的 wso2is 日志为:
TID:[-1234] [] [2018-09-21 10:33:10,529] 错误 {org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler} - invalid_client,客户端身份验证失败(例如未知的客户端、不包括客户端身份验证或不支持的身份验证方法)。授权服务器可以返回一个 HTTP 401(未授权)状态码来指示支持哪些 HTTP 认证方案。如果客户端尝试通过 Authorization 请求头字段进行身份验证,授权服务器必须以 HTTP 401(未授权)状态代码进行响应,并包含与客户端使用的身份验证方案匹配的 WWW-Authenticate 响应头字段。org.wso2.carbon.identity.application.authentication.framework.exception.AuthenticationFailedException:invalid_client,客户端身份验证失败(例如 G。未知客户端、不包括客户端身份验证或不支持的身份验证方法)。授权服务器可以返回一个 HTTP 401(未授权)状态码来指示支持哪些 HTTP 认证方案。如果客户端尝试通过 Authorization 请求头字段进行身份验证,授权服务器必须以 HTTP 401(未授权)状态代码进行响应,并包含与客户端使用的身份验证方案匹配的 WWW-Authenticate 响应头字段。在 org.wso2.carbon.identity.application.authenticator.oidc.OpenIDConnectAuthenticator.getOauthResponse(OpenIDConnectAuthenticator.java:585) 在 org.wso2.carbon.identity.application.authenticator.oidc.OpenIDConnectAuthenticator.processAuthenticationResponse(OpenIDConnectAuthenticator.java:370)在 org.wso2.carbon.identity.application。NioEndpoint$SocketProcessor.run(NioEndpoint.java:1734) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org .apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 原因:OAuthProblemException{error='invalid_client', description='客户端身份验证失败(例如未知客户端、未包含客户端身份验证或不支持的身份验证方法)。授权服务器可以返回一个 HTTP 401(未授权)状态码来指示支持哪些 HTTP 认证方案。如果客户端尝试通过 Authorization 请求头字段进行身份验证,
在此错误之后,使用 GLUU 管理 UI,我将“令牌端点的身份验证方法”从 client_secret_basic 更改为 client_secret_post,然后我再次尝试测试,一切正常:
- 从我的“简单网络应用程序”调用 wso2is 授权端点。
- 重定向到 GLUU 登录页面
- 重定向到 WSO2IS 身份验证页面(OpenID 用户声明服务提供商测试应用程序请求访问您的个人资料信息......)
- 使用授权码返回我的“简单网络应用”回调 uri:{code=7269a75f-8702-3843-a553-465b69546a27, state=6yFD89, session_state=61d504abd9fe3cda28934f4aa394b156d6792071669f3020d4b79373bapyoc123
- 我的“简单网络应用”调用 wso2is 授权端点,传递代码,并获取 accecc_token
最后是我的问题:
在此测试场景中,我可以更改外部 IDP 的配置,但在实际场景中,我无法更改外部 IDP 上的该参数。我在 WSO2IS 身份提供程序配置中找不到如何从 client_secret_basic、client_secret_post、client_secret_jwt、private_key_jwt、无中进行选择。
在不将 GLUU IDP 设置从 client_secret_basic 更改为 client_secret_post 的情况下,我应该在 wso2is 的配置中进行哪些更改才能使这种情况正常工作?