From 7d47085f56552ef5e16dece0c6027890afd9b529 Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 9 Jul 2026 14:27:03 -0400 Subject: [PATCH 1/6] attempt to add okta authentication --- Gemfile | 5 ++- Gemfile.lock | 7 ++-- config/credentials.yml.enc | 2 +- config/initializers/devise.rb | 70 +++++++++++++++++++++++------------ 4 files changed, 54 insertions(+), 30 deletions(-) diff --git a/Gemfile b/Gemfile index a8e2dbdb..b1cfb871 100644 --- a/Gemfile +++ b/Gemfile @@ -49,8 +49,9 @@ gem "bootsnap", require: false gem "devise", "~> 5.0" gem "skylight" -gem "omniauth-saml", "~> 2.2" -gem "omniauth-rails_csrf_protection", "~> 1.0" +gem 'omniauth' +gem 'omniauth-saml' +gem 'omniauth-rails_csrf_protection' gem 'repost' gem 'ldap_lookup', '~> 2.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 8b2069a3..22aa4e88 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -241,7 +241,7 @@ GEM omniauth-rails_csrf_protection (1.0.2) actionpack (>= 4.2) omniauth (~> 2.0) - omniauth-saml (2.2.3) + omniauth-saml (2.2.5) omniauth (~> 2.1) ruby-saml (~> 1.18) orm_adapter (0.5.0) @@ -431,8 +431,9 @@ DEPENDENCIES kaminari ldap_lookup (~> 2.1.0) letter_opener_web - omniauth-rails_csrf_protection (~> 1.0) - omniauth-saml (~> 2.2) + omniauth + omniauth-rails_csrf_protection + omniauth-saml ostruct (~> 0.6.3) pg (~> 1.1) pry diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc index f1c2d1de..5dec7d3b 100644 --- a/config/credentials.yml.enc +++ b/config/credentials.yml.enc @@ -1 +1 @@ -FxQsw5puaOYRanW9OZyBgK7b80BtP6cD9pSUYIWIJDfe5roxsyLfMJoBZalYjzEwLqJW0AxhTJ/22P2AIKGNFbFa4HWGQZ4D/Q5JUNiwh+1ZjmtxoEq0ypY3c5p0Sx2P211CEUlpv8t6jnTaKK2BORsTDOPX+vxW92CdnKyf4Z30adZOh8LafBU5wdYLAGKzONJ3axBeb4ORtnOkPf+FwNLDXR0SyfxZpW7BEaT07WAaJL1XkjqZxmTbg+ertkxF13PNX3mYZ4q3iCzaoouTW2/fJnYMvkNd8oEg11w8RKdK8M4CMZ408k0qD19RseIW389je9FYFYW2+0jQygDw+wz6cwKCqADOoA7lLMn2336nhQZ4Xfrc3DZHtu8kt6z4hOqpEG8+v5/4MMXqLKxOLR92sHgGXK3e047i5twdAv6pjwz03uU6gQgCHy+5SUzGPrUIKzzYBBagJQ4kRCOCUvD6rCnge7BxTENZ2I9J7aI1K4nmNlbku2rPa9LOBBflg1ZntxWEI7AQk8JZtJ5byr7JSjEJKcaFZBC2UTUgvmPWhbepu7ku4qiDDYIW8Cppiiu6XVnYZttGbgc8V5t1zj2LsPPH68/1cC6kkWyHoM6l8HyIjTcun/VWLmqjP1WopvSigFUnnbcwKdlJ/1XXaG4eCg9alQAJl4Jfjdrtnt4vxTeuNvgL8t2LVWXee4nCMHPs6WdQwBKQO2Jmm9IDG7iP/sTsVMl5y7DCMxCmjaIgRfq49j+mv8lzNdvPuxopf6cHWRenopOENcXvfLYYQxbjOrxzkkCwYRWoEc/rEuqy3jrJzrJlSET6C039gS1EnPRPoDzPtqD+NyYVH477G8a9/2nvOqY8zx5C+xeYNHVJPMH7T6GcQbgvPlWnThqPMSOKgPMKACGcBryUVUhG30RwfUED9BJ9ssLVmCYZmWbJwEQFX3ZIAWmEkyuDVDRhoF1MfVM6VRhCcPq1Yfk+3jISBErMp/0nzt2X7WcNNd8PJtMfvlTPIFdo4/zw9JpvqxZfFEcM27k1hM+E/WN06rOtRNy2U+EhVjyeeVln6TbqEfOXS1eRNjjo3UrSzjTnZI4dpbu73aq4B75I39s5RbNyxIaRsvwIeAsC0wVpVgONioLu+gaO6x9waRI7QgU1otHazU0emjwwSFXUoIxw8rKK/mDimnYGI1FatOR/eZCyi2s0eLobzuynjbyfebn2lvHyCjnXoY8yZLIG8GXhvL71R5vJYZn7mErU45882sanaHafITiUlPrxX/rcH8hWt1v5WM5+p7IiRXRWgJVh0p4rS/HR4VqNLnsaHZeIq/6YvP8qW6aSRUK09ZnHVwso97GIaPYH3uTsyUuNTWibCgszKKIFA1b3iBxsYFFST/+NPWmACwZXHwqt7bqea7jPvvGJ/x1WMDbyUBW5snhWSBu41eXZ/xjsDhstT8feZ8UdRe0yt8EPzsHXmGTldfwryI6aBaUwgSK8E5VHYENx5DPVLBWoTAzlZAcQm0aap+rTcYz4eKfKRvOFqOJgTt57NvZgUWkeSVZUIhdVJZJjRhFaJFUolhC9qQvR4Hg8oeJo5SjX9g1qqLPH1kRGYWvV+lnL2AhAHh+fVuFxQH+S4gwpX/0rIANy936riTP/nAnvqgyfVOKTVn/cG+z0o3jRNNzeEzMZNOaHbelf9TQLlX8nWUdhoCrOaSQ7uu2qcG6nbMOAv3m9Csmoj2ugs7XvWSwZjxqzz4mITPMlIKcjg0VZh+OFIAskg02fSWhZEe5N+rmLbzWWTgZ06FM8SnT+c+pTeH6eCxozGfQFBfkmOlzEEG3K3xJiEqEJISrJh2+d5fKvyiy6XCo4Yq0XCpVlWwFXc4lDoqgenqoM1OewArmK5yEPtsQ2OkaeNPQHIpnWaR3Ms4CfUFrDaE4HMRl8CsizWvXLyqxuFlnqcETge1lJaYGImVqY4Z5uBoug0kqwXqfjnGuj4IRGRi4kP7FMklgCleftsmp1hRAv9TTNwp9qRP8MRgEtF/ELIrdZVWxnzfIlJuiUNqhYl7/MyYpsd2uNGYaN3dOPxrElmto7snDT31I8kSd6keS5bxQCgnlHUSxQOMGAGPNeywEwLYvT+ojTVeJ4vY4DGyEGtRqqNH+UN86fLm58depkdWcQCmcKeKNMN89QisObXBA/Vk2bXBMWOtj/v4qbKy/v1ge8lVEmco03GfHGGDzUen6CD/414jFTTmxRA+YcZsXqrZT8sQla2k5K9okzPIdl4JFiRGDRthNF/zqWcVzsSolFHqAJYAQguRy6UTJs9rlDQIygPK334ZrQUykCjklWnIQE3r52okR8rSxgq1ZSG10KTkShg4SAa4cI2cOos55TlQsR9VTVqUbgzTQlORPhazWnXUehwvZXTPqAgAF7pGRBf/Y9WHKueCm8GRZT6LlGk8LeK1zD9Tvq6eMv9yoMAi9/o/fVESUGqYsVLzZnZ5V+nF8AUAYn/X24UXxaM42q3VB1mB0eStd5/6a/t4tswqgaQE49SHx+jJJA9OCnqMEtjqw6mLN+1J1FIuLFWYcPH1/Jd0c6jEZFCVV6eEhfLDC08w1jyCkhHjwrOW9qPbmBF4OJYZ06qlI1SZKupDjpbiBeRD0wQoq5LQPsZ/kiMCZ+ygjMLTrjBctB50v6kdhLP/7LmjZp3edSJ+snB9048RwSc2pOa89e2MpQeeJefRIERUkh3TIB0qY5/WvvsVo1YBs55aOaJLzRO4OVj5KI7zS1uvruvuEEt5oYTyYtNCrKLBv4tv5HsxM58CeHP5RVrKK363EsKIPl2QLn8q6XvNWD2IZKzAFpRlUNJdqaKptxeYOIoRL5wmStJoEfl0Bp2laUVJMb2iSLr221Wgnkyf6t3Z7wpYo62/UBH+eRX7wcPfkFikLug0t/+NWPmLo1czkiCHOFn7yIhb6aMUZPDF0S/D7xoURZuuM92wVEuHmpB0feXR1CLugMzYHQnJrKvSNEaZcpvhsHYXe6Z3ipqaaVrUeQ+YQz6XyXAhL80effYpkVUo9qyYWF+92lVWKQIeHlEV7Gzm+8Hui1SxzxtAujylE8PZ1ckGIyXjsot/JM1LqNRLMw/6dQvUY5E0q3rWQADbBMD/Nh65wzrTvs+/9Vd2JxrkiSlxXWB/uwpEuzG5xh6No9ZuEu6BZsv17EbvedDfkfwwTKvqfhgdMlLaKbKWJreiQ+K3MNOit/2I9xrJaWHTAtmor4Jzre/pu6Ifye3yIJGc8em7L/gaOK+x/9BiygW57S4GA4jZ8zTjEQMg9uRnEy9pbaV6gdzQyphzf3oXoLSEZFzF1dAlwKS7j0eu5x3SuoN4SQA2XHWDOGRV0kOyarzi7PG9IPov8yMaPuc2OsgFhzEKD5X2xOupPSAFn8xjgTj12LiDcaHQNfctImh7LLTrq7lpK8GG2ohnhwbvxDaowkqxanaLXuJdMAezVGaXXKac+fjn6OoF6k5bey3sAqEMgqUGFDRbL3mroRYPFcyHwsCMB/jWKaiYMAz1vmKQAQRmHlvkNsjOMLhaex5oiOtA2TPj2ndmNf6QbioLLvFuXV2LN7415sXo4bHd+3RphLPGElv5UBGvxfuxK1sDuWekXSHmTeGFYuD7Cqr3ZVogjbsuKdB9awpYDqWNhlhKq5g+2GLot8vuc1oSeh6DgDBDExep+AOW5HtDy6b4cUZFNdYfAc85Cs4slMLtFze0QikoA0t5kbT/mCIwj0nH4Wdg2RmOeUudk4QieqAPfd6MCYr/N4aPYgyhJ1cBNvN2dwubuLMTRkwR+kJkofPz8DYRjiq6jD+gpfOF4TTW/GaeF18Nap418pnIGZl0eTHe2uAb5s/eWrSnuA1x/B9F9L0kk05tv+nGJrP6mltl/aKQYjjE1rCAEBZ83bBsSv+sYsMrXK0RO41ufIS1eZdDKU33pSzg7Q26xXwxuy3xdPPm43SIMtWSFwO8jaJyqHq3RrjE2QltVNF4s+FhKLQnUIBAnoexMDuESf211e70vZtsK/9irsmkda6E6MiSuVMsNlxPkWlL5XgM6/bXrC38Bi/o2JOUD6vqJhZpr/i+hGTa3aqKbkYYQJYEffjue6hfNDvPhS7KkUbHUbcF23m7SvUlLCIlTbECdmrGacAW9E3KOAYmLmFQCHuytdddPCCUZQ/3+eQaR6rZ3sRNMqrOg9ox7dP3pmZAqb6YD9XDCADm9Rr5/+1LeOo/jgJ7vv/cTsKW+bnAMKYAPOMNROupaz5hCKcY+QO98pZpSbqBKT3+zhi5M+g30RiUjtg4HD8T7mgthvJ/tWulJHLKix75Z42oQJYYIbTZq4BFs6/tn7pkDpOBXqiJkmxxZgQIDUFCQtA1uIFwXeeshFuK+zEi4gbRrYSwa0CpAUtSg/5qDME/Mm46rlAkJd+e6XSoi9Ki1fVHhR7wmbxBt7X2jeUuQ7WDqm6DoFfnM0SZOLgwcqdP7x21W3Q7wsofa4T6l3R9yrA4jt5/b0QplzrO8HVAolZzo5VrOH0xp89J6QkFSRvkQ0DUEPpPTAPOCYuggAf8WSj++QOEgbNX9QsfvTAoRvtIsvkNS7Pj5N18xF1wwz5vsqvspk1ES0pV62czZsvT5vGRvqUh1MouNrQ0LeV+a/AZQgjQFYcrS8aasBKBUhrbA1QhWN7riafIVnMANRRhxrorlpSn4WsnoavHzteWw1iGDhX2BOpE18VbuQpHOwdhKo1sUB1icZ0TwUiL4U1bGmht5VfZHFTr91U4S13Y9ABajoqyy6dq7OZoV5iIuYtSimnsy+v9rirK/tAJkV8H7zV25PZElbEng5xGURdeiiPCIh7BKHhUkJIdFw6qDwfptsFtSi3HVF9scUnmUGbA6Ju8UjQkCzYhD1zm+SusI0bPf/6CZj72rj41uKLmr/OuTA+N/VTLZRlkSOooQNqiPJe3S6Mv/89TWy/eQnlRNWdt6qUxe3Mr/3M3NbEDmbaQID7uyYxCLSCjHOMzrr3H2ZufM4ia8CEyUe/2i4ikpc1G/rPv3qF4AlyMovxYPfLXTHUYejRPm//TUKQlMzDhC/jbifOIRKJiTyXLA/AOom7elexnWavmdBI5UDfwwhVaUK3uMiED0eooyHmV2xSvDiOeYKAe5w3iOOMdFimCmg9gA6xwJVuPvfn6vnV8xCPosXwNvDSOO4UuCb45OGOWfK9S2WwKPVTRVn7b0P2hHDUIL7plq0Co0+kavAosICRlg2dYMDXVD2Eld9fnyt/SwAmvbtjYNEfokvQwXEzBqjVbInkP2P4aQyEmrktRG4AuirWQi0j+fa2TZQ8QNuwC2NPi/eiymqozx/Y+tW7+z2LZ40k5Txef5bppaJXpMrmkCyHbJharSrFW6maVa4jBL0nj6kDMMUnw/pL24KZJLJcOX652Xx2peCluVqO8bsq8EX6XXEzU/6fsVWUQze4QVb6/m21MAg2l9AIqTK+gxypytHuEcDvxSTxoKGDsdh3hHyUqPKkRioFj+JF1AqRf+qRNYdeljRsjn/HcRPaWRTpjQquW/0y7ZvxTHBo0glaiObqMCDTWvCJKbMyucF6oo1f6hWVREYmkOpqaot92hTGGZkWbcoS9yDE96XoJfSi3gQfmi6DKtT8r/4jQP5Tw/npMvu40F+uiyfhPK8IqDw+pitdZFF+6RVssh8WSXJWu0G8WIF9n+TxKvNvU+YUn3KPtfvJUA79kioxnBe6p2JPRAhTHN2LXaPVJVuS+uG0Rzy2GW5Z43+WO11bvNoq2X9sj6ZvAEzAp9Q0IDfV19sHmpimqnJfbW1vISvfn+xx3ZuYEd+6vmWo6QEKbzuqPERVr97Skecd08idxfAdaHSgNUoQYcgVJO0SLdTx13wIHsojKFhN8L5DIopkXgcSG2Ejvb1A6Y70T3Z0ZBot8+SV1ulvuckHlssDwBoIMHhWxLxfbbQwjPUH8jNpKMWe5lBdLyndw8xftO83x8dM4L25c54scxODrV3zSkSEQLUlHwSRFgGOx771xeRzJX62H7sN9pM54jbPe3ALMPKBsSf7P/PuYzRxcTW3UzAxaskrwUcsclfiOrhwNWfKsWbrEwP/ZnHcu+tQdp6OcQ6b+l0RmeAYxgKNpban4+bhOFpFrL3zl1qkEXlbZ3FnDcvGbzsSRWZWmLmYek/BkQ9aipU1dlD9Ar4ywAejObPboPxvgRLa8X0Wo9OU1Jc5BPA42QAUb+drznlL0+rG2NzCfruMhAYoUcw4cSMgsaHXc55yhQ6mrF2wuFE/8PBhZUXA+u6oQi0KqjOkXYJcvFOZHSMwMLyKT1KAuGDOk4YKeehAgi1WZ6Ex7JURwKP8umeI8HfNS9z6El6uZq+Wj/4DRiiMrF1N08+43JERzOAFW0HCLjlAZCOMRjf0LmhQLab4Co37QqLqbolHdWDlryWDGxyNOXEime2gGgioA1CkUlpd/PPhUi8tXBRJfwJejbalZq1u4g44gJfPB3y9wzZXv9jegUHX5TmWIORYQj19/m6rOd9Tbb8K/EkRq/l9nnsp97ys2n8Gfg+uRM7lZ2+zL1EjCK3Q7mruR9XfeIMtQ7TMYytXvsT4egGPE3JbE3N/JjN2gAocVDP2fICJz4CdMXv6QhmbvN75SDGkUPUycFAI7E30TOq4QZpv0S6BAptazU+oTGbJm1dq1iCnRc+VbATNgUQoPAcB1OYAgCxIxBchhD9nYwV5RQZMD6OAqRQXxNYY5dqs4eFTvW2JYILjj5nzVGmvK5Pxz1Gh0jBnl4amaLcKfAVSQBzNKmgi67HsIbLoydZhnlvChSZyONELxAfZyen7eB2Je4wk3QMRyPaYlySjMQsCEBazuAWGHDBJMfXUA6EN285GJPUYt1UUqISfh0jcWvplwGITolTzczp9UcJ4cS5CI9LywAP1ibs2Tp1cX9b2vgK42hgDSMuEWifVhpv59pNerPsdukxmtDL8jwMkJWAwTw4TONnuaw3GRHtrm9B56PZpDdvEMS5jPkCOPHKnWUGw9aubbX8w+YHxWw+VTnHHvw3nCBEJsVrA4Sw73qiTYDIGBSSa2h0Ue+oXnUi/MuWz7m06HK7iTKqV19N10EaG0nfRqllTTuYA9Fw4TxUOBGyLz1/WqS2Zmh2HIdJlxqHq+ZVflQvBY19GgGQRTMCaNyGLSrX7XnzFsveE0Gfvyhv337VMEYGBWKTNnPAsylhyAWA5ayRx8WVsvFmhHIm5LkdjUbD085drLlUEo7OI9TaLNWxUV4ZPyJVi1MB+fvvjADAjPC4lWzKwN05XYm2fh0hKqW94yh1ysx5nUvJn9+yLXovwo2jlyZ4sW1l1KBZcicnk8gtyqqvPVOo6ctI+4bbZhzwAmUTOHDBHeB3nd8jcEsLAdpZV02bjOz6P8TJa/ER9PCbFBvIH6TE0QFwAn70mggF0L1pE6r0DvaND23pGTMpz7Cn8rwua9Cu+f9CZdft7abYAggeJnvXDvtC8fS50kWrtYS+ADw5kdWtWAMtPCzjW0Xdmy73Tb/YKfWRfE6a3EcqPGDcTimdbkHEZcyd3s72dQjXQhmj+EzJOlT83BzeNKajezu0m1oxkHCbE7AQUp+IpRwOmg9NjCuBLz5i6tudjC82S4vKp0zl0lOCnQ/wvfFxb6L0KIGIk+ySZrw+1rAmW+SZ5usYWV+bRB9F4YZWO93th55VT+Fpv4v0Tu1OJQFw0ltk0u/P1xV+FsXlOCnjwXgLIc5Evb3liyyeYYVpctAuMbk9KNf33JXiR+ZfVu/IrkiYvROgwnU7V19vMeBzpHzkszJFKCRSA24B/U56acKQcNjsRURv32TPeC/xKGgAHsVXbCTL4w0TngOYA+q+Zaz3c1VCZvGB5hfUIBMsjWBeZk8nUVca7zv8JWJLRuINArezc5k9Nmxr7p1fH/MdoqbodkAsA8u2IXyvzYR7My2rVCF7iImG3kwKk+C07fyQGQ+/9twuredb6HgnZBhnJUbxVpYrhhQ5ro1oaTShX7Koghhy2IVj3xkggsJXa/BrZzXt5jpE7PnvM7dTh81cfm1Pzn2BeE0yYKbl92Fu+8CLEml4hHrsdjRLLoh8/deRZhth+O3BsTWeVSAUgVURIeme9jr9nZlMkFYqNm+LBwByRb6zd09jEbPdvGo0pj0T/1PrCV9CAN82ef13i67OrYylUGTnLL61eOkEnp6Dj3Pv4zgt/oRTZsfBbSYGs5sTLdwpoXgrRhP/7E6hkMIMicaLDh3hxBHggNEFcCpjAspGHQZc0TsfzeSXrtAyCXMlNW34xYdncUG4UU77ksWE6V2INqgMCChVyj5/pGs4eOVTE0c/7ZeorL7h5QSvHJra8CWrLTiHmn7ul/Fq+mroH44DCPOX5hBPdfUNz2E4j1wL7tfqxsh6E4oAyfHvkpCznaF65yOBTztQtGTPU3pVf1X2/DxKU0KSqBN1wAb1fJ4klnxSSbmvzzKczh0AV4IjHgZjYjFcBb1vmaZIZfVqr+V8RvgW03vu3HTFk9dSZ/cZxdgvp/0CD8ZodIz6VFUZ72btibpNEL++lqSw8sG6hbl+kN4tHiEZ7VHfJDMZGrmNkr8jN2duTfa7DPP3nwz0eFCqqk9CmTAIAE9W2/yOD9k0hCDySpdQRgXr9RVvnQ/5OL/uK2s5NITOdIVYaHnKJArZxowKvEiKQNHkpdCwsQ39Xxadoa71rFJ0bgp/W38puTD91E0X1lXPCwjGwiSinrTO9UPmjsQadHu7yAJz117rtg40sGhK61WPp5EVyfpb2TmPhj+uFcJaGkRs9VAJtVeNKsnvutBnG7y1lwR1Mo5YPlEo6sAu7iq9RZZUW+jSdoilhz74E3BaGS1lqBBpMnPcc/FaFO3MVPaodudVvy2Kg8WWpOe0YVZ+ZUpZzeeXDBxlN6eaHkE4NO+zsnK1YPBzW5h2VZ4YlCWCdzynhTHdWbk3es/jnWomEy0e0DE4eMq0bl0/OON4TemSP25vRy3wZTyyvE6JUy9DdzgIb5ugzfe2bJm+fPXBmF8=--VVtOd/wl0hZ79N8D--9VE/eY4yquOMJWBKFo27KQ== \ No newline at end of file +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--H8AUjZ6+A65lQEKt--CpLtQDJFo29ORpUwvH8QaQ== \ No newline at end of file diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 3c16e299..baa2ab1b 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -10,9 +10,6 @@ # Many of these configuration options can be set straight in your model. Devise.setup do |config| - idp_login_url = Rails.application.credentials.staging_idp_sso_target_url - idp_logout_url = Rails.application.credentials.staging_idp_slo_target_url - idp_fingerprint = Rails.application.credentials.staging_idp_cert_fingerprint consumer_service_url = Rails.application.credentials.dev_assertion_consumer_service_url entity_id = Rails.application.credentials.dev_entity_id @@ -22,31 +19,56 @@ end if Rails.env.production? - idp_login_url = Rails.application.credentials.production_idp_sso_target_url - idp_logout_url = Rails.application.credentials.production_idp_slo_target_url - idp_fingerprint = Rails.application.credentials.production_idp_cert_fingerprint consumer_service_url = Rails.application.credentials.production_assertion_consumer_service_url entity_id = Rails.application.credentials.production_entity_id end - config.omniauth :saml, - :assertion_consumer_service_url => consumer_service_url, - :issuer => entity_id, - :idp_sso_service_url => idp_login_url, - :idp_slo_service_url => idp_logout_url, - :name_identifier_format => "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", - :attribute_statements => {email: ['urn:oid:0.9.2342.19200300.100.1.3'], - name: ['urn:oid:2.16.840.1.113730.3.1.241'], - uid: ['urn:oid:0.9.2342.19200300.100.1.1'], - person_affiliation: ['urn:oid:1.3.6.1.4.1.5923.1.1.1.1'], - principal_name: ['urn:oid:1.3.6.1.4.1.5923.1.1.1.6']}, - :request_attributes => {}, - :idp_cert_fingerprint => idp_fingerprint, - :idp_cert_fingerprint_algorithm => 'http://www.w3.org/2000/09/xmldsig#sha256', - :allowed_clock_drift => 10, - :private_key => Rails.application.credentials.service_provider_private_key, - :certificate => Rails.application.credentials.service_provider_certificate, - :security => {want_assertions_signed: true, want_assertions_encrypted: true} + # config.omniauth :saml, + # :assertion_consumer_service_url => consumer_service_url, + # :issuer => entity_id, + # :idp_sso_service_url => idp_login_url, + # :idp_slo_service_url => idp_logout_url, + # :name_identifier_format => "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", + # :attribute_statements => {email: ['urn:oid:0.9.2342.19200300.100.1.3'], + # name: ['urn:oid:2.16.840.1.113730.3.1.241'], + # uid: ['urn:oid:0.9.2342.19200300.100.1.1'], + # person_affiliation: ['urn:oid:1.3.6.1.4.1.5923.1.1.1.1'], + # principal_name: ['urn:oid:1.3.6.1.4.1.5923.1.1.1.6']}, + # :request_attributes => {}, + # :idp_cert_fingerprint => idp_fingerprint, + # :idp_cert_fingerprint_algorithm => 'http://www.w3.org/2000/09/xmldsig#sha256', + # :allowed_clock_drift => 10, + # :private_key => Rails.application.credentials.service_provider_private_key, + # :certificate => Rails.application.credentials.service_provider_certificate, + # :security => {want_assertions_signed: true, want_assertions_encrypted: true} + + saml_options = { + assertion_consumer_service_url: consumer_service_url, + issuer: entity_id, + idp_entity_id: Rails.application.credentials.dig(:okta, :idp_entity_id), + idp_sso_service_url: Rails.application.credentials.dig(:okta, :idp_sso_service_url) || + "https://okta.umich.edu/app/umich_lsatslsaspacereadystaging_1/exk24uqws0k5Brhj71d8/sso/saml", + idp_cert: Rails.application.credentials.dig(:okta, :idp_cert), + idp_cert_fingerprint: Rails.application.credentials.dig(:okta, :idp_cert_fingerprint), + name_identifier_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", + attribute_statements: { + email: ['email', 'mail', 'User.Email'], + first_name: ['first_name', 'User.FirstName'], + last_name: ['last_name', 'User.LastName'] + } + }.compact + + config.omniauth :saml, saml_options + + # Rails.application.config.middleware.use OmniAuth::Builder do + # provider :saml, + # assertion_consumer_service_url: "https://spaceready-staging.lsa.umich.edu/", + # issuer: "https://spaceready-staging.lsa.umich.edu/", + # idp_sso_service_url: Rails.application.credentials.dig(:okta, :idp_sso_service_url), + # idp_cert: Rails.application.credentials.dig(:okta, :idp_cert), + # idp_cert_fingerprint_validator: Rails.application.credentials.dig(:okta, :idp_cert_fingerprint), + # name_identifier_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" + # end # The secret key used by Devise. Devise uses this key to generate # random tokens. Changing this key will render invalid all existing From 05c3b5e5a9301227555a4717e2c202aa72479a57 Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 9 Jul 2026 14:53:17 -0400 Subject: [PATCH 2/6] okta authentication - more changes --- app/controllers/users/omniauth_callbacks_controller.rb | 4 ++-- config/credentials.yml.enc | 2 +- config/initializers/devise.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index da2be7e8..c85ac57d 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -1,6 +1,6 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController - skip_before_action :verify_authenticity_token, only: :saml - before_action :set_user + skip_before_action :verify_authenticity_token, only: [:saml, :failure] + before_action :set_user, only: :saml attr_reader :user, :service def saml diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc index 5dec7d3b..42316d67 100644 --- a/config/credentials.yml.enc +++ b/config/credentials.yml.enc @@ -1 +1 @@ -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--H8AUjZ6+A65lQEKt--CpLtQDJFo29ORpUwvH8QaQ== \ No newline at end of file +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--RK0+SZqHf0SDWgDJ--gjbuIhEshbLnFyNTqo1r8Q== \ No newline at end of file diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index baa2ab1b..699bd795 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -45,7 +45,7 @@ saml_options = { assertion_consumer_service_url: consumer_service_url, issuer: entity_id, - idp_entity_id: Rails.application.credentials.dig(:okta, :idp_entity_id), + idp_entity_id: "http://www.okta.com/exk24uqws0k5Brhj71d8", idp_sso_service_url: Rails.application.credentials.dig(:okta, :idp_sso_service_url) || "https://okta.umich.edu/app/umich_lsatslsaspacereadystaging_1/exk24uqws0k5Brhj71d8/sso/saml", idp_cert: Rails.application.credentials.dig(:okta, :idp_cert), From a09de879e768c2e69e128df4471989db1b892807 Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 9 Jul 2026 18:46:55 -0400 Subject: [PATCH 3/6] remove fingerprinnt --- config/initializers/devise.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 699bd795..c9450906 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -49,7 +49,6 @@ idp_sso_service_url: Rails.application.credentials.dig(:okta, :idp_sso_service_url) || "https://okta.umich.edu/app/umich_lsatslsaspacereadystaging_1/exk24uqws0k5Brhj71d8/sso/saml", idp_cert: Rails.application.credentials.dig(:okta, :idp_cert), - idp_cert_fingerprint: Rails.application.credentials.dig(:okta, :idp_cert_fingerprint), name_identifier_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", attribute_statements: { email: ['email', 'mail', 'User.Email'], From eef33b1bd33483c1662e3cae5afc2549ce7dd570 Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 9 Jul 2026 23:54:10 -0400 Subject: [PATCH 4/6] fix okta authentication on development --- config/credentials.yml.enc | 2 +- config/initializers/devise.rb | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc index 42316d67..830ee3c6 100644 --- a/config/credentials.yml.enc +++ b/config/credentials.yml.enc @@ -1 +1 @@ -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--RK0+SZqHf0SDWgDJ--gjbuIhEshbLnFyNTqo1r8Q== \ No newline at end of file +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--mg3rhLntD8FVhVIo--aYOlnBwAty5rDdARbcuGig== \ No newline at end of file diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index c9450906..28872372 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -12,15 +12,24 @@ consumer_service_url = Rails.application.credentials.dev_assertion_consumer_service_url entity_id = Rails.application.credentials.dev_entity_id + idp_sso_service_url = Rails.application.credentials.dev_idp_sso_service_url + idp_entity_id = Rails.application.credentials.dev_idp_entity_id + idp_cert = Rails.application.credentials.dig(:okta, :dev_idp_cert) if Rails.env.staging? consumer_service_url = Rails.application.credentials.staging_assertion_consumer_service_url entity_id = Rails.application.credentials.staging_entity_id + idp_sso_service_url = Rails.application.credentials.staging_idp_sso_service_url + idp_entity_id = Rails.application.credentials.staging_idp_entity_id + idp_cert = Rails.application.credentials.dig(:okta, :staging_idp_cert) end if Rails.env.production? consumer_service_url = Rails.application.credentials.production_assertion_consumer_service_url entity_id = Rails.application.credentials.production_entity_id + idp_sso_service_url = Rails.application.credentials.production_idp_sso_service_url + idp_entity_id = Rails.application.credentials.production_idp_entity_id + idp_cert = Rails.application.credentials.dig(:okta, :production_idp_cert) end # config.omniauth :saml, @@ -45,10 +54,9 @@ saml_options = { assertion_consumer_service_url: consumer_service_url, issuer: entity_id, - idp_entity_id: "http://www.okta.com/exk24uqws0k5Brhj71d8", - idp_sso_service_url: Rails.application.credentials.dig(:okta, :idp_sso_service_url) || - "https://okta.umich.edu/app/umich_lsatslsaspacereadystaging_1/exk24uqws0k5Brhj71d8/sso/saml", - idp_cert: Rails.application.credentials.dig(:okta, :idp_cert), + idp_entity_id: idp_entity_id, + idp_sso_service_url: idp_sso_service_url, + idp_cert: idp_cert, name_identifier_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", attribute_statements: { email: ['email', 'mail', 'User.Email'], From 1b8d2e7b372cff370f50c04718a89b7eaf457351 Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Tue, 14 Jul 2026 19:21:32 -0400 Subject: [PATCH 5/6] add certificate to development and staging --- config/credentials.yml.enc | 2 +- config/initializers/devise.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc index 830ee3c6..0f8e87c3 100644 --- a/config/credentials.yml.enc +++ b/config/credentials.yml.enc @@ -1 +1 @@ -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--mg3rhLntD8FVhVIo--aYOlnBwAty5rDdARbcuGig== \ No newline at end of file +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--UCCuVWA93aEKDkgv--K4bYQcRnnuEBq8cDBEbwjQ== \ No newline at end of file diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 28872372..452c2058 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -13,6 +13,7 @@ consumer_service_url = Rails.application.credentials.dev_assertion_consumer_service_url entity_id = Rails.application.credentials.dev_entity_id idp_sso_service_url = Rails.application.credentials.dev_idp_sso_service_url + idp_logout_url = Rails.application.credentials.dev_idp_slo_target_url idp_entity_id = Rails.application.credentials.dev_idp_entity_id idp_cert = Rails.application.credentials.dig(:okta, :dev_idp_cert) @@ -20,6 +21,7 @@ consumer_service_url = Rails.application.credentials.staging_assertion_consumer_service_url entity_id = Rails.application.credentials.staging_entity_id idp_sso_service_url = Rails.application.credentials.staging_idp_sso_service_url + idp_logout_url = Rails.application.credentials.staging_idp_slo_target_url idp_entity_id = Rails.application.credentials.staging_idp_entity_id idp_cert = Rails.application.credentials.dig(:okta, :staging_idp_cert) end @@ -28,10 +30,14 @@ consumer_service_url = Rails.application.credentials.production_assertion_consumer_service_url entity_id = Rails.application.credentials.production_entity_id idp_sso_service_url = Rails.application.credentials.production_idp_sso_service_url + idp_logout_url = Rails.application.credentials.production_idp_slo_target_url idp_entity_id = Rails.application.credentials.production_idp_entity_id idp_cert = Rails.application.credentials.dig(:okta, :production_idp_cert) end + service_provider_private_key = Rails.application.credentials.service_provider_private_key + service_provider_certificate = Rails.application.credentials.service_provider_certificate + # config.omniauth :saml, # :assertion_consumer_service_url => consumer_service_url, # :issuer => entity_id, @@ -56,8 +62,12 @@ issuer: entity_id, idp_entity_id: idp_entity_id, idp_sso_service_url: idp_sso_service_url, + idp_slo_service_url: idp_logout_url, idp_cert: idp_cert, name_identifier_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", + private_key: service_provider_private_key, + certificate: service_provider_certificate, + security: {want_assertions_signed: true, want_assertions_encrypted: true}, attribute_statements: { email: ['email', 'mail', 'User.Email'], first_name: ['first_name', 'User.FirstName'], From 00ddb772dcf48ed2163a449968a555eed5a940db Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Tue, 28 Jul 2026 11:05:04 -0400 Subject: [PATCH 6/6] okta for production --- config/credentials.yml.enc | 2 +- config/initializers/devise.rb | 36 ----------------------------------- 2 files changed, 1 insertion(+), 37 deletions(-) diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc index 0f8e87c3..044a8d3d 100644 --- a/config/credentials.yml.enc +++ b/config/credentials.yml.enc @@ -1 +1 @@ -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--UCCuVWA93aEKDkgv--K4bYQcRnnuEBq8cDBEbwjQ== \ No newline at end of file +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--1q/VxHxNFhXoc6ww--9GukuKAAjsRsVuc4yILM9g== \ No newline at end of file diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 452c2058..93c4923f 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -38,25 +38,6 @@ service_provider_private_key = Rails.application.credentials.service_provider_private_key service_provider_certificate = Rails.application.credentials.service_provider_certificate - # config.omniauth :saml, - # :assertion_consumer_service_url => consumer_service_url, - # :issuer => entity_id, - # :idp_sso_service_url => idp_login_url, - # :idp_slo_service_url => idp_logout_url, - # :name_identifier_format => "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", - # :attribute_statements => {email: ['urn:oid:0.9.2342.19200300.100.1.3'], - # name: ['urn:oid:2.16.840.1.113730.3.1.241'], - # uid: ['urn:oid:0.9.2342.19200300.100.1.1'], - # person_affiliation: ['urn:oid:1.3.6.1.4.1.5923.1.1.1.1'], - # principal_name: ['urn:oid:1.3.6.1.4.1.5923.1.1.1.6']}, - # :request_attributes => {}, - # :idp_cert_fingerprint => idp_fingerprint, - # :idp_cert_fingerprint_algorithm => 'http://www.w3.org/2000/09/xmldsig#sha256', - # :allowed_clock_drift => 10, - # :private_key => Rails.application.credentials.service_provider_private_key, - # :certificate => Rails.application.credentials.service_provider_certificate, - # :security => {want_assertions_signed: true, want_assertions_encrypted: true} - saml_options = { assertion_consumer_service_url: consumer_service_url, issuer: entity_id, @@ -76,23 +57,6 @@ }.compact config.omniauth :saml, saml_options - - # Rails.application.config.middleware.use OmniAuth::Builder do - # provider :saml, - # assertion_consumer_service_url: "https://spaceready-staging.lsa.umich.edu/", - # issuer: "https://spaceready-staging.lsa.umich.edu/", - # idp_sso_service_url: Rails.application.credentials.dig(:okta, :idp_sso_service_url), - # idp_cert: Rails.application.credentials.dig(:okta, :idp_cert), - # idp_cert_fingerprint_validator: Rails.application.credentials.dig(:okta, :idp_cert_fingerprint), - # name_identifier_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" - # end - - # The secret key used by Devise. Devise uses this key to generate - # random tokens. Changing this key will render invalid all existing - # confirmation, reset password and unlock tokens in the database. - # Devise will use the `secret_key_base` as its `secret_key` - # by default. You can change it below and use your own secret key. - # config.secret_key = '4209afd3273dd9bfdfd2ae4cf0b9686a494d0178ff1c19d4897e83f2095d0bbbc119c9093c378d04cd4f75a7542f7c5c2eccf907ba46915cbe7ee6281772c8cc' # ==> Controller configuration # Configure the parent class to the devise controllers.