首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OAM 12c OAuth访问令牌验证

OAM 12c OAuth访问令牌验证
EN

Stack Overflow用户
提问于 2018-12-10 09:36:10
回答 1查看 1.7K关注 0票数 0

我正在尝试设置OAM 12c,以便使用默认设置实现OAuth。寻求您的帮助,以解决签名相关问题。

代码语言:javascript
复制
Issue - Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128

用例-通过使用OAM证书在本地验证OAM 12c访问令牌以实现OAuth (2腿流)

描述- OSB (Oracle )是使用OWSM产品实现REST服务和安全服务的oracle产品。一个UI应用程序(为了模拟我们正在使用SOAP ),将调用此REST服务,并将JWT令牌作为一个承载令牌(通过调用OAM 12c REST生成的令牌) OSB应该使用OAM的证书来验证该令牌。

步骤- 1.在OWSM默认密钥存储中导入OAM证书(在fmwconfig/defaultkeystore别名orakey下),并根据oracle文档使用OAM Certifcates在本地验证传入的JWT访问令牌。2.使用OAM API 3创建标识域、资源服务器和客户端。通过调用OAM API 4创建令牌。将此令牌传递给OSB REST 5。令牌验证失败,下面是OSB日志中的异常。

我们收到的例外是-

代码语言:javascript
复制
Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
              at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:189)
              at java.security.Signature$Delegate.engineVerify(Signature.java:1219)
              at java.security.Signature.verify(Signature.java:652)
              at oracle.security.restsec.jwt.JwtToken.verify(JwtToken.java:1558)

我已经验证过,在OAM12c中生成的令牌是带有RSASHA256签名的RSA256,但是看起来OSB (12.2.1.3.0)无法使用相同的令牌,请告诉您的输入并帮助解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2019-04-07 13:05:15

在我看来,问题在于使用不正确的证书进行签名验证。

OAM 12c中,创建的每个OAuth域都有自己的一组公钥-私钥对(证书)。这些证书没有存储在fmwconfig/defaultkeystore别名orakey下。

在最新的12cPS3捆绑补丁上,尝试以下URL来获取OAuth域证书。

代码语言:javascript
复制
curl -X GET "http://{managed server host}:{managed server port}/oauth2/rest/security" -H 'authorization: Basic ...' -H 'X-OAUTH-IDENTITY-DOMAIN-NAME: <OAuth Domain Name>'

其中基本授权头包含- B64编码的"OAuth客户端ID:密码“

响应将在JSON密钥规范(即RFC 7517 )中进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53702837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档