Open NicolasLiampotis opened 7 months ago
Create specific claims to differentiate between core and extended profiles:
aarc_profile_core
: Version of the AARC Core Profileaarc_profile_ext
: Version of the AARC Extended ProfileInclude the supported claims in the OpenID Connect Discovery document to inform relying parties about available profiles:
{
"issuer": "https://example.com",
"authorization_endpoint": "https://example.com/authorize",
"token_endpoint": "https://example.com/token",
"userinfo_endpoint": "https://example.com/userinfo",
"response_types_supported": ["code", "id_token", "token id_token"],
[...],
"claims_supported": ["openid", "profile", "aarc_profile_core", "aarc_profile_extended"],
}
The OP should include the profile version and relevant attributes in the ID Token or UserInfo response:
For Core Profile:
{
"sub": "1234567890",
"name": "John Doe",
"email": "johndoe@example.com",
"aarc_profile_core": "1.0"
}
For Extended Profile:
{
"sub": "1234567890",
"name": "John Doe",
"email": "johndoe@example.com"
"aarc_profile_core": "1.0",
"aarc_profile_extended": "1.0"
}
Notice that the claims request approach works for OpenID Connect but, for OAuth2 clients this will not work.
For completeness, WLCG uses parametric scopes, see
And ideally, we should get a short name (ver
?) registered via the OpenID-RandE working group.
Notice that the claims request approach works for OpenID Connect but, for OAuth2 clients this will not work.
... but also for OIDC it's optional, see https://openid.net/specs/openid-connect-core-1_0.html#ClaimsParameter "Support for the claims parameter is OPTIONAL." That was originally a motivation for e.g. SciTokens and WLCG to go for "parametric scopes" as a hack/workaround.
Short Description:
This update introduces a refined versioning approach for the AARC Attribute Profile, as detailed in the newly added Section 2 of the working document. The approach defines a URL with a major.minor
versioning scheme, such as
New Specification:
aarc_ver
claim is introduced to specify the version of the AARC Attribute Profile. This claim uses the aarc
prefix to avoid naming collisions and shortens the version indicator to ver
, aligning with OAuth claim naming conventions.Discussion:
aarc_ver
claim when returning any of the attributes included in the AARC Profile even if the aarc
scope is not requested.aarc_ver
claim is limited to OpenID Connect (OIDC). Version can also be encoded in SCIM by defining a proper schema extension.Open Issues
https://aarc-community.org/attribute/profile/version/X.Y
https://aarc-community.org/profile/attribute/version/X.Y
https://aarc-community.org/profiles/attribute/version/X.Y
If we put more than attributes in the profile, having profile
first would be preferred. If it is only attributes, I would definitely go for attribute
first.
The thing we are defining is a profile, thus "profile" should be the top level resource.
I think "attributes" should not be there at all.
What we probably need is a name for this profile. This means that later we can introduce more profiles with different names for different purposes.
https://aarc-community.org/profile/<name>/version/X.Y
I kind of agree, but could you give an example of what you would put as name? If this would be abstract such as espresso
in refeds, it could become very vague:
https://aarc-community.org/profile/cauliflower/version/1.1
https://aarc-community.org/profile/hedgehog/version/1.2
where 1. would refer to e.g attributes and 2. to for example assurance?
Hi @c00kiemon5ter,
Based on your suggestion for https://aarc-community.org/profile/<name>/version/X.Y
, would the following examples fit your proposal?
https://aarc-community.org/profile/identity/version/1.0
https://aarc-community.org/profile/id/version/1.0
https://aarc-community.org/profile/attributes/version/1.0
https://aarc-community.org/profile/attrs/version/1.0
https://aarc-community.org/profile/id-attrs/version/1.0
@msalle do you think using names like "identity", "id", or "attributes" would address the ambiguity issue you pointed out?
Thanks!
I am re-reading the thread to remember the discussion
We need a mechanism to denote the version of the attribute profile supported by the AARC-compliant proxies
what you would put as name
I think we need to think the purpose of the profile. We should not think what is being profiled (technicality), but why (business value).
https://aarc-community.org/profile/proxy-interoperability/v1.3
The "aarc-community" provides a "profile" for "aarc-proxies". The profile has gone through multiple stages and is now on version "v1.3". It is implied that other minor versions are supported. A proxy can support more profiles, ie
https://aarc-community.org/profile/aarc-proxies/v1.3
https://aarc-community.org/profile/aarc-proxies/v2.0
https://aarc-community.org/profile/special-case/v0.2
It definitely looks reasonable although I'm not sure this would always work/be possible. I'm thinking about:
If we adopt an AARC proxy profile versioning approach that is not specific to attributes (e.g., the proxy interoperability profile https://aarc-community.org/profile/aarc-proxies/vX.Y
suggested by @c00kiemon5ter), we need to define when a version bump occurs. Using the example of an updated AARC-G056 attribute profile specification (e.g. introducing a new attribute):
Open Questions
We need a mechanism to denote the version of the attribute profile supported by the AARC-compliant proxies. At the same time, the relying parties should be able to signal the version of the profile they support.
E.g. this could be implemented with claims and scopes in OIDC or entity categories in SAML