> Any idea what method I should be using to set the environment variable? Do you
> see the environment variable in 'about:support'?

For some reason it does not show up in about:support, but it is there if snap
run --shell firefox -c 'env|grep KRB' shows it.

> I first tried what appeared to be the proper way, but got an error:
> 
>         wtcline@wtcline-desk20:~$ sudo snap set firefox
> env.KRB5CCNAME="FILE:/tmp/krb5cc_1000" error: cannot perform the following
> tasks:
>         - Run configure hook of "firefox" snap (invalid option name:
> "KRB5CCNAME")

I did not know this method. The manual crafting of the environment variable
works for me (although in my case it already is in the environment so I don't
really need to do it and am just showing it for demonstration's sake):

--->
# Locate the ticket
% ls /tmp/krb5cc_746400500_DdKFTS 
/tmp/krb5cc_746400500_DdKFTS
# Make sure the variable is correctly transformed in the sandbox
% KRB5CCNAME=FILE:/tmp/krb5cc_746400500_DdKFTS snap run --shell firefox -c
'env|grep KRB' KRB5CCNAME=FILE:/var/lib/snapd/hostfs/tmp/krb5cc_746400500_DdKFTS
# Now just launch Firefox and navigate to a place where Kerberos is needed
% KRB5CCNAME=FILE:/tmp/krb5cc_746400500_DdKFTS snap run firefox
<---

> Yet if I set 'KRB5CCNAME=/tmp/krb5cc_1000' in '/etc/environment' and
> reboot then I can get output like the following:

Note KRB5CCNAME must start with the file type, here FILE, so

  [INCORRECT] KRB5CCNAME=/tmp/krb5cc_1000
  [-CORRECT-] KRB5CCNAME=FILE:/tmp/krb5cc_1000

That is why you saw the "will not expose" error.

> At some point I
> also managed to get:
> 
>         wtcline@wtcline-desk20:/home/wtcline$ snap run --shell firefox -c
> 'env|grep KRB' KRB5CCNAME=FILE:/var/lib/snapd/hostfs/tmp/krb5cc_1000

That one is correct, you probably fixed the missing prefix at some point without
noticing.

Now, from what I gather it nonetheless does not work, so let's take a step
back. Can you walk me through the minimal path from boot until your attempt on
Firefox? I.e., do you get a log in screen, you log in with your normal, local
user? Then you generate a ticket with Kinit and then start Firefox with or
without the environment variable?

What is then the output of
  
  id
  klist
  snap run --shell firefox 'env|grep KRB; id; od ${KRB5CCNAME#FILE:}'

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to firefox in Ubuntu.
https://bugs.launchpad.net/bugs/1849346

Title:
  [SRU] kerberos GSSAPI no longer works after deb->snap transition

Status in Mozilla Firefox:
  New
Status in snapd:
  Fix Released
Status in chromium-browser package in Ubuntu:
  Fix Released
Status in firefox package in Ubuntu:
  In Progress
Status in snapd package in Ubuntu:
  Fix Released
Status in snapd source package in Jammy:
  New
Status in snapd source package in Noble:
  New
Status in snapd source package in Plucky:
  New
Status in snapd source package in Questing:
  Fix Released

Bug description:
  [SRU] 2.71:
  https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/2118396

  [ Impact ]

  Programs that use Kerberos do not have access to Kerberos' tickets (by
  default, /tmp/krb5cc*) if snapped, resulting in denied access to
  documents that the user would otherwise be able to access if the
  program weren't snapped.

  [ Test Plan ]

  Requires a server that uses Kerberos authentication and a Ubuntu
  client, that for the following tests is presumed to have logged into
  the server's realm.

  1. Reproduce on snapd deb < 2.71

  Install the Firefox snap.

  Expect:
   - websites that used to work with SPNEGO/GSSAPI/kerberos do not work (access 
denied).
   - 'snap connect firefox:kerberos-tickets' fails because Snapd < 2.71 does 
not yet have the corresponding slot.

  2. Prove fix on snapd 2.71

  First connect the new plug:

    snap connect firefox:kerberos-tickets

  Then access a document from said server, it should work.

  [ Regression potential ]

  Unauthorized snaps (i.e., without kerberos-tickets connection) have
  access to the tickets.

  Snaps fail to launch due to some bug in the implementation logic
  merged in https://github.com/canonical/snapd/pull/15519.

  ---original---

  Workaround
  ----------

  Add

    default_ccache_name = FILE:/run/user/%{euid}/krb5cc

  to the [libdefaults] section of /etc/krb5.conf so that the Kerberos
  credentials are stored in a file path a snapped application can read.

  Acknowledgement: For many that can't work for {different reasons}, as
  stated in multiple comments below. Nonetheless it is worth a mention.

  Original report
  ---------------

  I configure AuthServerWhitelist as documented:

  https://www.chromium.org/developers/design-documents/http-
  authentication

  and can see my whitelisted domains in chrome://policy/

  but websites that used to work with SPNEGO/GSSAPI/kerberos no longer
  work. I'm guessing the snap needs some sort of permission to use the
  kerberos ticket cache (or the plumbing to do so doesn't exist...).

  I can confirm that Chrome has the desired behavior.

To manage notifications about this bug go to:
https://bugs.launchpad.net/firefox/+bug/1849346/+subscriptions


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to