Nguyen,

I configured cas properties for attributes (since the admins are under a 
different tree, than the authentication tree) and the role is in the 
description attribute:

cas.authn.attributeRepository.ldap[2].id=administrators
cas.authn.attributeRepository.ldap[2].order=2
cas.authn.attributeRepository.ldap[2].attributes.uvicEduPersonYubiKeyID=uvicEduPersonYubiKeyID
cas.authn.attributeRepository.ldap[2].attributes.eduPersonEntitlement=eduPersonEntitlement
cas.authn.attributeRepository.ldap[2].attributes.description=description
cas.authn.attributeRepository.ldap[2].ldapUrl=ldaps://ldaplocal.uvic.ca:636
cas.authn.attributeRepository.ldap[2].connectTimeout=PT3S
cas.authn.attributeRepository.ldap[2].baseDn=ou=administrators,ou=CAS,ou=applications,dc=uvic,dc=ca
cas.authn.attributeRepository.ldap[2].subtreeSearch=true
cas.authn.attributeRepository.ldap[2].searchFilter=uid={user}
cas.authn.attributeRepository.ldap[2].bindDn=cn=Auth 
Manager,ou=CAS,ou=UVON,ou=administrators,dc=uvic,dc=ca
cas.authn.attributeRepository.ldap[2].bindCredential=

I then modified the service definition to return a mapped attribute 
(description -> roles):

{
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^https://local\\.uvic\\.ca/cas-management/.*";,
  "name": "Services Management Web Application on local",
  "id": 50,
  "description": "Services Management Web Application on developer workstation",
  "expirationPolicy":
  {
    "@class": 
"org.apereo.cas.services.DefaultRegisteredServiceExpirationPolicy",
    "deleteWhenExpired": false,
    "notifyWhenDeleted": false,
    "notifyWhenExpired": false
  },
  "proxyPolicy":
  {
    "@class": "org.apereo.cas.services.RefuseRegisteredServiceProxyPolicy"
  },
  "proxyTicketExpirationPolicy":
  {
    "@class": 
"org.apereo.cas.services.DefaultRegisteredServiceProxyTicketExpirationPolicy",
    "numberOfUses": 0
  },
  "serviceTicketExpirationPolicy":
  {
    "@class": 
"org.apereo.cas.services.DefaultRegisteredServiceServiceTicketExpirationPolicy",
    "numberOfUses": 0
  },
  "evaluationOrder": 0,
  "usernameAttributeProvider":
  {
    "@class": 
"org.apereo.cas.services.DefaultRegisteredServiceUsernameProvider",
    "canonicalizationMode": "NONE",
    "encryptUsername": false
  },
  "logoutType": "BACK_CHANNEL",
  "requiredHandlers":
  [
    "java.util.HashSet",[]
  ],
  "environments":
  [
    "java.util.HashSet",[]
  ],
  "attributeReleasePolicy":
  {
    "@class": "org.apereo.cas.services.ReturnMappedAttributeReleasePolicy",
    "allowedAttributes":
    {
      "@class": "java.util.TreeMap",
      "description":
      [
        "java.util.ArrayList",
        [
          "roles"
        ]
      ]
    },
    "principalAttributesRepository":
    {
      "@class": 
"org.apereo.cas.authentication.principal.DefaultPrincipalAttributesRepository",
      "mergingStrategy": "MULTIVALUED",
      "ignoreResolvedAttributes": false
    },
    "consentPolicy":
    {
      "@class": 
"org.apereo.cas.services.consent.DefaultRegisteredServiceConsentPolicy",
      "enabled": true,
      "order": 0
    },
    "authorizedToReleaseCredentialPassword": false,
    "authorizedToReleaseProxyGrantingTicket": false,
    "excludeDefaultAttributes": false,
    "authorizedToReleaseAuthenticationAttributes": true,
    "order": 0
  },
  "multifactorPolicy":
  {
    "@class": 
"org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",
    "multifactorAuthenticationProviders":
    [
      "java.util.HashSet",[]
    ],
    "failureMode": "CLOSED",
    "bypassEnabled": false,
    "forceExecution": false,
    "bypassTrustedDeviceEnabled": false
  },
  "logoutUrl": "https://local.uvic.ca/cas/logout";,
  "accessStrategy":
  {
    "@class": "org.apereo.cas.services.DefaultRegisteredServiceAccessStrategy",
    "order": 0,
    "enabled": true,
    "ssoEnabled": true,
    "delegatedAuthenticationPolicy":
    {
      "@class": 
"org.apereo.cas.services.DefaultRegisteredServiceDelegatedAuthenticationPolicy",
      "allowedProviders":
      [
        "java.util.ArrayList",[]
      ],
      "permitUndefined": true,
      "exclusive": false
    },
    "requireAllAttributes": true,
    "requiredAttributes":
    {
      "@class": "java.util.LinkedHashMap",
      "description":
      [
        "java.util.HashSet",
        [
          "ADMIN"
        ]
      ]
    },
    "rejectedAttributes":
    {
      "@class": "java.util.LinkedHashMap"
    },
    "caseInsensitive": false
  },
  "properties":
  {
    "@class": "java.util.LinkedHashMap",
    "test":
    {
      "@class": "org.apereo.cas.services.DefaultRegisteredServiceProperty",
      "values":
      [
        "java.util.HashSet",
        [
          "FALSE"
        ]
      ]
    }
  },
  "contacts":
  [
    "java.util.ArrayList",[]
  ]
}

I am going to edit our ldap data today to change from ADMIN to ROLE_ADMIN. (I 
got the attribute release working on Friday.)

You can see the attributes in cas management with this logging

        <AsyncLogger name="org.pac4j.cas.client" level="trace" />
        <AsyncLogger name="org.pac4j.cas.credentials" level="trace" />

and release in cas with

        <!-- DEBUG Found principal attributes [...] for [username]
                   Attribute policy [???] allows release of [...] for [username]
                   Final collection of attributes allowed are: [...] -->
        <AsyncLogger 
name="org.apereo.cas.services.AbstractRegisteredServiceAttributeReleasePolicy" 
level="debug"/>

Ray

On Mon, 2020-08-31 at 23:29 +0700, Nguyen Tran Thanh Lam wrote:
Notice: This message was sent from outside the University of Victoria email 
system. Please be cautious with links and sensitive information.

Hi Ray,
Could you show me your config that returned properties roles=[ADMIN]?
And
Have you ever tried return this:
roles=[ROLE_ADMIN]
Like user.json

{

 "casuser" : {

  "roles" : [ "ROLE_ADMIN" ]

 }


}

Since my CAS Management Error log like bellow:

WARN [org.apereo.cas.mgmt.authz.CasRoleBasedAuthorizer] - <Unable to authorize 
access, since the authenticated profile [#CasProfile# | id: root | attributes: 
{credentialType=UsernamePasswordCredential, isFromNewLogin=false, 
authenticationDate=2020-08-26T08:51:16.865441Z[UTC], 
authenticationMethod=users, successfulAuthenticationHandlers=users, 
longTermAuthenticationRequestTokenUsed=false} | roles: [] | permissions: [] | 
isRemembered: false | clientName: CasClient | linkedId: null |] does not 
contain any required roles>

And I guess, If we could fill roles: [] (in red) become role: [ADMIN_ROLE], it 
will run.
Thank you.
Vào Th 2, 31 thg 8, 2020 vào lúc 23:12 Ray Bon 
<r...@uvic.ca<mailto:r...@uvic.ca>> đã viết:
Nguyen,

I am at this point in configuring cas management too.
Our 4.x deploy of cas management used to look up the user in ldap (you would 
use mongo), and get the ADMIN attribute there. But the 6.1 version does not 
seem to use ldap (I configured it but no calls to ldap were made).
Cas management uses cas protocol 3, which means that attributes can be 
returned. I have configured this and I am returning roles=[ADMIN]. This also 
seems to be ignored.

Perhaps one of the developers of cas management could comment if the .json file 
is the only way to identify users and roles.

Ray

On Mon, 2020-08-31 at 14:02 +0700, Nguyen Tran Thanh Lam wrote:
Notice: This message was sent from outside the University of Victoria email 
system. Please be cautious with links and sensitive information.

Hi Mr Jérôme LELEU,
Yes I know this configuration but I have inconvenient process when I create new 
user.
It means, when I create new user in MongoDB, CAS Overlay can authenticated new 
user (I must not restart cas service) but with CAS Management Web App, I must 
add this role for new user to user.json file and restart CAS Management Web App 
service.
For example:
First:
I have already had one user with username is casuser and password =x1.
I could use casuser/x1 as CAS's account to use CAS Overlay and CAS Management 
Web app feature.
Next:
I add new user  with username is casuser2 and password =x2.
I could use casuser2/x2 as CAS's account to use CAS Overlay feature.
But with CAS Management Web App, I need modified user.json file like this

{


 "casuser" : {


   "roles" : [ "ROLE_ADMIN" ]


 },




"casuser2" : {


   "roles" : [ "ROLE_ADMIN" ]


 },


}

Then restart CAS Management service. After that, I could use this casuser2 
account for CAS Management Web App.
It's very inconvenient, thus I hope any way to fix this role for all users.
Please help me.
Thank you in advance.

Vào Th 2, 31 thg 8, 2020 vào lúc 13:44 Jérôme LELEU 
<lel...@gmail.com<mailto:lel...@gmail.com>> đã viết:
Hi,

You need to add a users.json (or users.yml in YAML format) file in the 
classpath.
For example:


{


 "casuser" : {


   "roles" : [ "ROLE_ADMIN" ]


 }


}

Thanks.
Best regards,
Jérôme


Le jeu. 27 août 2020 à 14:11, Napoleon Ponaparte 
<naphaluan211...@gmail.com<mailto:naphaluan211...@gmail.com>> a écrit :

Hi,

I have succeeded config CAS Overlay template 6.2.x can authenticated user that 
registed in MongoDB.
Here is my config:

1. CAS Properties
"name":"cas.authn.mongo.name<http://cas.authn.mongo.name>","value":"users"
"name":"cas.authn.mongo.database-name","value":"users"
"name":"cas.authn.mongo.collection","value":"users"
"name":"cas.authn.mongo.username-attribute","value":"username"
"name":"cas.authn.mongo.password-attribute","value":"password"
"name":"cas.authn.mongo.user-id","value":"casuser"
"name":"cas.authn.mongo.password","value":"Mellon"
"name":"cas.authn.mongo.attributes","value":"lastname,useremail,usertel"
"name":"cas.authn.mongo.clientUri","value":"mongodb://casuser:Mellon@IP:port/users?authSource=admin&readPreference=primary&appname=MongoDB%20Compass%20Community&ssl=false"
2. And this is user properties in User collecion

"username":"root",
"password":"root",
"lastname":"VNPT ADMIN",
"useremail":"xxx",
"usertel":"xxx"

But,  I have faced with problem about CAS Management Web App service.
Here is CAS Management Web App log:

WARN [org.apereo.cas.mgmt.authz.CasRoleBasedAuthorizer] - <Unable to authorize 
access, since the authenticated profile [#CasProfile# | id: root | attributes: 
{credentialType=UsernamePasswordCredential, isFromNewLogin=false, 
authenticationDate=2020-08-26T08:51:16.865441Z[UTC], 
authenticationMethod=users, successfulAuthenticationHandlers=users, 
longTermAuthenticationRequestTokenUsed=false} | roles: [] | permissions: [] | 
isRemembered: false | clientName: CasClient | linkedId: null |] does not 
contain any required roles>

Here is my service registry for CAS Manaement Web App:

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId":"^https://cas-server-domain:8088/cas-management.+";,
  "name" : "casManagement",
  "id" : 1,
  "evaluationOrder" : 1,
  "allowedAttributes":["cn","mail"]
}

CAS server succeed create and authorized access token for user (id = root) but 
CAS Management missing user's role.

I don't know how to assign ROLE for user or indicate user's role fixed in 
service registry.
Please help me.
Thank you in advance.



--
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
---
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cas-user+unsubscr...@apereo.org<mailto:cas-user+unsubscr...@apereo.org>.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/d45135e1-e8d4-4f55-9e49-02e1d825c18bn%40apereo.org<https://groups.google.com/a/apereo.org/d/msgid/cas-user/d45135e1-e8d4-4f55-9e49-02e1d825c18bn%40apereo.org?utm_medium=email&utm_source=footer>.

--
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
---
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cas-user+unsubscr...@apereo.org<mailto:cas-user+unsubscr...@apereo.org>.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAP279LydnJDBBuVcJzjGPE6bVPOQUAZkEaxz6J25bcT0kzKO_Q%40mail.gmail.com<https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAP279LydnJDBBuVcJzjGPE6bVPOQUAZkEaxz6J25bcT0kzKO_Q%40mail.gmail.com?utm_medium=email&utm_source=footer>.


--

Ray Bon
Programmer Analyst
Development Services, University Systems
2507218831 | CLE 019 | r...@uvic.ca<mailto:r...@uvic.ca>

I respectfully acknowledge that my place of work is located within the 
ancestral, traditional and unceded territory of the Songhees, Esquimalt and 
WSÁNEĆ Nations.
--
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
---
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cas-user+unsubscr...@apereo.org<mailto:cas-user+unsubscr...@apereo.org>.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/c480bff7770629a1cefb115add03a25d5e8e2e32.camel%40uvic.ca<https://groups.google.com/a/apereo.org/d/msgid/cas-user/c480bff7770629a1cefb115add03a25d5e8e2e32.camel%40uvic.ca?utm_medium=email&utm_source=footer>.


--

Ray Bon
Programmer Analyst
Development Services, University Systems
2507218831 | CLE 019 | r...@uvic.ca<mailto:r...@uvic.ca>

I respectfully acknowledge that my place of work is located within the 
ancestral, traditional and unceded territory of the Songhees, Esquimalt and 
WSÁNEĆ Nations.

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cas-user+unsubscr...@apereo.org.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/abda5d050659e6e2ef908a755c8b9e134283b252.camel%40uvic.ca.

Reply via email to