DAPS Server 运行 IDSCP2_example 运行问题

IDSCP2_example

问题1:一开始运行报400错误码

应该是请求错误
请求中的client_id,DAPS服务器不认识

解决1:

自己本地运行Omejdn-server 搭建DAPS令牌颁发服务器
需要安装Ruby解释器搭建运行环境
在Omejdn-server中注册 需要认证的连接器ID
400错误码得到解决

注意点1:server和client都需要注册,server不注册会返回invalid_dat
发生如下错误:
[[17] Unable to process JOSE object (cause: org.jose4j.lang.JoseException: Invalid JOSE Compact Serialization. Expecting either 3 or 5 parts for JWS or JWE respectively but was 1.): INVALID_DAT]

注意点2:grant_type必须要加上client_credentials
注意点3:scope必须是idsc:IDS_CONNECTOR_ATTRIBUTES_ALL
在这里插入图片描述

问题2:localhost证书过期

在server和client第一步握手,就是建立TLS安全连接,通过交换证书,互相验证。
证书过期会报错。

解决2:

修改Host文件中加入 consumer-core和provider-core两个本地域名
使用非localhost的证书。

成功2:
连接器server和client可以建立TLS连接

问题3:500返回码,内部错误,在DAPS服务器filter_scopes中,有string转为int的问题

在这里插入图片描述

解决3:

通过查看ruby的语法和调试
发现在select对数组中每一个元素进行操作时,在resource_owner.attributes[key]处有问题
由于该逻辑是过滤范围,返回一个范围的数组,
于是改写了本来的逻辑,不用过滤直接将scope返回

待解决:

需要查看原来的逻辑,查看过滤时做了什么,改为不出错的逻辑。

问题4:返回的DAT中没有aud受众

[[8] Audience (aud) claim [] doesn’t contain an acceptable identifier. Expected one of [IDS_Connector, idsc:IDS_CONNECTORS_ALL] as an aud value.,

解决4:

改写DAPS Server返回的DAT的逻辑:
在DAPS Server /token的端点中,when 'client_credentials’逻辑中,resources就是最后返回的aud,直接先修改该字段为[‘IDS_Connector’]

尚未解决:

resources该字段如何自动生成?

在这里插入图片描述

问题5:DAT中的颁发者与预期的颁发者不一样

[12] Issuer (iss) claim value (http://localhost:4567) doesn’t match expected value of http://localhost]

解决5:

在DAPS_Driver中改写了jwtConsumer中的setExpectedIssuer的值
但是按照dapsMeta.issuer的值应该是一样的,不知道为什么会发生错误。
在这里插入图片描述

问题6:JWK获取错误

解决6:

原因是获取密钥的端点路径错误,在IDSCP2-JVM某个地方,jwks_endpoint的路径加了一个/well-knowns,导致拿不到密钥。

尚未解决的问题7:验证预期的证书指纹

该逻辑是验证对方的证书指纹,但是DAT中并没有返回证书的逻辑
目前返回的是最直接的DAT,只通过该client_id是否进行注册而进行验证,但是没有部署公钥,通过公钥解密签名进行验证,所以也没有返回证书指纹。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值