chore(sso): adjust the schema of the SSO LDAP backend

This commit is contained in:
firest 2023-09-22 11:58:27 +08:00
parent 9e55ae240a
commit 7286d15ca6
2 changed files with 19 additions and 16 deletions

View File

@ -106,23 +106,19 @@ ensure_bind_password(Config) ->
Config#{bind_password => <<"${password}">>}. Config#{bind_password => <<"${password}">>}.
adjust_ldap_fields(Fields) -> adjust_ldap_fields(Fields) ->
adjust_ldap_fields(Fields, []). lists:map(fun adjust_ldap_field/1, Fields).
adjust_ldap_fields([{filter, Meta} | T], Acc) -> adjust_ldap_field({base_dn, Meta}) ->
adjust_ldap_fields( {base_dn, maps:remove(example, Meta)};
T, adjust_ldap_field({filter, Meta}) ->
[ Default = <<"(& (objectClass=person) (uid=${username}))">>,
{filter, Meta#{ {filter, Meta#{
default => <<"(objectClass=user)">>, desc => ?DESC(filter),
example => <<"(objectClass=user)">> default => Default,
}} example => Default
| Acc }};
] adjust_ldap_field(Any) ->
); Any.
adjust_ldap_fields([Any | T], Acc) ->
adjust_ldap_fields(T, [Any | Acc]);
adjust_ldap_fields([], Acc) ->
lists:reverse(Acc).
login( login(
#{<<"username">> := Username} = Req, #{<<"username">> := Username} = Req,

View File

@ -8,4 +8,11 @@ query_timeout.desc:
query_timeout.label: query_timeout.label:
"""Query Timeout""" """Query Timeout"""
filter.desc:
"""The filter for matching users in LDAP is by default `(&(objectClass=person)(uid=${username}))`. For Active Directory, it should be set to `(&(objectClass=user)(sAMAccountName=${username}))` by default. Please refer to [LDAP Filters](https://ldap.com/ldap-filters/) for more details."""
filter.label:
"""Filter"""
} }