open-metadata / OpenMetadata

OpenMetadata is a unified metadata platform for data discovery, data observability, and data governance powered by a central metadata repository, in-depth column level lineage, and seamless team collaboration.
https://open-metadata.org
Apache License 2.0
5.35k stars 1.01k forks source link

LDAP User Authenticator Issue #17441

Closed Prajwal214 closed 1 month ago

Prajwal214 commented 2 months ago

Affected module New users are not able login in OM using LDAP authentication.

Describe the bug

DEBUG [2024-08-09 13:48:26,488] [dw-127 - GET /api/v1/users/loggedInUser?fields=profile%2Cteams%2Croles%2Cpersonas%2CdefaultPersona] o.o.s.e.CatalogGenericExceptionMapper - user instance for myuser@corp.com not found

To Reproduce

Screenshots or steps to reproduce

Expected behavior A clear and concise description of what you expected to happen.

Version:

Additional context

image
welkson commented 2 months ago

Same problem here.

OM 1.4.7 (kubernetes).

    authentication:
      enabled: true
      clientType: public
      provider: "ldap"

...

      ldapConfiguration:
        host: x.x.x.x
        port: 389
        dnAdminPrincipal: "CN=bind.openmetadata,OU=DIGTI,OU=RE,OU=IFRN,DC=ifrn,DC=local"
        dnAdminPassword:
          secretRef: openmetadata-ldap-secret
          secretKey: password
        userBaseDN: "OU=IFRN,DC=ifrn,DC=local"
        mailAttributeName: "mail"
        maxPoolSize: 3
        sslEnabled: false
        groupBaseDN: "OU=RE,OU=IFRN,DC=ifrn,DC=local"
        roleAdminName: "Admin"
        allAttributeName: "dn"
        usernameAttributeName: "sAMAccountName" # mail only? username?
        groupAttributeName: "memberOf"
        groupAttributeValue: "group"
        groupMemberAttributeName: "member"
        authRolesMapping: '{
            "CN=G_BIGDATA_USERS,OU=BigData,OU=DIGTI,OU=RE,OU=IFRN,DC=ifrn,DC=local": ["DataConsumer"],
            "CN=G_BIGDATA_ADMINS,OU=BigData,OU=DIGTI,OU=RE,OU=IFRN,DC=ifrn,DC=local": ["Admin"]
            }'
        authReassignRoles: ["Admin", "DataConsumer"]

Login in web: welkson.medeiros@ifrn.edu.br (mail / username not supported in OM)

Logs:

welkson@RE446328  ~/workspace/ifrn-kubernetes-homolog/03-services/06-BigData/11-OpenMetadata   main ●  kubectl -n openmetadata logs -f --tail=50 pod/openmetadata-5c99cb5b5-d87l5 | grep welkson  SIGINT(2) ↵  10024  07:44:09 Defaulted container "openmetadata" out of: openmetadata, run-db-migrations (init) DEBUG [2024-08-14 10:44:13,560] [dw-270 - POST /api/v1/users/login] o.e.j.s.HttpConnection - HttpConnection@78fca392::SocketChannelEndPoint@3491aaec{l=/10.42.53.239:8585,r=/10.42.182.140:41790,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}->HttpConnection@78fca392[p=HttpParser{s=CONTENT,0 of 74},g=HttpGenerator@54e3249b{s=START}]=>HttpChannelOverHttp@407aa1e9{s=HttpChannelState@15ffbcd7{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=1},r=3,c=false/false,a=HANDLING,uri=//openmetadata.k8s-homolog.ifrn.edu.br/api/v1/users/login,age=1} parse HeapByteBuffer@574cf7f8[p=1071,l=1145,c=8192,r=74]={POST /api...%7D\r\n\r\n<<<{"email":"welkson.medeiro..."Q3J1emV0YXNlY3RlYW0h"}>>>fg66molWu...\x00\x00\x00\x00\x00\x00\x00} {} DEBUG [2024-08-14 10:44:13,560] [dw-270 - POST /api/v1/users/login] o.e.j.h.HttpParser - parseNext s=CONTENT HeapByteBuffer@574cf7f8[p=1071,l=1145,c=8192,r=74]={POST /api...%7D\r\n\r\n<<<{"email":"welkson.medeiro..."Q3J1emV0YXNlY3RlYW0h"}>>>fg66molWu...\x00\x00\x00\x00\x00\x00\x00} DEBUG [2024-08-14 10:44:13,560] [dw-270 - POST /api/v1/users/login] o.e.j.s.HttpChannel - onContent HttpChannelOverHttp@407aa1e9{s=HttpChannelState@15ffbcd7{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=1},r=3,c=false/false,a=HANDLING,uri=//openmetadata.k8s-homolog.ifrn.edu.br/api/v1/users/login,age=1} Content@49ccce5e{HeapByteBufferR@6a14da85[p=1071,l=1145,c=8192,r=74]={POST /api...%7D\r\n\r\n<<<{"email":"welkson.medeiro..."Q3J1emV0YXNlY3RlYW0h"}>>>fg66molWu...\x00\x00\x00\x00\x00\x00\x00}} DEBUG [2024-08-14 10:44:13,560] [dw-270 - POST /api/v1/users/login] o.e.j.s.HttpInput - HttpInputOverHTTP@3b8d2a8f[c=0,q=0,[0]=null,s=STREAM] addContent Content@49ccce5e{HeapByteBufferR@6a14da85[p=1071,l=1145,c=8192,r=74]={POST /api...%7D\r\n\r\n<<<{"email":"welkson.medeiro..."Q3J1emV0YXNlY3RlYW0h"}>>>fg66molWu...\x00\x00\x00\x00\x00\x00\x00}} DEBUG [2024-08-14 10:44:13,577] [dw-270 - POST /api/v1/users/login] o.o.s.u.j.OMSqlLogger - sql / UserDAO.insert / INSERT INTO user_entity (nameHash, json) VALUES (:nameHashColumnValue, :json :: jsonb), parameters {positional:{3:{"id":"8c566752-af22-4d6b-be29-01930b2fbac7","name":"\"welkson.medeiros\"","fullyQualifiedName":"\"welkson.medeiros\"","version":0.1,"updatedAt":1723632253574,"updatedBy":"\"welkson.medeiros\"","email":"welkson.medeiros@ifrn.edu.br","isBot":false,"isAdmin":false,"deleted":false,"isEmailVerified":false}}, named:{nameHashColumnValue:159241730ad76a8c89ea3e88c2c6d726,json:{"id":"8c566752-af22-4d6b-be29-01930b2fbac7","name":"\"welkson.medeiros\"","fullyQualifiedName":"\"welkson.medeiros\"","version":0.1,"updatedAt":1723632253574,"updatedBy":"\"welkson.medeiros\"","email":"welkson.medeiros@ifrn.edu.br","isBot":false,"isAdmin":false,"deleted":false,"isEmailVerified":false}}, finder:[]} DEBUG [2024-08-14 10:44:13,608] [dw-270 - POST /api/v1/users/login] o.o.s.u.j.OMSqlLogger - sql / UserDAO.insert / INSERT INTO user_entity (nameHash, json) VALUES (:nameHashColumnValue, :json :: jsonb), parameters {positional:{3:{"id":"8c566752-af22-4d6b-be29-01930b2fbac7","name":"\"welkson.medeiros\"","fullyQualifiedName":"\"welkson.medeiros\"","version":0.1,"updatedAt":1723632253574,"updatedBy":"\"welkson.medeiros\"","email":"welkson.medeiros@ifrn.edu.br","isBot":false,"isAdmin":false,"deleted":false,"isEmailVerified":false}}, named:{nameHashColumnValue:159241730ad76a8c89ea3e88c2c6d726,json:{"id":"8c566752-af22-4d6b-be29-01930b2fbac7","name":"\"welkson.medeiros\"","fullyQualifiedName":"\"welkson.medeiros\"","version":0.1,"updatedAt":1723632253574,"updatedBy":"\"welkson.medeiros\"","email":"welkson.medeiros@ifrn.edu.br","isBot":false,"isAdmin":false,"deleted":false,"isEmailVerified":false}}, finder:[]}, timeTaken 31 ms INFO [2024-08-14 10:44:13,608] [dw-270 - POST /api/v1/users/login] o.o.s.j.EntityRepository - Created user:8c566752-af22-4d6b-be29-01930b2fbac7:"welkson.medeiros" DEBUG [2024-08-14 10:44:13,624] [dw-270 - POST /api/v1/users/login] o.o.s.s.o.OpenSearchClient - Sending request to ElasticSearch update {[user_search_index][8c566752-af22-4d6b-be29-01930b2fbac7], doc_as_upsert[true], doc[index {[null][null], source[{"id":"8c566752-af22-4d6b-be29-01930b2fbac7","name":"\"welkson.medeiros\"","fullyQualifiedName":"\"welkson.medeiros\"","version":0.1,"updatedAt":1723632253574,"updatedBy":"\"welkson.medeiros\"","email":"welkson.medeiros@ifrn.edu.br","isBot":false,"isAdmin":false,"teams":[{"id":"708f6bda-0586-4d19-a87d-1b73b8bd4466","type":"team","name":"Organization","fullyQualifiedName":"Organization","description":"Organization under which all the other team hierarchy is created","displayName":"Organization","deleted":false,"href":"http://openmetadata.k8s-homolog.ifrn.edu.br/api/v1/teams/708f6bda-0586-4d19-a87d-1b73b8bd4466"}],"deleted":false,"inheritedRoles":[{"id":"2f69b217-461e-468f-9aec-8542a375ce30","type":"role","name":"DataConsumer","fullyQualifiedName":"DataConsumer","description":"Users with Data Consumer role use different data assets for their day to day work.","displayName":"Data Consumer","deleted":false}],"isEmailVerified":false,"owner":null,"descriptionStatus":"INCOMPLETE","followers":[],"entityType":"user","totalVotes":0,"domain":null,"suggest":[{"input":"\"welkson.medeiros\"","weight":5},{"weight":10}],"fqnParts":[null,"\"welkson.medeiros\""],"displayName":"\"welkson.medeiros\""}]}], scripted_upsert[false], detect_noop[true]} DEBUG [2024-08-14 10:44:13,933] [I/O dispatcher 3] o.a.h.wire - http-outgoing-4 >> "{"doc_as_upsert":true,"doc":{"id":"8c566752-af22-4d6b-be29-01930b2fbac7","name":"\"welkson.medeiros\"","fullyQualifiedName":"\"welkson.medeiros\"","version":0.1,"updatedAt":1723632253574,"updatedBy":"\"welkson.medeiros\"","email":"welkson.medeiros@ifrn.edu.br","isBot":false,"isAdmin":false,"teams":[{"id":"708f6bda-0586-4d19-a87d-1b73b8bd4466","type":"team","name":"Organization","fullyQualifiedName":"Organization","description":"Organization under which all the other team hierarchy is created","displayName":"Organization","deleted":false,"href":"http://openmetadata.k8s-homolog.ifrn.edu.br/api/v1/teams/708f6bda-0586-4d19-a87d-1b73b8bd4466"}],"deleted":false,"inheritedRoles":[{"id":"2f69b217-461e-468f-9aec-8542a375ce30","type":"role","name":"DataConsumer","fullyQualifiedName":"DataConsumer","description":"Users with Data Consumer role use different data assets for their day to day work.","displayName":"Data Consumer","deleted":false}],"isEmailVerified":false,"owner":null,"descriptionStatus":"INCOMPLETE","followers":[],"entityType":"user","totalVotes":0,"domain":null,"suggest":[{"input":"\"welkson.medeiros\"","weight":5},{"weight":10}],"fqnParts":[null,"\"welkson.medeiros\""],"displayName":"\"welkson.medeiros\""}}" DEBUG [2024-08-14 10:44:14,096] [dw-258 - GET /api/v1/users/loggedInUser?fields=profile%2Cteams%2Croles%2Cpersonas%2CdefaultPersona] o.o.s.s.JwtFilter - SecurityContext catalogSecurityContext{principal=CatalogPrincipal{name='welkson.medeiros'}, scheme='http', authenticationSchema='DIGEST', isSecure=false} DEBUG [2024-08-14 10:44:14,097] [dw-258 - GET /api/v1/users/loggedInUser?fields=profile%2Cteams%2Croles%2Cpersonas%2CdefaultPersona] o.o.s.u.j.OMSqlLogger - sql / UserDAO.findUserByEmail / SELECT json FROM user_entity WHERE LOWER(email) = LOWER(:email), parameters {positional:{0:welkson.medeiros@ifrn.edu.br}, named:{email:welkson.medeiros@ifrn.edu.br}, finder:[]} DEBUG [2024-08-14 10:44:14,098] [dw-258 - GET /api/v1/users/loggedInUser?fields=profile%2Cteams%2Croles%2Cpersonas%2CdefaultPersona] o.o.s.u.j.OMSqlLogger - sql / UserDAO.findUserByEmail / SELECT json FROM user_entity WHERE LOWER(email) = LOWER(:email), parameters {positional:{0:welkson.medeiros@ifrn.edu.br}, named:{email:welkson.medeiros@ifrn.edu.br}, finder:[]}, timeTaken 1 ms DEBUG [2024-08-14 10:44:14,104] [dw-258 - GET /api/v1/users/loggedInUser?fields=profile%2Cteams%2Croles%2Cpersonas%2CdefaultPersona] o.o.s.e.CatalogGenericExceptionMapper - user instance for welkson.medeiros@ifrn.edu.br not found

Login doesn't work. User was create in OM without "@ifrn.edu.br": Captura de tela 2024-08-14 074321

JSON in database: {"id": "8c566752-af22-4d6b-be29-01930b2fbac7", "name": "\"welkson.medeiros\"", "email": "welkson.medeiros@ifrn.edu.br", "isBot": false, "deleted": false, "isAdmin": false, "version": 0.1, "updatedAt": 1723632253574, "updatedBy": "\"welkson.medeiros\"", "isEmailVerified": false, "fullyQualifiedName": "\"welkson.medeiros\""}