Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

smb-kerberos.yml 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. name: Samba Kerberos SSO
  2. on:
  3. push:
  4. branches:
  5. - master
  6. - stable*
  7. paths:
  8. - 'apps/files_external/**'
  9. pull_request:
  10. paths:
  11. - 'apps/files_external/**'
  12. jobs:
  13. smb-kerberos-tests:
  14. runs-on: ubuntu-latest
  15. name: kerberos
  16. steps:
  17. - name: Checkout server
  18. uses: actions/checkout@v3
  19. with:
  20. submodules: true
  21. - name: Pull images
  22. run: |
  23. docker pull icewind1991/samba-krb-test-dc
  24. docker pull icewind1991/samba-krb-test-apache
  25. docker pull icewind1991/samba-krb-test-client
  26. - name: Setup AD-DC
  27. run: |
  28. mkdir data
  29. sudo chown -R 33 data apps config
  30. apps/files_external/tests/setup-krb.sh
  31. - name: Set up Nextcloud
  32. run: |
  33. docker exec --user 33 apache ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
  34. docker exec --user 33 apache ./occ config:system:set trusted_domains 1 --value 'httpd.domain.test'
  35. # setup user_saml
  36. docker exec --user 33 apache ./occ app:enable user_saml --force
  37. docker exec --user 33 apache ./occ config:app:set user_saml type --value 'environment-variable'
  38. docker exec --user 33 apache ./occ config:app:set user_saml general-uid_mapping --value REMOTE_USER
  39. # setup external storage
  40. docker exec --user 33 apache ./occ app:enable files_external --force
  41. docker exec --user 33 apache ./occ files_external:create smb smb smb::kerberosapache
  42. docker exec --user 33 apache ./occ files_external:config 1 host krb.domain.test
  43. docker exec --user 33 apache ./occ files_external:config 1 share netlogon
  44. docker exec --user 33 apache ./occ files_external:list
  45. - name: Test SSO
  46. run: |
  47. mkdir cookies
  48. chmod 0777 cookies
  49. DC_IP=$(docker inspect dc --format '{{.NetworkSettings.IPAddress}}')
  50. echo "SAML login"
  51. docker run --rm --name client -v $PWD/cookies:/cookies -v /tmp/shared:/shared --dns $DC_IP --hostname client.domain.test icewind1991/samba-krb-test-client \
  52. curl -c /cookies/jar --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/index.php/apps/user_saml/saml/login
  53. echo "Check we are logged in"
  54. CONTENT=$(docker run --rm --name client -v $PWD/cookies:/cookies -v /tmp/shared:/shared --dns $DC_IP --hostname client.domain.test icewind1991/samba-krb-test-client \
  55. curl -b /cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/remote.php/webdav/smb/test.txt)
  56. echo $CONTENT
  57. CONTENT=$(echo $CONTENT | tr -d '[:space:]')
  58. [[ $CONTENT == "testfile" ]]