> and nobody involved in the JWP effort thinks that SD-JWT should be in
that WG once created

Why?

On Fri, Aug 5, 2022, 10:15 Daniel Fett <fett=40danielfett...@dmarc.ietf.org>
wrote:

> Hi Jaimandeep,
> Am 04.08.22 um 20:39 schrieb Jaimandeep Singh:
>
> Dear All,
> My compliments to all the collaborators including David for making efforts
> in answering the queries. However, I am of the opinion that we need to
> answer some of the more fundamental questions before arriving at any
> decision.
>
> Let us first discuss if SD-JWT even meets the charter of the Working
> Group. We can divide the charter into smaller chunks and try to address
> each of them.
>
> (...)
>
>
> I am of the opinion that SD-JWT meets none of the objects set forward by
> the WG. Let us ask some further questions
>
> I don't think that the list of topics the WG is working on is meant as an
> exhaustive list. JWTs were originally specified here, as well as a lot of
> work based on JWTs. SD-JWT is a generic mechanism expanding what can be
> done with JWTs.
>
>
>
> Q1. What is the need of this feature?
> We have a client application that registers the scopes with the
> Authorization Server in the first place. We have a resource owner
> (end-user) who authorizes such claims. With the introduction of SD-JWT we
> are again going back the full circle and asking client applications as to
> what scopes it deems fit to disclose to the outside world, why on the earth
> it asked for the scopes that it never needed in the first place.
>
> Q2. It might not even meet the legal scrutiny. Why?
> Ans. When the user has authorized some scopes it is equivalent to 'click
> agreement'. Now, we are modifying those scopes with or without consent of
> the user. The client application is not bound to ask the user before
> preferring the SD-JWT claims to the Resource Server. Here we are
> challenging the complete concept of OAuth 2.0.
>
> You seem to be missing that whatever an AS releases or allows is not
> touched by SD-JWT. When used for identity claims, SD-JWT allows the
> end-user to release *less* than what was put into a credential by an
> identity provider to the relying party. Other use cases are conceivable,
> e.g., for access tokens, but the point here is that for the selective
> disclosure aspect, user and whatever software they use both have an
> interest to release *less* data to whoever gets the data.
>
>
>
> Q3. Is adoption of SD-JWT recommended in any of the draft documents like
> OAuth 2.1 or Best Security Practices?
> Ans. As of now we have not found any suitable place for introducing it
> into the ecosystem.
>
> The question you ask is misleading. Both OAuth 2.1 and the Security BCP
> not only predate SD-JWT by years, they are also concerned with traditional
> OAuth deployments. SD-JWT is a new feature for new deployments with
> specific requirements. Most deployments will not have any use for SD-JWT,
> and we will not bother them with adopting it, but for those that do, SD-JWT
> is an excellent alternative to other existing approaches. We will for sure
> not recommend SD-JWT as a mechanism for all OAuth setups, but SD-JWT will
> help to establish OAuth/OIDC in SSI and similar use cases.
>
>
>
> Q3. Is there any other WG which is trying to solve the similar problem of
> SD-JWT?
> Ans. Yes, WG-JWP (JSON Web Proofs) may be a more suitable place for the
> adoption of SD-JWT as they are working on a similar set of problems.
> They are actively seeking participation in the area of SD-JWT.
>
> JWPs use advanced cryptography and a completely new format to solve the
> selective disclosure problem, but also many more things that SD-JWT cannot
> do. However, SD-JWT is available today, with four running implementations
> already, it is designed to be easily understood and implemented, and based
> on existing mechanisms (essentially, JWTs + hashing). As far as I am aware,
> a JWP WG is not chartered yet, and nobody involved in the JWP effort thinks
> that SD-JWT should be in that WG once created.
>
>
>
> In my opinion, the SD-JWT is well thought out and a lot of hard work has
> gone behind it. However, this WG is not the right place for adoption as we
> have to work on more serious and immediate issues at hand. We may consider
> its adoption at a later time frame when we gain more maturity on how things
> are going forward.
>
> You seem to imply that adopting SD-JWT would slow down work on other
> topics considerably. I don't think that that would be the case, given that
> other work in this group will not depend on SD-JWT. Also, with large
> projects world wide looking for credential formats such as SD-JWT, I think
> this is a somewhat serious and immediate topic.
>
> -Daniel
>
>
>
> Regards and Best Wishes
> Jaimandeep Singh
>
> On Thu, Aug 4, 2022 at 9:17 PM David Chadwick <
> d.w.chadw...@verifiablecredentials.info> wrote:
>
>> Answers inline below
>> On 03/08/2022 14:57, Torsten Lodderstedt wrote:
>>
>>
>> Am 02.08.2022 um 19:30 schrieb David Chadwick
>> <d.w.chadw...@verifiablecredentials.info>
>> <d.w.chadw...@verifiablecredentials.info>:
>>
>> 
>>
>> Hi Torsten
>>
>> your use case sounds like an online use case, not an offline one. So its
>> a question of balancing a long lived SD-JWT along with a revocation
>> mechanism vs a short lived minimal JWT containing just the claims that are
>> needed.
>>
>> That’s correct.
>>
>> I thought that SAML, OAuth2 and OIDC had opted for short lived
>> non-revocable claims rather than long lived revocable ones due to the
>> experiences of using revocation with X.509 PKCs.
>>
>> SAML and OIDC are considerably simple, flexible, and secure solutions to
>> the challenges of selective disclosure, direct identifiers, and current
>> claim values.
>>
>>
>> However they tend to support maximum privileges/attribute release rather
>> than minimum privileges because they are provided at user login, before the
>> RP knows what the user wants to do. So often more user PII  than is
>> required is released. OIDC4VPs allows us to solve this with SD and
>> incremental releases of claims as the user progressively request to do more
>> sensitive transactions. (By the way this is what we implemented in a
>> non-standard way prior to the W3C VC DM being published. It is documented
>> in the IEEE Comms Standard, viz:
>>
>> David W Chadwick, Romain Laborde, Arnaud Oglaza, Remi Venant, Samer
>> Wazan, Manreet Nijjar “Improved Identity Management with Verifiable
>> Credentials and FIDO”. IEEE Communications Standards Magazine. Vol 3, Issue
>> 4, Dec 2019, Pages 14-20)
>>
>>
>> They are an excellent solution for Web SSO. However, they require the IDP
>> to be always on, an online connection to the RP, and share a lot of
>> metadata with the IDP.
>>
>> I would think that always online is not an issue in today's
>> interconnected world. Rather users expect everything to online 24/24 as do
>> businesses. I suspect any service that is not online 24/24 is the odd one
>> out and disliked by most people. Plus the revocation service has to online
>> 24/24
>>
>>
>> X.509 certificate never had those problems, but are inflexible and
>> require revocation. Verifiable Credentials to me are more like X.509 certs
>> but with more flexibility, simpler to use data formats, and the option to
>> selectively disclose claims.
>>
>> So the question merely is what parameters to optimize for.
>>
>> Agreed, its all about making choices and balancing security, privacy,
>> usability and trust
>>
>>
>>
>> The current thinking I perceive is to give users long lived credentials,
>> which means the issuer doesn’t need to be always on, there is no need for
>> online connection, and the issuer does not get any metadata on when, what
>> kind of claims is being used. This also makes offline use of such
>> credentials an obvious option.
>>
>> Which essentially boils down to short lived unrevocable vs. long lived
>> revocable. The mDL solution of a relatively long lived credentials without
>> revocation might be OK for a driving license that changes infrequently. But
>> this is not a model that will satisfy all verifiable credentials. Also mDL
>> does mean that the IDP will need to be almost always online for users to
>> refresh their credentials when they have expired.
>>
>> In a way you are swapping the IDP being always on, to the revocation
>> service being always on and an IDP that is periodically on to update it.
>> The problem we have seen with this approach in the X.509 world, is that if
>> the revocation service is not available, browsers have switched from a hard
>> fail (which the standard mandates) to a soft fail so that the users can
>> continue working, which leads to an obvious vulnerability of using a
>> revoked certificate. If the IDP is not on, then a hard fail is inevitable
>> with OIDC, and users will soon require the service to resume again so that
>> they can get back to work. So the latter is more secure though less usable
>> (which X.509 used to support with its hard fail). I suspect that in some
>> use cases (maybe financial ones?) hard fails are preferable to soft fails?
>>
>>
>> However, the lifecycle of such credentials needs to be managed. I think
>> revocation lists are an ok solution to that problem. I don’t see how the
>> issuer could learn where a credential is being used with revocation lists
>> as the verifier will just download the whole list for evaluation and
>> revocation lists typically do not authenticate the verifier. Which leaves
>> the IP address of the verifier as metadata without any further context.
>>
>> True, a well designed revocation scheme leaks less information to the IDP.
>>
>>
>> I think the issuer part of it is more complex than people currently
>> believe since issuers need to maintain a list of the credentials they
>> issued (not needed in OIDC). Updates to credential data need to be
>> published and last but not least, there needs to be away to let credentials
>> be revoked. E.g. an user or a wallet provider might need to ask an issuer
>> to revoke a certain credential because of abuse.
>>
>> Does this not imply that the IDP has to always on for the user to report
>> a problem??? Which was something you wanted to escape from.
>>
>>
>> That’s gone be though.
>>
>> Seems like the above was a typo.
>>
>>
>>
>> That might be the reason why ISO mDL uses expiration (I guess weeks to
>> month) instead of revocation. And the wheel starts to turn again …
>>
>>
>> Exactly. Because there is no perfect solution, but only one that
>> compromises one feature for another. So in the end if the users decide
>> which is preferrable, it will mean that usability wins and trumps security
>> and privacy concerns!! If service providers decide they may opt for hard
>> fails with security and privacy trumping usability.
>>
>> Which brings me to the conclusion that long lived one-time use VCs with
>> soft revocation (i.e. continue as if everything is OK if revocation info is
>> not available) with blinded property names and values is the best
>> compromise from a usability perspective i.e. one time use privacy enhanced
>> SD-JWTs. I wonder how many wallets can currently handle this? I guess zero
>> at the moment, but its an objective worth aiming for. Alternatively short
>> lived one-time use VCs with no revocation, that are issued periodically or
>> on demand (dependent upon the validity period) is the best option from a
>> security and privacy perspective. If the IDP is not available the user will
>> not be able to do any work once his stock of short lived credentials are
>> exhausted.
>>
>> Do you agree?
>>
>> Kind regards
>>
>> David
>>
>> Kind regards
>>
>> David
>> On 02/08/2022 10:47, Torsten Lodderstedt wrote:
>>
>>
>> Am 02.08.2022 um 11:06 schrieb Warren Parad <wpa...@rhosys.ch>:
>>
>> I was following your train of thought, let me paste that here for
>> transparency, you specifically said:
>>
>>> In an OAuth scenario, the user‘s wallet would act as AS and issue access
>>> tokens (those could be short lived) that effectively are verifiable
>>> presentations (based on a verifiable credential) audience restricted for a
>>> certain RS. The client wouldn’t even know it’s a verifiable presentation
>>> since the access token is opaque to the client.
>>
>>
>> Which I replied:
>>
>>> If the user's wallet acts as the AS issuing tokens, then there is zero
>>> need for this draft because we could pass the *scopes* that relate to
>>> the claims directly to the AS, and have the AS return a limited JWT, and we
>>> would actually do that every time because:
>>>
>>>    1. we can
>>>    2. because the tokens have short lifetime
>>>
>>> So that isn't a valid argument, unless there's a reason why the AS
>>> wouldn't be able to do this.
>>
>>
>> In this conversation, I'm still not able to parse what you are saying.
>> Yes, of course the user having a physical device (as the AS) to issue
>> tokens is privacy enhancing, but then we don't need this draft as I just
>> proved. Or are you talking about a different point?
>>
>>
>> In the model I envision, OAuth clients are able to obtain access tokens
>> for the user’s services through the user’s wallet. Since the wallet is not
>> the AS the RS trusts, I would like to utilize verifiable credentials as
>> basis for issuing access tokens from the wallet. That means the credential
>> is issued by the AS and the wallet can mint access tokens containing a
>> presentation of such a credential. From a RSs standpoint this retains the
>> standard trust model since the RS only accepts access tokens containing a
>> credential from an AS it trusts.
>>
>> I also assume that a single AS is managing access to several RSs as that
>> was the case in almost all deployments I was involved with.
>>
>> I think the most efficient and flexible way to implement this scenario is
>> to issue a single SD-JWT based credential and to mint RS-specific access
>> token as needed by using SD-JWT’s selective disclosure capabilities. So an
>> access token for the user’s contacts API would only include the claims
>> needed for this service (e.g. the privilege to use the service) whereas an
>> access token for the streaming API would include the data needed there
>> (e.g. authorised channel lists and so on).
>>
>>
>> On Tue, Aug 2, 2022 at 10:54 AM Torsten Lodderstedt <torsten=
>> 40lodderstedt....@dmarc.ietf.org> wrote:
>>
>>>
>>>
>>> Am 02.08.2022 um 10:48 schrieb Warren Parad <wparad=
>>> 40rhosys...@dmarc.ietf.org>:
>>>
>>> 
>>> Can you please reread what you wrote and rephrase it differently?
>>> Telling us to look at the OAuth JWT RFC isn't helpful here.
>>>
>>>
>>> You say the AS can issue an access token every time and I say the wallet
>>> can issue access tokens on its own without the need to go back to the AS
>>> every time again. That’s privacy enhancing and helps scalability.
>>>
>>> Also it isn't clear which part of your statement you are trying to
>>> clarify. What does "original AS" mean? Are you suggesting a "multi AS"
>>> configuration? What does that look like?
>>>
>>> On Tue, Aug 2, 2022 at 10:44 AM Torsten Lodderstedt <torsten=
>>> 40lodderstedt....@dmarc.ietf.org> wrote:
>>>
>>>>
>>>>
>>>> Am 02.08.2022 um 10:35 schrieb Warren Parad <wparad=
>>>> 40rhosys...@dmarc.ietf.org>:
>>>>
>>>> 
>>>> Why would we not include those seemingly critical details in the draft
>>>> then?
>>>>
>>>>    1. Let's define what a *verifiable presentation *is (is that
>>>>    already defined somewhere? I didn't see it in the draft)
>>>>    2. Require the JWTs to be signed with a private key from a
>>>>    certificate chain, and include the whole certificate chain in the body. 
>>>> (I
>>>>    don't think there is already a RFC for this, but I could be wrong)
>>>>
>>>> Let's also talk about this comment:
>>>>
>>>>> In an OAuth scenario, the user‘s wallet would act as AS and issue
>>>>> access tokens (those could be short lived) that effectively are verifiable
>>>>> presentations (based on a verifiable credential) audience restricted for a
>>>>> certain RS. The client wouldn’t even know it’s a verifiable presentation
>>>>> since the access token is opaque to the client.
>>>>
>>>>
>>>> If the user's wallet acts as the AS issuing tokens, then there is zero
>>>> need for this draft because we could pass the *scopes* that relate to
>>>> the claims directly to the AS, and have the AS return a limited JWT, and we
>>>> would actually do that every time because:
>>>>
>>>>    1. we can
>>>>    2. because the tokens have short lifetime
>>>>
>>>> So that isn't a valid argument, unless there's a reason why the AS
>>>> wouldn't be able to do this.
>>>>
>>>>
>>>> Well, how many access tokens have you seen in the wild that only
>>>> contain an access token? I haven’t, any of the carriers some for of user
>>>> claims, e.g. a sub, in most cases some privileges/roles. Please take a look
>>>> at https://www.rfc-editor.org/rfc/rfc9068.html for best current
>>>> practice.
>>>>
>>>> Using a VC in the way I described means the original AS doesn’t need to
>>>> be involved in the
>>>>
>>>>
>>>> On Tue, Aug 2, 2022 at 10:14 AM Torsten Lodderstedt <torsten=
>>>> 40lodderstedt....@dmarc.ietf.org> wrote:
>>>>
>>>>>
>>>>>
>>>>> Am 02.08.2022 um 09:53 schrieb Warren Parad <wparad=
>>>>> 40rhosys...@dmarc.ietf.org>:
>>>>>
>>>>> 
>>>>> If we are in a offline scenario how does the verifier got ahold of the
>>>>> public key associated with the id token?
>>>>>
>>>>>
>>>>> Why id token? I would assume we are talking about verifiable
>>>>> presentations, right?
>>>>>
>>>>> There are a couple of ways to provide the verifier with the public key
>>>>> needed to verify. The (raw) key could be contained in the credential or 
>>>>> the
>>>>> presentation. If a trust chain is required, a x.509 certificate could 
>>>>> serve
>>>>> the same purpose.
>>>>>
>>>>> Beside that offline has different facets. In a Point of Sales
>>>>> scenario, even though the wallet would be offline the checkout counter
>>>>> would most likely have connectivity. That would also allow to resolve the
>>>>> public key on demand.
>>>>>
>>>>>
>>>>> They would need to be online, that defeats any benefit this could
>>>>> provide.
>>>>>
>>>>> Or what if the token you have expires. Many providers issue tokens
>>>>> only good for 1 hour. If that expires, the user has to go through the
>>>>> online flow again.
>>>>>
>>>>> Unless we can add some provisions to ensure long lived token validity,
>>>>> I think in practice we're cripling the usefulness.
>>>>>
>>>>>
>>>>> Absolutely. That’s the reason a verifiable credential has a much
>>>>> longer lifetime simply because the user should be able to use it in a
>>>>> sensible way. As this makes replay more likely, all verifiable credentials
>>>>> formats utilize holder binding for reply detection. The public key
>>>>> mentioned above is part of the cryptographic holder binding that only the
>>>>> legitimate user is able to execute.
>>>>>
>>>>> In an OAuth scenario, the user‘s wallet would act as AS and issue
>>>>> access tokens (those could be short lived) that effectively are verifiable
>>>>> presentations (based on a verifiable credential) audience restricted for a
>>>>> certain RS. The client wouldn’t even know it’s a verifiable presentation
>>>>> since the access token is opaque to the client.
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Aug 2, 2022, 04:21 Kristina Yasuda <Kristina.Yasuda=
>>>>> 40microsoft....@dmarc.ietf.org> wrote:
>>>>>
>>>>>> I support adoption.
>>>>>>
>>>>>>
>>>>>>
>>>>>> To add some color.
>>>>>>
>>>>>>
>>>>>>
>>>>>> One of the use-cases is a flow where issuance of a user credential
>>>>>> (collection of user claims) is decoupled from presentation (where both
>>>>>> issuance and presentation of a user credential are done using extensions 
>>>>>> of
>>>>>> OAuth flows). The goal of this decoupling is to avoid “issuer call home”,
>>>>>> where the user can send a user credential directly to the RP, without RP
>>>>>> needing to contact the Issuer directly. So the motivations are not 
>>>>>> limited
>>>>>> to offline scenarios, but are applicable to the scenarios that want to
>>>>>> recreate in the online environment, the user experience of presenting
>>>>>> credentials in-person.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Driver’s Licence just happens to be an example familiar to many, and
>>>>>> there is no reason it cannot be a diploma, or an employee card, or a
>>>>>> training certificate, etc. But it is worth highlighting that SD-JWT work
>>>>>> becomes critical if we are to enable ISO-compliant mobile Driver Licences
>>>>>> expressed in JSON to enable online scenarios and make life of the Web
>>>>>> developers easier (as opposed processing data encoded as CBOR and signed 
>>>>>> as
>>>>>> a COSE message). Selective disclosure is a requirement in many government
>>>>>> issued credentials, while the usage of advanced cryptography is not 
>>>>>> always
>>>>>> encouraged by the national cybersecurity agencies.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Regarding an approach where issuer issues multiple JWTs of a same
>>>>>> type but with different subset of claims, it is not an ideal way to do
>>>>>> selective disclosure with JWTs (type as a way to differentiate credential
>>>>>> with one data structure/syntax from another). It complicates
>>>>>> implementations that try to provide RP-U unlinkability (RPs cannot 
>>>>>> collude
>>>>>> to track the user). The simplest way to achieve unlinkability with JWTs
>>>>>> without using advanced cryptography is to issue multiple credentials of 
>>>>>> the
>>>>>> same type but with varying use identifiers and enable pairwise 
>>>>>> identifiers
>>>>>> per RP. Now there are multiple copies of each JWT with subset of claims 
>>>>>> of
>>>>>> the same type. This greatly complicates presentation of these credentials
>>>>>> too – since credentials are of the same type, now wallet needs to manage
>>>>>> the combination of a subset of claims + pairwise identifier…
>>>>>>
>>>>>>
>>>>>>
>>>>>> What if the implementation also wants predicates property, where
>>>>>> age_over_XX boolean is sent instead of a birthdate string? The simplest 
>>>>>> way
>>>>>> to do predicates with JWTs without using advanced cryptography is to have
>>>>>> issuers to issue multiple age_over_xx booleans so that an appropriate one
>>>>>> can be selectively disclosed to the RP. How many “JWTs with subset of
>>>>>> claims” does the issuer needs to issue to account for all possible age
>>>>>> requirements? Note that it’s not just age_over_21 to start gambling, it’s
>>>>>> also age_over_65 to get pension benefits.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Managing the combinatorial explosion of sets of claims in
>>>>>> speculatively issued JWTs, many of which will never be used, seems
>>>>>> unwieldy, to say the least. "A conventional JWT with a subset of claims"
>>>>>> approach could be taken in some implementations, but it should not 
>>>>>> prevent
>>>>>> a simpler, extensible alternative of SD-JWT.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Finally, as Giuseppe pointed out, an option to blind claim names is
>>>>>> on the table. As discussed on this list previously, we should analyze
>>>>>> privacy properties of the mechanism and decide if we want to mandate it –
>>>>>> which can be discussed after the adoption.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Best,
>>>>>>
>>>>>> Kristina
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *From:* OAuth <oauth-boun...@ietf.org> *On Behalf Of * Rifaat
>>>>>> Shekh-Yusef
>>>>>> *Sent:* Thursday, July 28, 2022 8:17 PM
>>>>>> *To:* oauth <oauth@ietf.org>
>>>>>> *Subject:* [OAUTH-WG] Call for adoption - SD-JWT
>>>>>>
>>>>>>
>>>>>>
>>>>>> All,
>>>>>>
>>>>>>
>>>>>>
>>>>>> This is a call for adoption for the *SD-JWT* document
>>>>>>
>>>>>>
>>>>>> https://datatracker.ietf.org/doc/draft-fett-oauth-selective-disclosure-jwt/
>>>>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-fett-oauth-selective-disclosure-jwt%2F&data=05%7C01%7CKristina.Yasuda%40microsoft.com%7Ca2d72420ea2c40f2d7c908da70f7b388%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637946506426392735%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=d1EoHuRcBi40%2B1h1p5yZ28O7l8oq%2FibDewlJObT1Gwc%3D&reserved=0>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Please, provide your feedback on the mailing list by *August 12th*.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>>  Rifaat & Hannes
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> OAuth mailing list
>>>>>> OAuth@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/oauth
>>>>>>
>>>>> _______________________________________________
>>>>> OAuth mailing list
>>>>> OAuth@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/oauth
>>>>>
>>>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
>>>
>>>
>>
>> _______________________________________________
>> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>>
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>>
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>>
>
> _______________________________________________
> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to