首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码"clientSecret“参数在OAuth2 JWT令牌CAS Apereo版本6.1.7

密码"clientSecret“参数在OAuth2 JWT令牌CAS Apereo版本6.1.7
EN

Stack Overflow用户
提问于 2020-07-10 09:15:42
回答 1查看 363关注 0票数 0

我遵循这一指令,用OAuth2 Apereo6.1 https://apereo.github.io/2019/11/04/cas62x-oauth-jwt-access-token/加密OAuth2 JWT令牌中的“https://apereo.github.io/2019/11/04/cas62x-oauth-jwt-access-token/”参数。

步骤1:使用CAS Shell加密clientSecret

代码语言:javascript
复制
root@ubuntu16:~/lam/cas-overlay-template# ./gradlew downloadShell runShell
root@ubuntu16:~/lam/cas-overlay-template# java -jar build/libs/cas-server-support-shell-6.1.7.jar
cas>encrypt-value value exampleOauthClientSecret alg PBEWithMD5AndTripleDES provider SunJCE password Vnpt@123 iterations 1000
==== Encrypted Value ====
{cas-cipher}La813rUHz0m2XM/DwqjvGtHPX+l8XtMzI80UGXH24uDMGXCqsAYFfg==
cas>decrypt-value value {cas-cipher}La813rUHz0m2XM/DwqjvGtHPX+l8XtMzI80UGXH24uDMGXCqsAYFfg== alg PBEWithMD5AndTripleDES provider SunJCE password Vnpt@123 iterations 1000

==== Decrypted Value ====
exampleOauthClientSecret

第二步:我这样做服务注册

代码语言:javascript
复制
root@ubuntu16:/etc/cas/services-repo# cat OAuthJWTService-3.json
{
    "@class" : "org.apereo.cas.support.oauth.services.OAuthRegisteredService",
    "clientId": "exampleOauthClient",
   #"clientSecret": "exampleOauthClientSecret",
    "clientSecret": "{cas-cipher}La813rUHz0m2XM/DwqjvGtHPX+l8XtMzI80UGXH24uDMGXCqsAYFfg==",
    "serviceId" : "^https://cascore.vdc2.com.vn:9999/.*",
    "name" : "OAuthJWTService",
    "id" : 3,
    "jwtAccessToken": true,
    "attributeReleasePolicy" : {
        "@class" : "org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy",
        "allowedAttributes" : [ "java.util.ArrayList", ["comdepartment","comid","lastname","usercode","userdate","useremail","userparentid","userstatus","usertel","usertype" ] ]
 },
        "properties" : {
        "@class" : "java.util.HashMap",
        "accessTokenAsJwtSigningKey" : {
            "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty",
            "values" : [ "java.util.HashSet", [ "CoSfJ2WweU-cWcUYSjW2PWLVLd9hIVG0xxjFFUHSUbCjkkNiwPli_WlqF9V2MHJH3SGH_4DifSYxlgs98h4snA" ] ]
  },
            "accessTokenAsJwtEncryptionKey" : {
            "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty",
            "values" : [ "java.util.HashSet", [ "_3gpqpSiIEjHT0xlscGvgDr0-iPIeeEeyecfFgbg_5E" ] ]
      },
      "accessTokenAsJwtSigningEnabled" : {
           "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty",
           "values" : [ "java.util.HashSet", [ "true" ] ]
      },
      "accessTokenAsJwtEncryptionEnabled" : {
           "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty",
           "values" : [ "java.util.HashSet", [ "true" ] ]
      },
      "accessTokenAsJwtCipherStrategyType" : {
          "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty",
           "values" : [ "java.util.HashSet", [ "SIGN_AND_ENCRYPT" ] ]
      }
   }
}

步骤3:我像这样配置CAS Apereo全局(我在MongoDB中的全局配置存储)

代码语言:javascript
复制
{"_id":{"$oid":"5f058f62ee9a446824d4adf3"},"name":"org.apereo.cas.standalone.configurationSecurity.alg","value":"PBEWithMD5AndTripleDES"}
{"_id":{"$oid":"5f058f79ee9a446824d4adf4"},"name":"org.apereo.cas.standalone.configurationSecurity.provider","value":"SunJCE"}
{"_id":{"$oid":"5f058f8aee9a446824d4adf5"},"name":"org.apereo.cas.standalone.configurationSecurity.iterations","value":"1000"}
{"_id":{"$oid":"5f058f9dee9a446824d4adf6"},"name":"org.apereo.cas.standalone.configurationSecurity.psw","value":"Vnpt@123"}

步骤4:重新构建CAS步骤5:我调用API来创建JWT令牌,如下所示

代码语言:javascript
复制
curl https://cascore.vdc2.com.vn:8443/cas/oauth2.0/token?grant_type=password'&'client_id=exampleOauthClient'&'client_secret=exampleOauthClientSecret'&'username=abc'&'password=Vnpt@123 | jq

但这表明了这个问题

代码语言:javascript
复制
{
  "@class": "java.util.LinkedHashMap",
  "timestamp": [
     "java.util.Date",
      1594370510760
   ],
  "status": 401,
  "error": "Unauthorized",
  "message": "No message available",
  "path": "/cas/oauth2.0/token"
}

我试着用这个

代码语言:javascript
复制
curl https://cascore.vdc2.com.vn:8443/cas/oauth2.0/token?grant_type=password'&'client_id=exampleOauthClient'&'client_secret={cas-cipher}La813rUHz0m2XM/DwqjvGtHPX+l8XtMzI80UGXH24uDMGXCqsAYFfg=='&'username=abc'&'password=Vnpt@123 | jq

但是它再次显示了这个错误。

代码语言:javascript
复制
{
  "@class": "java.util.LinkedHashMap",
  "timestamp": [
     "java.util.Date",
     1594370510760
  ],
     "status": 401,
     "error": "Unauthorized",
     "message": "No message available",
     "path": "/cas/oauth2.0/token"
}

最后,我尝试将注册文件中的param改为纯文本,从"clientSecret": "{cas-cipher}La813rUHz0m2XM/DwqjvGtHPX+l8XtMzI80UGXH24uDMGXCqsAYFfg=="改为"clientSecret": "exampleOauthClientSecret"

它可以工作,并给我JWT令牌。

请帮帮我。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 07:40:44

--我按照这个指令用OAuth2 Apereo6.1加密OAuth2 JWT令牌中的"clientSecret“参数

如果您仔细阅读了您共享的链接上的博客文章,您会注意到:

我们的起始位置是基于:

  • CAS 6.2.x

所以这可能就是为什么这些指令对你不起作用。

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

https://stackoverflow.com/questions/62831046

复制
相关文章

相似问题

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