What is a claim?

*A "claim" is an identifier for an underlying identity store attribute . We
prefer exposing identity store attributes to the to the application level
components as claims rather than direct attributes, to abstract away the
implementation details of the underlying identity store.*

In C4 we only had a static set of metadata for "claims". E.g.
supproted-by-default, read-only, required, etc. With IS 5.3.0 in fact we
have already given the ability to extend the set of metadata defined for a
claim.

In C4, we didn't have a specific object model for an underlying identity
store attribute. E.g. uid, cn, mail, etc. Therefore we also didn't have
support for metadata for identity store attributes, which has come up as a
requirement in various points of time. E.g. data-type, read-only, regex,
multi-valued, etc.

Now we are starting with Claim Management for IS 6.0.0 on C5. After
participating in several recent discussions, I can't help but realize the
fact that all this time we have been working with some confusion regarding
defining metadata for claims. I think the main confusion has been, all
metadata related to attributes have been treated as claim metadata, which I
don't think is correct anymore.

I think we have 2 levels of metadata related to user attributes.

*1. Identity Store Attribute metadata*

Attributes are objects representing an attribute of the underlying Identity
Store. E.g. uid, cn, mail, sAMAccountName, etc.These underlying attributes
have metadata. E.g. data-type, read-only, regex, multi-valued, etc.

*2. Attribute Profile metadata*

Sometime back I sent a mail regarding this [1]. We are taking this up for
IS 6.0.0 on C5.

Basically what I am realizing more and more is that, claims don't have
metadata by themselves, but they get metadata only when we attach them with
a particular profile. Claims by themselves only have an identifier.

Consider following example to understand more. It is quite simple but I
hope you get the point.

The LDAP connector supports an attribute called "sn". "sn" is a LDAP level
optional attribute. So the attribute level meta property would be
"required=false". However we've mapped this "sn" attribute to the native
claim "http://wso2.org/claims/lastName";.

According the discussion we had in [1], the "http://wso2.org/claims/lastName";
claim can be grouped under 2 attribute profiles. E.g. "self sign-up" and
"jit provisioning". At the profile level we can say that "
http://wso2.org/claims/lastName"; is required when doing "self sign-up" but
not required when doing "jit provisioning".

In summary, what I am trying to say is, we have connector attributes at the
lowest level, these attributes can have metadata. We represent connector
attributes as claim to the application level components. Claims don't need
to have metadata by themselves; which is what we did wrong in previous IS
versions. When claims are mapped to profiles each claim would have its own
profile specific metadata. The profile specific metadata values may
override certain values of the attribute metadata, as long as we comply
with the most restrictive of the two (need more brainstorming on this
point).

[1] Multiple Attribute Profiles Support for IS in [email protected]

Thanks and Regards.

-- 

*Johann Dilantha Nallathamby*
Technical Lead & Product Lead of WSO2 Identity Server
Governance Technologies Team
WSO2, Inc.
lean.enterprise.middleware

Mobile - *+94777776950*
Blog - *http://nallaa.wordpress.com <http://nallaa.wordpress.com>*
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to