[
https://issues.apache.org/jira/browse/SHIRO-631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16208081#comment-16208081
]
Ruslan Dautkhanov commented on SHIRO-631:
-----------------------------------------
Here's auth_to_local description from Kerberos man page
http://web.mit.edu/tsitkova/www/build/krb_admins/conf_files/krb5_conf.html#realms
{noformat}
auth_to_local
This tag allows you to set a general rule for mapping principal names to local
user names. It will be used if there is not an explicit mapping for the
principal name that is being translated. The possible values are:
RULE:exp
The local name will be formulated from exp.
The format for exp is [n:string](regexp)s/pattern/replacement/g. The integer n
indicates how many components the target principal should have. If this
matches, then a string will be formed from string, substituting the realm of
the principal for $0 and the n‘th component of the principal for $n (e.g. if
the principal was johndoe/admin then [2:$2$1foo] would result in the string
adminjohndoefoo). If this string matches regexp, then the s//[g] substitution
command will be run over the string. The optional g will cause the substitution
to be global over the string, instead of replacing only the first match in the
string.
DEFAULT
The principal name will be used as the local user name. If the principal has
more than one component or is not in the default realm, this rule is not
applicable and the conversion will fail.
For example:
[realms]
ATHENA.MIT.EDU = {
auth_to_local = RULE:[2:$1](johndoe)s/^.*$/guest/
auth_to_local = RULE:[2:$1;$2](^.*;admin$)s/;admin$//
auth_to_local = RULE:[2:$2](^.*;root)s/^.*$/root/
auto_to_local = DEFAULT
}
would result in any principal without root or admin as the second component to
be translated with the default rule. A principal with a second component of
admin will become its first component. root will be used as the local name for
any principal with a second component of root. The exception to these two rules
are any principals johndoe/*, which will always get the local name guest.
{noformat}
We use auth_to_local quite often in Hadoop clusters.
Yep, would be nice to have this in Shiro too.
> Principal mapping rules similar to Hadoop's auth_to_local
> ---------------------------------------------------------
>
> Key: SHIRO-631
> URL: https://issues.apache.org/jira/browse/SHIRO-631
> Project: Shiro
> Issue Type: New Feature
> Components: Authentication (log-in), Authorization (access control)
> , Realms
> Environment: HDP 2.6 + Kerberos + AD LDAP multi-domain forest
> Reporter: Hari Sekhon
> Priority: Blocker
>
> Feature Request to add principal mapping rules similar to Hadoop's
> auth_to_local.
> This will allow munging pincipals and rule based remappings to differentiate
> duplicate users in multi-domain Active Directory forests where the LDAP
> results returned from the global catalog include duplicate usernames which
> need to be translated with a prefix/suffix in order to differentiate between
> domains to prevent users from different domains sharing logins, permissions
> etc.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)