On Mar 11, 2022, at 6:31 PM, Dylan McReynolds <dmcre...@lbl.gov> wrote:
Hi Dylan, good afternoon!
I have a feeling I know what your problem is, and it has to do with the domain of the confidential client’s identity.
Your underlying storage gateway probably has something like this:
[root@cfxs2600gz-rcf-114-06 ~]# globus-connect-server storage-gateway show STORAGE_GATEWAY_UUID
…… snip ……
Allowed Domains: ['stanford.edu']
The domains were set by the --domain option when the storage gateway was created (see https://docs.globus.org/globus-connect-server/v5.4/reference/storage-gateway/create/). In the case of my storage gateway, the allowed domain is “stanford.edu”.
Storage gateways need to be able to map a Globus Identity username (which takes the form of user...@some.domain) to a local username. As per the Identity Mapping Guide (https://docs.globus.org/globus-connect-server/v5.4/identity-mapping-guide/), the easiest thing is to match against an allowed domain, remove everything at & after the @-sign, and use the result as the username.
Since you are using a confidential client, your client has its own username. If you check on the Globus Developers web site, you should see that your client has a client identity username of the form “CLIE...@clients.auth.globus.org”. It’s unlikely that ‘clients.auth.globus.org’ is an allowed domain on your storage gateway, and even if it was, your client ID is probably not used as a local username.
So, what is the fix? Well, I have two ideas, though I’ve never tested either idea myself.
The first, would be to make a guest collection, and give your confidential client access to that.
The second would be to leverage a custom identity mapping. Section 2 of the Identity Mapping Guide shows how you can make a JSON file consisting of a list of mappings. You could have a list of mappings consisting of an identity username mapping (Section 2.1) to cover normal people, and an application-identity mapping (Section 2.3) for your confidential client.
If you don’t want to mess with your existing storage gateway, then maybe you could just make another one? You could make a new POSIX storage gateway, just for Globus Apps, which uses the custom identity mapping with only application-identity mappings.
Again, these are all guesses, as I haven’t tried it myself. But I think one of those solutions will do what you want!
~ Karl
Hi Dylan,
Yes, I was suggesting the “Add Permission” page.
I just tried this, with a confidential client of my own, and a guest collection I had lying around. I was able to add the confidential client’s identity username. I did not try searching by name, I just copy/pasted the client identity username, and it showed up like in the attached picture.
~ Karl