[ 
https://issues.apache.org/jira/browse/OAK-3876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Klimetschek updated OAK-3876:
---------------------------------------
    Description: 
In the ExternalLoginModule, the user = authorizable id for the subject after 
successful authentication will be solely based on the userId of the passed in 
SimpleCredentials, as the [original credentials are set as 
SHARED_KEY_CREDENTIALS|https://github.com/apache/jackrabbit-oak/blob/cc78f6fdd122d1c9f200b43fc2b9536518ea996b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java#L230].

However, with an external identity provider it can be the case that the 
credentials do not contain the actual local user id and only the identity 
provider would do the mapping in its authentication logic and return the right 
local user id via ExternalUser.getId().

An example might be an opaque token string used as credential, which the 
external IDP validates by calling the external entity, and receiving user data 
that allows to map to the local user id.

  was:
In the ExternalLoginModule, the user = authorizable id for the subject after 
successful authentication will be solely based on the userId of the passed in 
SimpleCredentials, as the [original credentials are set as 
SHARED_KEY_CREDENTIALS|https://github.com/apache/jackrabbit-oak/blob/cc78f6fdd122d1c9f200b43fc2b9536518ea996b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java#L230].

However, with an external identity provider it can be the case that the 
credentials do not contain the actual local user id and thus the 
SimpleCredentials passed in might not contain the right user id yet, only the 
identity provider would do the mapping in its authentication logic and return 
via ExternalUser.getId().

An example might be an opaque token string used as credential, which the 
external IDP validates by calling the external entity, and receiving user data 
that allows to map to the local user id.


> ExternalLoginModule ignores authorizable ID returned from IDP
> -------------------------------------------------------------
>
>                 Key: OAK-3876
>                 URL: https://issues.apache.org/jira/browse/OAK-3876
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: auth-external
>    Affects Versions: 1.2.9, 1.3.13
>            Reporter: Alexander Klimetschek
>
> In the ExternalLoginModule, the user = authorizable id for the subject after 
> successful authentication will be solely based on the userId of the passed in 
> SimpleCredentials, as the [original credentials are set as 
> SHARED_KEY_CREDENTIALS|https://github.com/apache/jackrabbit-oak/blob/cc78f6fdd122d1c9f200b43fc2b9536518ea996b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java#L230].
> However, with an external identity provider it can be the case that the 
> credentials do not contain the actual local user id and only the identity 
> provider would do the mapping in its authentication logic and return the 
> right local user id via ExternalUser.getId().
> An example might be an opaque token string used as credential, which the 
> external IDP validates by calling the external entity, and receiving user 
> data that allows to map to the local user id.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to