From 7324ed0c1e49f19c2dbc915a05f6bf4bcba13729 Mon Sep 17 00:00:00 2001 From: James Elliott Date: Fri, 1 Jul 2022 13:07:02 +1000 Subject: [PATCH] docs: add gitea oidc integration (#3645) --- .../openid-connect/bookstack/index.md | 2 +- .../cloudflare-zerotrust/index.md | 4 +- .../openid-connect/gitea/gitea.png | Bin 0 -> 48074 bytes .../integration/openid-connect/gitea/index.md | 77 ++++++++++++++++++ .../openid-connect/gitlab/index.md | 2 +- .../openid-connect/grafana/index.md | 2 +- .../openid-connect/harbor/index.md | 4 +- .../openid-connect/hashicorp-vault/index.md | 2 +- .../openid-connect/nextcloud/index.md | 2 +- .../openid-connect/portainer/index.md | 21 +++-- .../openid-connect/proxmox/index.md | 4 +- .../openid-connect/seafile/index.md | 2 +- .../openid-connect/synapse/index.md | 2 +- 13 files changed, 100 insertions(+), 24 deletions(-) create mode 100644 docs/content/en/integration/openid-connect/gitea/gitea.png create mode 100644 docs/content/en/integration/openid-connect/gitea/index.md diff --git a/docs/content/en/integration/openid-connect/bookstack/index.md b/docs/content/en/integration/openid-connect/bookstack/index.md index 86106bd4..1cf00847 100644 --- a/docs/content/en/integration/openid-connect/bookstack/index.md +++ b/docs/content/en/integration/openid-connect/bookstack/index.md @@ -1,6 +1,6 @@ --- title: "BookStack" -description: "Integrating BookStack with Authelia via OpenID Connect." +description: "Integrating BookStack with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false diff --git a/docs/content/en/integration/openid-connect/cloudflare-zerotrust/index.md b/docs/content/en/integration/openid-connect/cloudflare-zerotrust/index.md index db59ed94..fc5d04be 100644 --- a/docs/content/en/integration/openid-connect/cloudflare-zerotrust/index.md +++ b/docs/content/en/integration/openid-connect/cloudflare-zerotrust/index.md @@ -1,6 +1,6 @@ --- title: "Cloudflare Zero Trust" -description: "Integrating Cloudflare Zero Trust with Authelia via OpenID Connect." +description: "Integrating Cloudflare Zero Trust with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false @@ -42,7 +42,7 @@ To configure [Cloudflare Zero Trust] to utilize Authelia as an [OpenID Connect] 3. Visit `Authentication` 4. Under `Login nethods` select `Add new` 5. Select `OpenID Connect` -6. Enter the following values: +6. Set the following values: 1. Name: `Authelia` 2. App ID: `cloudflare` 3. Client Secret: `cloudflare_client_secret` diff --git a/docs/content/en/integration/openid-connect/gitea/gitea.png b/docs/content/en/integration/openid-connect/gitea/gitea.png new file mode 100644 index 0000000000000000000000000000000000000000..25d9153490128fa2e2588c86f7b17ed8aa05432a GIT binary patch literal 48074 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

K4|_Ib!<<2e|{{d?9!av+dwm#Pl3oUr;; znDuxqx#cr&_FG>E{wSY)oVyc6i=trDCW6!i*!Z9oARqZ5{^aF-1+Fv+{|>kF(Ib3X znm-|*|B49zmgXDW{>F6Zp^&m$`Q!SCcg=T~-_xAp(01dGS>ZyXeO z&m^G2FX2gtW5l!`KInd{9=S=>*GAQh%ZX3&c4 zNPNmx&$K6!WcbzJw3&Yf3h`b24bq*Xm1N}QX}8vfw=Jhin7m7ND6TI~<0K=920n^~ zm@GO^$-I#++nK4C1F5>X2CX;Pt)8{;@bJA6Jae?r5CRbW3-p)Hd|s<%l$5+PSb!Jz zzW5VUSkfYEIaR4DgZ3UF;HincR#hsFIa;(e4xj`JFb%^^*+P; z&on^}g9mF$+PS~jiAi9()M(cl*FJ?2>$z7i^^lBzXLOJwByEDr{@PG#pF$V=M@Yp3 zz=2jNlipl*_`ZZZp3fl1y}mN}8j7{u8idqr#b8egFR5LFv_F;oBXKzTVzwsItIwuX($r+C8U31q&aa{PN^Cm#nCpTV0WU zbH6SY7J)?(S{XY!nM+zY8IOK}TK+TjLbZhPc(pj1CbJ_ zSOc4`xxe=G{KQ17BGX}+Tzwy2#9-HaB?`Rm;-p@`o^OuV$0>sx`@0qa3=cmY zSknSlVgV1e(b2Ko5^aK=Q7t$!GzJuuo>p)sZ(k6<6Gvp*q+Hej z+v9t6(x?r#-dN1q&Vf{#4PX728&xI?#M!=nm?)>Ae%eMsL5kayl@BaL4pVxr8`k-0 z@q`U8I)LY^Hgyh&h>0fcqJdKmO~a=h6nST#oDV&@>eItpc?B zSua|29^7+>-{%NGow+;CrUgu(o{1Vd_bS%d0E!}fqdPn%>@kgOI-=-sCXZs7n#1gw zy(EEO+9%-Asj!-|J%2rF^1RIiIHcBg8}}xT7;^HppFFx0{RgrEI6-fkXi96yQz|M6 zv%zFKt%I`LHlGwB&zh?&25P9&%AN#(+DZ#OkBsMw%Y5cMAeA1~o8Li?k>gybp(3Zr zV~DkOXgZ*7lx#O&_z3hPKsFJxW$CX~ZX9%V+J#5S#ih=Kxs9NKsKvfDRmyU4h%jB@ zTsS`N*8@yYy~@rpO8){44%krtbI)daAA%f8DMSur5JAcY>sJF9o&oooaQc}Dq}rhx zMbb+Y?s22*9y8g?8)=YrkUEgyPP5Yd(83}T_fZL7IX_&0I>EhwjokkVCB9zHI7l0D z@!i?T*hp{KN)Ht+?+;pxp2v^Z?5eqO)E!ixD3Rg@eNtI-{-<_WOAt+AKnH<0dBj34 zY9QNZtO;+assW|O_9y*<&rt;ZBXj*tU46Spm-jQcIh;ScCjJAM1EjP6+|RHAtZ7Tp z;m+3%jXS061C$?NJt`Yp6uw^+z=%}CpEWkRkAREz%K)Kp0vNk@6Z->{I^d3NXL@oU zR`)+TglIWVaQGnl!9hC<-+x_?DYXAkQOpI+mHM!$@D9p_-W;x?prAjD?N=`d z&1@y}zmw{MpxSKscgL2muXZ~@>qN;*t5q<}R6x z${Zc|5bwbJdvF10m08CS{h!?iHb}vuyD=|h8g;);uK=B+8!;W)ec+yB6j;a|_dZle z-Ia6ux4$!xyl}ekddPBKz+0mLgX*P(G`t8D{*RG4JiR9yTnVvMKl=TWwg?q??$5+?J^Ke>^CzYOTF#yrcCq`3$_?BMP7}9j z#NFMI_dq4V_Bn&mcgIA9-akU=O9;i?M|%Iix{UN78|^ETckzlc!f0~C&;A)z>BZmz z(@mK)DX5f7WCWj%^pM2H7Vs`Y^~qpPAori8jy6XX3&WcGvvfP&#~lqqGj2nzhVcsVK_Gb1SVV*p+y9fXQ&GO{aFVK$^a zU1k(0aM`%qA_o>?s?HA{+F-XC)BWh@0CJ}2%p_QfJTmw_UIY<)Mv*4lC5ubRf01kr zqAS*~1@>ASt_Tdw?UlZGxmJA9{eWY27@F8|XeRxYV58^leXY;pPppiOIM4Tu7VhMe zvzq&_+1$#_w|VmCGw>mA;eU={6Ol34AJ{wmd0i#INaI2Z)P!`9ikxtKVU^gpxF)md zI4Zx{nfApRm33-w)^a5`WQ?nw*@>?EPB$3m+aacD&IAsgOtV zwrC8LsEudR)Idb9gFts10GVlO1HFWf^FBdAA##IZk55?VYF=w8%g9Uj?|VouGGW>o zfqeu%UjfI?OIH&3wvK(bC6!SMI)xdko`DsK0k?=A(fi?N0XwaMuU%zr)X(XD7y>f3 z%_>EFZ(xrVkrVYbPhubb{+XwWpM@iM+Zt10bS>!)R4gx3fp)i#Yf7JCtqLw=XSz~K z7=+#v3p#ys`b3fGsS!yg!mK3UpTxoHB=QKHxI``Ua9^dIs9T zS)(6ep`nko_@gHko`YgcRd~FD$9i0viOhcYY)aoXBBe(3>g>!dZsE`7Lj8yS%J?{-7mT(`j_E zso&lec&VQ&mz1cSZIBoxaw87xPU|hyE;Weo1DZjwCLV8+iRp-=*NHLjU)x$_lYvbv z5>}kRm7d7P1O%OL)0G>&-)KVmLdblq14nH---o2Jt~&O#34~XaS+3DTN?R~-88qTO zcbj#9JZyIJ8(-(UGSC6isY&MmBiJZqMOZoK;0GZcX!zUg`O(Gz&`Qp2?mXmo)S?au zfL&XXA_e$>e7}Eg zt`GXbT<6-yb*tnlF#W!&O(~0yk7M`v!(jGxp+rw$bF8+O({55ekwwRLluLyHM)F9t zH6?Kgr#(l8te>eCJz6$_UIyA5dPNZn(Ss1ZkioReQa)SUiGEs?(ny~P-9q_I_HLO< zP+$OsEJX6VsJMJPlv>ZJUl|q{PvKyU2&nYEg>jb{u*%c-S`)CD;S95!la0)$>T+OB zIlAYQ4wFS|aDrE8jO7nFQXNlgZ6~bMc$5X4wOS*+JAbjLV~86ZSdeV!@c{Nn z7+x425`(clHJ~b%84Covve$?hIbrlvRL)`M3&PD*%184JHfb&w%#48{=n8Sp?$ysk zLAh#NBbSu^f!WRO%9DEVyxR7+c5TH2x!_W-3=3!&_}@P6JPdj%LY8JB@eBqEWmTh* zIatAw#E$1bU9FSm8g&mIeMlkZ^Agu6h1h&jD^PsLR8e{OSVZfh(&e&ImzxiEJ8h~Ak)NWRs;s%A&o&=x3=aE z+dUc;Jq2Hp%bK+hS}F~s4y1_I_A>L}J{PV{O^xjb^7~p5tg0JV-YAk6LLMj4AekGW z(56*!k;>-X(kRHZjA_TYvLLGDBq4||3QrPvK4f=WHki)=Vmw;R+J=_8h!4V*)d>z) zA8&oBml%M&ND7+d-b`XLu&sIjgqdCL1=++Ye~~KHXYJ~(?x&96>2~`ckf~#5vHodT zMzxsz@=+Xz7FBAWyP`-` zAG>#w9tG#h?*g|;WC@PL*)N8T5kcum8KVQR|C^;eU8bVROQu6>>_VPL)nEztHE-G( z&3_MoG#S-nme4U=R4t9r&G0xH#T2YoJp_NJFqts!de6&kAp616gZNG0xDmwVwWYFp zj5B<;R$^Q&m`dB|L8)z=Sdnj;1j3+vAoZZ4Bh3SvC zCgKip`!{9Zld#+F@Hz_99p@^e=c9ix#OsIvKDdZOedKV||mz#bFBLo?+qcy=FDg_t%vRddpQL*y#_k zy_gAx|Jg>$0h%W>yEZU;UyzA{v}Psp)R=_(Rd^Pk3;xG071E55kdC!1!-_rR@N*NljFa3tKP@Zg%Wl9R_JXAUQ%@Q zqXREohY#bSc>l1j-~vD;H?0Ex!k0-rp7tqCB*~O-@odsc(5v9PT16E0JW#a83%{eI zBckHX^4EhaWunA@dr*s96WK)02pIzdmmaNtlzA}z?iYvPnbD!27f>^z-`CZmC7=+E zwtAg%Pn_TogIX3n zJ77jXE>=-l0j0s;sjFTR)WanoO}p=osq_Zw+~c+BOTBCT|KBddJg7sd(1j_5*W!~d z2)r~$I0pq`-jHez4k-i%z4dZajZu z%TGD1htyZscGtJk-21T09=z2#X2sgr`i!&jNNdch4dL+sCYKrjMO*xmQoX|(@eofb z2OLe69Wc}!HqbWx(`Sj&`&(Z(ANxw!PY$M3*mojMx8C|)#sa=A4n&?bL>(Osi(v{H z7NG%q(a3jWjZ)>8ZA(c8X1#!rb>Q4<8f5$={x*LKBw_uT_8l1>__ROs&(p|yP{`Feu%uS;}Av zcsEc3JmZ;l3uHS5Nf^>}BoU383@sSU%yey$HfViOX0;Ug_jXkS8(?SggiBf%sb_Bpr4{2BE;6Bvx$-z*n!Cx|PRwoM^ zZGcBW><5(Ds0kXH>?!HoTEV<`4#?OmzzOQBQKKpm?~9#L;OQ@4>B;px-R-}UZPtwJ zYw^Bh9}=jrP*p9VSErYI9rFxquR#S(!%r7XiCv$$+gR+(4h6@Obb`xDC^y^7v^s94 z{#7Fd<#yvQUIWtWiY$uL_|~dUlA{YE0NZi7A6HMUZqpeIbReLatU6LqvC{U6D=Nsw z5^(q=$^g`4%q)g|XVW}K>FI9^RfG*B3_{AEwKhB?69Ov>F|jj!{H6dmIsDZb#T&>z zw8bo6BY-ygX;W1NS&s3Ubh&4X0oW~+J7`6L?icvB_=P^U3*|szNGnrP)0`P z0HR)qK-A`&Mp}yq385+oqF?Z56>!ZmGOq zShn;U6-eASO*M6ij5^+)nsi5TP*yg5q+NcDk8c?JQJ-a#D~9E7?5i~S9`b5EW@jL# zh)H~qUCT|k)0fj(?^+Ny{RyD*WK_^u0dH@a#wW zJ9Iiv4Xnz%+I5H!9)n@hI+4m)(`+>bB#T;Fs1{E6A$g`f!cu|VOhJ3 zeb!~5_;5X$Cs#ZSTctu=Mn?WkMDIW%!^RXBNa8VG_Rh&*Cy5u&QF+pYKG#~QG`(I3SIC(qR(ntp8}FtP)YHdYyV@q15? zo*NRZVffpHsCupa4j=f(qwIerMy`k(407zHV~0O#epjwk-O68ir9s7i@kJ&;`K)m- z+?6I|g~AKx8;XH%Cr0-rX%Cpn(jbs;r>TXx0O;I3YjJs)FGihX(ucjZXzo(^XHAjM zCK%%UwQAGL#%OuZckHFv1vz~|H9wCFw?Y;O|Lz_Qbn#bt;2ZR#&Mi()RMd#BxP{Dd z;|3tXDBUtR=oR!Whr^aW;r|ry`wNeH$LLVhum-5)w*ItHLcm_g~Yr;4n2C&B~Q6l{nrUR5}ntCP@ zlO^`WPJSy{3GAl*y_b(gqMs|G*E}b%y{0n{4ii%N5k&Gv_*nCWnAp%((E5;0a()0v z@6plsIFN{Il8o3gYZN7sdy0icHA{TDsfLBq*xO5O=3z9lJEtO%#{oKXyXEEWUC+Ik zFfs-1G2&g(C=vsAii`ZXJb8MppgV>M6e1tA@%;?{3}mlHu-Qo?=`Dw1!fPNIKmmYk zL&NH}OH0`vhnD)=D+(=ozV#tCfGwZ5MtW@T{U`_gL^|c0WMFZvpLL!R^6<&$R2qO? z->-ZI@?qG{xol^(BwH`uMb@lL7*%|7DZ#3+o!c~xBUlT|ec#fbqO3i#?`)-~3d?i6 zO_M;c5gR3Z^^HTe;guFv8BPTVDy?ukFrIF*k8|1?o&KuRV3I%Wa|>)F`cowimu&*@ z11#Cjo7SL34v*^XUt@SlT%=Wh+m2-NV?WO{kJ-D+@_ldwVQOwlqk760?Tb#V=B%}*5c_G3H z!J*Ehj)*=d(|NE*E*TBZIUz27(VCL2&!A>R96D@3jJtC5cL2+)bNz~vqYp@xPf@6l zpJt!2IEgl1TB>l!ErbgX<1<=5y9j_=R`QY3I+pElwmEAbEBR4IypI>TE}2b+=P+l4>fY_9%Y*+9&57_C!>5G4)f$gp>ds9CnJhr%&AiyYo0xq zUvsrl@oJ{#Gqq#k69_R&Vu!Pp6sFsW#RaTY@u1w2Q85m%AlfcuvzlaVXYb42Izt|K z85oQ)I6gvt9PuDKT*LY-j%T#fpA$hgum!GzKlO7VGTc9f@(l;9`wc0gyab5L(j(cO zk6Rniz&HPjG|pBI@(<1G$pp_v#24d}l=FgcA3t)ES8!LsMdLLxqb^h9H86bJBzV-v z*t}6c*uP0IHN|#g)p>qlZFg`xNtIi9lWw74`n5fUId7TwsOs`&)n>)vA6hZG7XHvn z);K>hnhp2h4@c+P+ZNoi(3|Iv`D0fuG{6o=IG&$lV=DZv*tZsmxGamNnBzC8(tZ)Q zfIS>&OXWH2(+7*vBVYUcHb#&FT^xHvTFw*HLe?|Ylk|5h#Y#7;znMrn@9xhN*4@@f zG@*Qa*Ne+@r5Ra^pv>Zk+PiQCN1gmCjrwe_{NUYP;rqt+?+|(Oiu8lskwC4j;N(9< z`QpyA=<~PN)9QGM_sqF8c@k7AN>w&^|39eEGz)}$E(qRze?bMsolzJo?-~dH0BB^! zbIX^L|E$x1G7JN?x-RU1^?jQ|4#l0Lwd0)cQCeNVzCKNAW4~|BXr-YIbWXZ_%!?p) z-vo!}0bLDuMS5GkEV&M<*bD1)P|;oJn)Z0y75r^{V$fdzU%E3Xx-AZ{Ad1ff zssF)MVX&p4uslEIJj1P!9CFm%)A55Jg?2*^QSL@A_N>;H(qq zhH}I@9{ith8RV>b(of(TocE~N*x1jf`}&;W19!GJU^Qy%|z$V#b{0#U`h3~YhFLS9sEG?vqt%OFTG;-KkYc}8N7q85iOyHnk@mV zC{U46!@vYlv9T$e4PD6joS)-~ae&ck+x%N2Khc9!74~-cTGMRsY&yNisqN+UWgpla zCfB4d7K)wneY9U6K9}-2Uz;MfhVhM;7&L{!e_e!sA}$ zppPKsl6nImfAyMpz!avi?_Xs#HEcaqq`xBEYIN-(!E8S!6Ce=&ck`FOh(aDp`tC=?kcD|g>oJ7hN;43`eb%<`eed(z3l}0WcsMU?^Of8mRL>Jdy3oXNt?_4;gzmyOI&tz(kHu2&4^JQfT<7T-_Ll*X^(ym~3>4uWP) zNB?a8?D?>MKc7pt1&T&0$n2=M!ZAXMw8}rB`xr;>{A^UzBpv78v*7jm6`FiRm}eY> z%KmzP#bM_MTR!-r=tf%|N3OaQL4lNj#=K*pp)Yv8`e?djPk~nRV^chfrUL66D-hpC zS!N2S^B?PgSk{kiQ?LvI>3e#0Co_dq%*;1VCUZoWlRr3n?pk7Ue@B1O8Yc8U()F9# zd19Jv9_wi1u6INsFV1ML{*0kRT8!(L&L@-0*S!vwu^O~Leg4|j-LD9^cae)k$61W)R550Mkcjkw^We`PZ-4kg7LW zF1dLnlYW$W3L){Dt?vlA3K~TK?ZLWnE^#+OW2?n*%+vFvWczwx`! zpzr_5LHvn5F~z`3jMLG|d;dW{cvND4YX)?X1G&!i?Tn^Be%v>L@lCwe)4Nmg_MiYL z&rkiMmiSv@VK=bfkHYO~C*N@V#2uXI4=Y8kBaANbF1W8eTPmLs2T7Vj>A?feMH%tu zYIQ#YaPM!c3c9Yp4G!MQ6zs|win*u6frSP<6r5mKslfX`1?!?LG#Z-`{T@^MC;L3- zzXG93!4q)n>bU3r?gG~TD^u$K9^yawTK^|M3qS}(r^hma2>9Wvx_hdMQV9fY%Nd2f zk4T6G))!I6BJ6v>*)LACW)SYc-X0qVhjMK|6Lc#0z#8MUKJ-r~4<*21Ux0EF4xd=W zWsnx5z5OXzU1MMaf+p^uc^EJpduuxU24iDm2YXW3?&&G;GClOSK4--tM*kO^jutfo zBh^GQWaAFC_k%|VZ*vpYzyI_C@BiXsEQ-4#_W>yQ7KQ$WQ5n4lLhT{9*&lkWR zw0B=mlEY+zgP)0iMZPQVML|jGhWYQ2&Yn)RF%u2W zG!OUhk%Xa@XISWeF7ylQKIy+l+J{DXDT;^xd!eF1{-=LSW$4-cptZ5rGh=u#ix|N7 zXUNAOUqfd>RAz8WgjyR22X?PB>{0<`{KSZ=eaPD6+gBlh}w)De{H6?9l1FHm_bx!C>n@u9|`Pre(y1b+@?@0U8UQ7*oD9kpOUSEaAP z!#WmRLF4QZkBOuwEY*Q{qZ#z<{7~@*5GkrXQo%C*j+Q^YOry&@Tr)jM z=ffs?yv+=Y^MzEXVZe5+%3-3wsTDyyJS;4RNvAfIm;0$(5}kph*$o>9hJojNea0gd zUBVnnSzL8|a$or1{=uwg!?e&>oR%EkLENZrZBi#E#^s9!aAr_sG&;qS2)Oj>*hLRqCcH0s@{EpzL`KHrHOLFXRu?7WDmcy)OquRLEe_9#Jt`aKT4$+ENR zc1LOsFFi(z%8Cp&uKgAVJ-Asd^gYFK8iHS zhJ+w8pEKnTzPrAX?QPPHfY6*t(NAY)>JP6lr@o07U=$RrWc)hi9^Xl{@GV*i1p^~t zF*&i`vT-nKNd6nJ>xuVvQFB!qyNJ5d>JB-`+X<0^y->U%%x;cz7g!)<_=Uo zYt@RE2p*55mZz5{gPhNgYV!9a^|T9sDx1_e2$=Y4!)ilr%3;EE#%J6*$C zWji;cbbgi{HH&E({`w&)KRKr0Sr!}CiV;3BF(XjCOwwXYWk(SL8=X;5GV7A}X)kid zbaCz6ClUwe=OK^0Ikj6ZZ#*G2PAT=naf%OP!1RhLDdM~}IqCoMDaY{xQ-rA@>1Flj zeilyvMa`*_XR2m5d}HY$75lqqD4@Q470{q~ z>C%9*H(Ots?(3ro*t6sduM8E(bLJFI`wDR>skEb(ehiNNyRIh!Axk>unZt{rF2{{4 ziq>CZbN#>z|cfHM-Ws9AE+ev;AIV!w2>7{W*Nkof?kMHk)&; zBCrsiqh6T!nHkU|NuUUnqaax;)vulr4`KhFXJ>c*XKVx-YerpEIC(oN#}Y$l@G@q! z|Id}Jo}N8uPc#|5Bxc&88-jo70(3sb{RWlO$ zFS}ik4kltiou9kZ&rlj4nZchN`3Cf7-I+^?I*6|!vT3t`PFwwHm)8gAo*}mQP#r|{ zZx&US>-uu?^6`+$n^*&%n=Wr>yglhPl4np!l78Nd@YOzrs>m!{PyBW-7RB5_NR*r8 zi}!E)#}qM=zJ7)8D{8*boztA5OY@$QH0@91FiqyRN&T}mAqQ;7EMks^@E{6LP;MuRgBzs~LWmPD@Ol{KHeYD(CB_-9a*`Ds)1p z_8$!C5Z($`K*3aTvi^|GFBp2VJNL@ri*9|a0FBcZ;DF;;AN%#HCw%$MMh4v6#$NNO zemOWFmHN&d3Rl1rCD zZG^K7tfjX?0z>(5NGAhO{Zb{x2actoG@c{|4?SjycTZw)2Q-rvTHhs}`XlYi@${dn z?*f@lpOL!PU6k-vHGCr$d@qN@E%I8> zKN#aa9(i*X)fR#PyFEPXyIyc;uObWhb60fY*PtJ0_f{=XqpPpKeW}uCpXs)~@!M_2 zDX9X{DoVAZLvPaWra(y)(&qiPq4Sgd5SL~nljiB1Z)Q0=iJ)6sRoa&OXr(zOj8t!R z!MGm}FAJnWEnx;fJ4^Iqm(UyW1gYfn0ZVhtb|J#gHo?RA{Q;#X>|uWjn`*w_Twltk zF)FCHY)zEz)u=sBdF!Y7Pp8gwskb9yJ<@w>SP!~~VZKWJJ4XGgA7(Z+zjVJDb!z*4ug}X8D;xb> zJb-;r&Hr=y`!*cryxo>wo~6i}7IOs&gBOm8RTJOozd|AfcAGlK;g0>ea+I?rCHvAYhN|Sf@xhp~JJbfw zNsx^4T%b)nU$eAj)9L!)r{9=Wnf7ylVlxo&*u2p(*3Mj*(USTG<9l(Cw@#R3V4vc& zIV$l3_ldRGUWf4WXI7>(}mt$f%Gm~ze7H%R4y_RL`mzid_gz&pb z>wB+pWh-&LRx)5#4JvdKw~tc?%yziqS0a84*a7S!14RrX`r~Sjp5rG432-;;z>6E5 zX@12B61I6Z*GJOqYFcIn5?y2FJu`hz>V?#(Y%0eK)Ca=Pc!~^IhE$KPdAJN*zjDm_ z8wclq75%+R#A$69&&x|ws=Zl3nqgEU53*L3+Mq=+ug|mYMY;l#LLL-`b<_~5c2qB- zEJo39o3=A`GK&m;Snl@T$zoY1g4v(-koj$-tG7zNxA1){J>J&M)^sAo=X#}47gbD{>8I@sy9e%A{J z>P~{7r$w)oIWQjM|FSG;7ej1ZF+`$JL&krRzV=sa#>ilh{Ne=-GF|=?7$>h}m4K?z z{Ggp8(Jvnb$={O{%0Jl@#z7q6=EmYUuef38>+941X%05~fTdbo3L#@xHRAoiXZ5*$ z&zeu8RDaFIBd8jV3>imxKiK(e$-{P>ZznbaIkwIG9#Iugdsk+Ayfp zpXIDQRuhyxmx#YAY}Q4J->9!WLWR3REqj&+youfKY9X38t8cTIfYxqx7*!bEE{e#! zt`4sLuT+>6zJiOYTx#RzfgfWYHN=iW@Mnyz>)`t*^gD;2Yu3to@>b(^AKWjPGEz(7& z$7Bkoc+YsdH0$Hkl*?n&<6pauSu+t?uPiT{L^9_Eu8w0*QpdcUoe~Q{=4eSc8kg#z zdtM+9DMyVEI;jzIW@o~D+%wd#^DexTkh926p<}NzP5#R8Q=3$$>2Ks1T6GsvpVg;h zDS0`}r$G+!DL99`zXgMR`xTD!X$xEMl{`M`w(~#e>YyX2PKsEuc6{4zfF!H5(krBuO!n|D%4OMlXKkp5L(ESRXpW1v7Y;h@LyD^?A;NhW$=Qe zA>2P&nfSk4U!D+{7wgy(MN@xwo-!~mf-5gCw~)U`#w&$X28X?`Kc8{7O!Jno%+LPpndieOZgru>_tl4xxH< zq!w?Ffi64)lVP3rD3S{r+FuOdC@D<8b|1N-$)WON#h*?Y__`kX(|HB*+rMymy@6nn z!7mZuEiaQ5=afjcwDiAfJIkmjqrU4aAp!ydf}o^IH%JXbDj^L+Dh)$-NVjw<9Ro;8 zH;8mMh;&Fu3?VID&*6S=ecq4nmzTvS)~ss{6W2Ls|Mze2rTJnpzR40R0ZXGKNT2~6 zQ%J)L%a@dLR1z~E##!yu*D2lT#)>{bF>6)+iO2o05e&8Azj;j60rqAFO+Gomok z0r~CVh(LScP5C&QAwy*`HVTl_jobEzu<}5}0*OT%j~oV4I(sAQn&Uq-Nl&;)P40{6 z{R>E_`=1fXY@MIqQ1JEv;6x(HHNe!KEv(;$u~CATR|}R&X-rSbI~1WLIjstJC=-2_ zM)#%+qt?edS&s&6=*7ohM8P9$RiLnZrOLoL_k~7Uwk<@|K_h5?(HWfnI&=a`osY(| zwR2_7V6|YCCY2Pi;J+;gk+r)XiF@$nMpgajhwG^tM38`S^++6I`)syqWIQP)c>25XDSgc}a@)QaCt+b+O$MCJ89K^Gm`;h*=?@F>m?F-su(jRtHe zW89BISe^`AYIyp|ZygRdIp(#W(S$uNe5EG?3(PV9=`%L&_KMn<1|9ZBemZ6*pJyb2 zL0=qI?J@HNbWa{5yob_b{ca2{^z(z(*z}}7lQiE(x-)U!@y&{ry)_PGluJWF&v)LP z2fBgj6dAwUYeuyq(@d-Bs?MU&)&sE*I6yotQJFG{RZrZ)qqOJ0VR`#iaVDQ;;~HZ( z1{6&_nb1H~NUMixq=k*4ypJmxY6+#FC+T-&>}J)JjVo7>N>^(g;`%bYm84{0t9k zML~EldX-5FA(Sdh`tYv|pWu>rDIhMS`0Si@M z<2=kcMTB@@_-lK&E4!!aLjIi~O+HI8QvV8{1=>djg=l=<*ism+RalRnN)3-aj@6u3 zbh8tl1to1nvd~*sZfXh|7I)Ogdb{bmPe7X_IuP=Dd!zgc0JS7SAU@{~ju8BF!=3 zyA{`rUQ^A&2!_J~Mk9_Z3z)BCgWT<;yJKK35IV3d(K z%Lu;_=f7e|FSR$4)D*e8V(?#eL~5fBVt3j?ovmkXg39bTXEG_SukUg7`7ixP38|&Yp2d{+*usUfw!Gy)5wK|7I~9+@jQHWl9<^{)+83w_oBPxGxS{tosllsxK#cPSOn|6VnE`BrgXaWPAz{wscpGyz4BT9*eK`|ph7?6$Jv za-4$sKjnnrZCsH7(%k{PvP|*sWtwko0J__)KW>#h@caMmA|h!_4;nB20JKFCQ-{lw zM+)qiZ-sFh^n+HqiSGLh=3-x?3NK57OY9o*TNj`S6cFmjDoBIZUCOPKSFZI!{ zTGB6;E%lJT4+vLwcde)KoRSo&s||Dm+s@2Lua2cDA*?gz)lXS8=MsT zAXHS#GIh=qslB7&jMD)71XG^tKGUbGFw1^vJ;x`fH1z)1j4>t%<4i)|bm~hJ7{Y%9 zk#fCVAUvd-(kpsuN+Vugo4nW0+AOv?Ud#r| zmHpTymn;P$Fjnh#n_^^G>t36WePIQo)L1YrmZ@=dYW?4f^qg`2 z6dSv4jVsH+SA1{HSEZzgS^L`8FUOZ9A@A&j!*Zx?DZU)#oZhMBVn^l;TO;%aI!P`LA?{fdlVDB`0(uQv^dbU zRzP=zA}bDj1|(Jjre9XW*r{T`1c1B1HXz5STJQplLt|~4&m@vf-5mvQJTNhFK5`dM z_BfB`rCeGfywf;dJxdXnHZtM@d9GgvE}YZADZ8hmcfHVjyx>QpM zzB}JYD$cv4_r1=+#Ef8C#lRr4zaXv<4ou}{Kfugi44je~;MEb6=9}m`_?(QFeHCvb(MKi8xzA~cu36hLUELJa-l1g|0eO` z=LG)AcC!OA`PpQl`ho_YH|QrgvH1hl*ajwca9u6dZ!6C*u^#Yb&Fl!eNxj~`e|Ax- z2?C-nU#cE=)xAA3|Iy^>Zk6)30<_F)vU`69BEb-1XsuE2+GE2B&c>ix5L={E{nmK1 zQQsRc*m5ft-#Gm5%WTss9KTM=jKUygIQ2pwg8$HRtX#P ziWd17w9&quH1{Gxo!@s@ftU?z|X{wLK ztecl{HR}ul&dA*jcXt~C&=cPEKxf<|NU-L(Kux-BI`a>NsN;uw-2x zYulGYU2aglKc3q5}rrI)~wWEO4FtY)#PiN|H_7OB*<~3w+T* z*Q2Vgor4$hBoJ>P=S28V#tS;yBzde5k8#Yt0J=jpB_;cP@yAc#Jvv|IQg|eiNN$D% zx|qWt%geFAh0`C)*33yBz%{qStGa41H9BmXLc}ThRUSZseHo(uKOBGX2-PIIdxEuW zlpQ3P)`J+OH)#q8Z*to$mUG1haKGLTbX{qU!cz`#2*Ny3)1hZw|AX+@_o+wjxX(#v zA_WcDetcCj^c7>56L>fmMDF+vd(!l0P4zqduVCo0a%qjMkL$vJo*oB$_EXFQb&-dV zl#4O)L{x!wDoG(>#76*UiV; ze~u?;Ao1lkAM9*fGvF?{6cEP4mCuf+>}aQtcy-wH^_SL!)~7zlytEwqZfsIh)>8a^ zNbkdP-BK?p)?&=7pxiq3k{|XBStkoN&6nl}<*p~NPEx19#k6l?>69l6?&(TD9>iNtcagBQ3zpAdaBot<%z_#5H zB*;DBxX$-c(|xh2fBj^(bYbw;OP}p=hPB53VS#MN0UE=8$K@SSVA#>LTB(;{Z5ycP zecaPhzatAv+gfpRcz}-TUjtIqX>(LL92g(qI4uU6^rZ4v!Vhx?fAw&fDtBIzwm2Tz9ml*iv;F!Dc|Z z?s{emowfw5TO{c|;NF`wG8waJirRYr@|#5|*P6HEweI>l>cQ{eCE7VN@|Nou1t`O$ zj%S1i7_=OIchRD}e(0D^!XYd|zW_Wu$Yy(sItm!Dp>gn^RD$ga!sox!S2Y41TPyJc& zxQgg?pMoin!cnAONgS*jMkP_!$#F>`sR3WRQZsAK`&K}r_MJ+Y&DhtEXVk)f_SzxI z*s-dJ$zN$VJe9C!QpBmBMKX0$}vT&%U_zHIX|R z%wX6qyVJbuMTlI+6MlJu8cU-=)+l+7&w@f3$FrdOGk|5PCN;FB-1iKI>|7IjpTowZp zzQjvj+;rBJ_)?ROj>atLPwdi5r%e?HT;jV@piU&Bq6~vOW+uO8ALKfDy;n2Z|v42#B_!LvdOBOe&z!Rt6&fx7JJ#drYYb*@#~ zg#1eee$AbR!y(7Wpo>46J{QEp8T{tuexF=T%)1kacAEOui-uqQ2VnuXwE3~ECik7V ztb8>glZNnPyInC&kY4}c%+q%el$09pG+(>fh7aoK24+SISAIq2#uqKV&|2m>uS zDaeOj%`R$-Nk&8hCT>-o+o-#?H$wYQeZ?XjO&G(*{Q@r{}%(e(Q#YWA2V(O?WJw8?KLY3>7ZPcmS1>`8zR9!_O?SCTqye1bh$Yb=m>%4>6O4rm7$P-O|d5Rmg!E3(ye zXUtzNB&T-EEqqrR31l6W`E>SHEeyP_yfiX%iPa!nicf*&)V?73N%Qzi2qD~engmah z&xv1vhOhn_Ogd<<@gT|{^g^++=y5>d&s+^%4Z-#$rOZ#36Yi!3R&mbO=wjIc-iyrSQq47)tL` zrFo?&7X?stoK`;OJF23pL%m)^jiVfw4xIZ2kI3grOHG3!@_E9IsKb=EBFv;TFkgi| z;y7Z>A7J0KEmtD`_h@vk;Y^Bmuzar)u@dUn9 z9u2oh;h>Ldum;3$hfDhAik^K*Zq|E9h zgITGB!X!+nPH1G~xz%JaCLFZGt%n+~sfHLB2s3m+F+_Pisddo0FvW~!{SPy-5RH=g0?5}Tw6D0{kLVSL@O8D4niK}@wLXOESJ`q0r@UJ{-+ zjM-Q3y`Xb=;lmk6w38G!qKP|~plG_NyZUHgS^)i8I5F1&D>hufy1D&ykIExP^2w~` za;osQugk;JEDhggjE-4{&aVAAwIY=fwC#Ock%el*1QV6!D1?xa6q?KoPjZMHRXU1&zO*k9&wib zmBh_!Y__F@Y-!5IS<#EBo%P~6+rTBRsB54+^7~`%Llo^|C;o32Q$NL;QwwHKXx!h~ z9`mi?N}fK+6Z}B~Y4;%)&}s%JBJFsY6r9WZP#SutzR5sCku@1x1spen=#b+|$cz|f zR9G1PY4i5%ZpF%ZA1boa&E_-)Sx1n!H?24VqtixY=S}wt)%L|RrI$Pbtsdn95AY)5 zH_Ia^g(=h$g*#2ZiFIOiH9QC+ExPYB_8p%9ZB1{h(q|dOUl?YsA>qbhYP&oh;uz{c-Bg zwYA_bezt!CFNErTL%;sBAi_0T1f$;@kEY~b`c}7zKpfnLkMPQ2B#M@n?{-Ev;utr# z49V@~I%J#JKOJ8#Cd;=%h15t}rSBp2h8eI;w1z$Dd!uE@akFh7bgB@jRcUBuj`Eew zFII}M;6{u0p)`pn#%q*)Co*2Xm~pe8FPk6F)gU#@i&c!mW^MRxRIR3-$+s%)bXkqk z-D-PsU%o=zMYA zfmdZnZs~Vvg_j~E@J=IeX&Aj*Bo=d6lTWYBY?7fnijr%BNJF@&>Q6gHo;}fI)$>OK zCys9B^UXJ#j+Vi_&p0@Gjp2`M$YN!$BI*>fcZ`na_hh|UDbtCF?s{{~F4{L**bWnWx+0{%wYVw7RFArGk*rKx6W_dA1l@J0 zfC$eU=`MFPBVT@vJGpiA)V$l*?6JjxW0yYx3hb=%xn$qP=7RneZK_?vwtKw$W-V;B zq<-hqV;wgoxq+~7XD;aM$QwP-OlRu0^+_aLN3t0zJp>{b>ySD=3h&=`@Za_F z^L!a|Xng8X^=_iO%<4kZwxwqA#U6vOaCGeE?uF`*z=0>3O%o?I!4F!m8SCp858`9s@-i0 z-#0`sEE4^B&PC!{0-x~hv38VgK7AtJXG>Kmt>)-RF~0a#QTB6RD;J%K-(SX^qxwwnrb?F`KIgc z6EcsRpNjI z&k31;51n^uk|va1l&$ax8zuwT^bwDS&LBVB=FiA6YWr)yGv!JNx%|vNAGYaghXmJq zhKfN6Qu>+>LAd0jH2z|DIuDcZ+Xq9LiVp0g)pl`AW*j_)hglwkV1^i@c^s^m9l~Y9 z`yW{#OKqRGh0p=^FjA_x5-%55uaCJP%SGc+sxeE0^Jm8mW#d@l0-dc}*0Moh9^Mr= zI{Wn70B$JC{L?!MhI6k=8xIOLm~CMo`=}c_roZ-HFuLFg#w+*s7JckrshK{b6b)Ud z{wM<#-vJPsIQ}>|$U^iXWuc&+n&oF1zddU-mqzzKlXOpW$UekrODbwC$kfk#x4gW> z!_uR_k3yh7f}NQ%rAS^$ZyFTD`Bs#{yj>J<$c@`}Ncg@F2uG0%Olat3kbS05{JK|m zlqdh@Evxs7wGS5Azr(SEL>=cyGILoL!kp9M@0(D(KgTBD2mBT{`~ynh0#j_cx(dGk zZggBueq<{9#XD?r*#T2*jSkD8pwlEB^<4{_)Q>x=jp}8`!Y}zc8vL`2-XOjy(HL~> zE%6~F%KYvjNYqln(X@^4*~|&_wEd?#sT~KBo}}BhtE-B>tvs|qVsLY9`p!L$$c@(> zN3_AbD(d@-*WL9Bo0}>kWw=I*>D(;iu2bp9J-<&Z(p$fJRm>;UAgo-ANX{KnN3`9{(nA{}hI z6u1T+(G-1Xy!ckcmiGIqj<+GMb)vPmGZ2A2drPdG3p4D9qQUM8z>vjI`PFHC$|LHp z6kABAI8=#zmuUiuKGG2G+F!;4QtaIO1A8VbOxk{@ohIoiro8#1#IjQwSi$n+unZ%k z_wCe8!gkQZ!J%?tr$OeMRA#n#&Za*HGRCAN(E886mzH8Q1zh5{W&4)#P&<01`Jw&r zD9@kIdFGQWukyQ-R#IZjt_wNO+xfG2I&Y|26fk7&Q1kCM@DT=@*t5Co&}BhpT2xmtn*dyb1tJ1VWyCIb=)##OXt%#Y>S+M@7E`K?1<%RC*t|t4&DDN&O zj5xYfm^T!mR+jZF+rORohxJVCd+vKfq8<#`*IgV*tKSpAQ~s@dJ;qS^Ckf#nKv!r_ zySg9bD{ObkP+02Tkq+eyje)@j=xTSB3_4-jYG^2NMT9vo>bd#Z9~08s!U#;fW6JLR9n0N-42)63>sM_A z|IKLvrP#M9!J7}=|Hg_NV00%H^x^KmKcwAaGX(!y3Zg|IVA}VCTK|8Y`?pX)+H05p zMVcbPfY4Ej zNBi)C|F}WvUyf6>$dlWbU~%z(qdxy%9&v+l!7FYaH#ARr2mHJdmw#O%rswxR>nGuC literal 0 HcmV?d00001 diff --git a/docs/content/en/integration/openid-connect/gitea/index.md b/docs/content/en/integration/openid-connect/gitea/index.md new file mode 100644 index 00000000..76bc612e --- /dev/null +++ b/docs/content/en/integration/openid-connect/gitea/index.md @@ -0,0 +1,77 @@ +--- +title: "Gitea" +description: "Integrating Gitea with the Authelia OpenID Connect Provider." +lead: "" +date: 2022-06-30T12:35:54+10:00 +draft: false +images: [] +menu: + integration: + parent: "openid-connect" +weight: 620 +toc: true +community: true +--- + +## Tested Versions + +* [Authelia] + * [v4.36.1](https://github.com/authelia/authelia/releases/tag/v4.36.1) +* [Gitea] + * [1.16.5](https://github.com/go-gitea/gitea/releases/tag/v1.16.5) + +## Before You Begin + +You are required to utilize a unique client id and a unique and random client secret for all [OpenID Connect] relying +parties. You should not use the client secret in this example, you should randomly generate one yourself. You may also +choose to utilize a different client id, it's completely up to you. + +This example makes the following assumptions: + +* __Application Root URL:__ `https://gitea.example.com` +* __Authelia Root URL:__ `https://auth.example.com` +* __Client ID:__ `gitea` +* __Client Secret:__ `gitea_client_secret` + +## Configuration + +### Application + +To configure [Gitea] to utilize Authelia as an [OpenID Connect] Provider: + +1. Expand User Options +2. Visit Site Administration +3. Visit Authentication Sources +4. Visit Add Authentication Source +5. Configure: + 1. Authentication Name: `authelia` + 2. OAuth2 Provider: `OpenID Connect` + 3. Client ID (Key): `gitea` + 4. Client Secret: `gitea_client_secret` + 5. OpenID Connect Auto Discovery URL: `https://auth.example.com/.well-known/openid-configuration` + +{{< figure src="gitea.png" alt="Gitea" width="300" >}} + +### Authelia + +The following YAML configuration is an example __Authelia__ +[client configuration](../../../configuration/identity-providers/open-id-connect.md#clients) for use with [Gitea] which +will operate with the above example: + +```yaml +- id: gitea + secret: gitea_client_secret + public: false + authorization_policy: two_factor + scopes: + - openid + - email + - profile + redirect_uris: + - https://gitea.example.com + userinfo_signing_algorithm: none +``` + +[Authelia]: https://www.authelia.com +[Gitea]: https://gitea.io/ +[OpenID Connect]: ../../openid-connect/introduction.md diff --git a/docs/content/en/integration/openid-connect/gitlab/index.md b/docs/content/en/integration/openid-connect/gitlab/index.md index a0c414ce..283a04bb 100644 --- a/docs/content/en/integration/openid-connect/gitlab/index.md +++ b/docs/content/en/integration/openid-connect/gitlab/index.md @@ -1,6 +1,6 @@ --- title: "GitLab" -description: "Integrating GitLab with Authelia via OpenID Connect." +description: "Integrating GitLab with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false diff --git a/docs/content/en/integration/openid-connect/grafana/index.md b/docs/content/en/integration/openid-connect/grafana/index.md index 3ee03356..8508cab6 100644 --- a/docs/content/en/integration/openid-connect/grafana/index.md +++ b/docs/content/en/integration/openid-connect/grafana/index.md @@ -1,6 +1,6 @@ --- title: "Grafana" -description: "Integrating Grafana with Authelia via OpenID Connect." +description: "Integrating Grafana with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false diff --git a/docs/content/en/integration/openid-connect/harbor/index.md b/docs/content/en/integration/openid-connect/harbor/index.md index bd7bd1b4..0a0cfd4c 100644 --- a/docs/content/en/integration/openid-connect/harbor/index.md +++ b/docs/content/en/integration/openid-connect/harbor/index.md @@ -1,6 +1,6 @@ --- title: "Harbor" -description: "Integrating Harbor with Authelia via OpenID Connect." +description: "Integrating Harbor with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false @@ -43,7 +43,7 @@ To configure [Harbor] to utilize Authelia as an [OpenID Connect] Provider: 2. Visit Configuration 3. Visit Authentication 4. Select `OIDC` from the `Auth Mode` drop down -5. Enter the following information: +5. Set the following values: 1. OIDC Provider Name: `Authelia` 2. OIDC Provider Endpoint: `https://auth.example.com` 3. OIDC Client ID: `harbor` diff --git a/docs/content/en/integration/openid-connect/hashicorp-vault/index.md b/docs/content/en/integration/openid-connect/hashicorp-vault/index.md index 04b50f3f..8cd5415c 100644 --- a/docs/content/en/integration/openid-connect/hashicorp-vault/index.md +++ b/docs/content/en/integration/openid-connect/hashicorp-vault/index.md @@ -1,6 +1,6 @@ --- title: "HashiCorp Vault" -description: "Integrating HashiCorp Vault with Authelia via OpenID Connect." +description: "Integrating HashiCorp Vault with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false diff --git a/docs/content/en/integration/openid-connect/nextcloud/index.md b/docs/content/en/integration/openid-connect/nextcloud/index.md index ced7a318..2e82413d 100644 --- a/docs/content/en/integration/openid-connect/nextcloud/index.md +++ b/docs/content/en/integration/openid-connect/nextcloud/index.md @@ -1,6 +1,6 @@ --- title: "Nextcloud" -description: "Integrating Nextcloud with Authelia via OpenID Connect." +description: "Integrating Nextcloud with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false diff --git a/docs/content/en/integration/openid-connect/portainer/index.md b/docs/content/en/integration/openid-connect/portainer/index.md index fe6bf47e..08a67a5f 100644 --- a/docs/content/en/integration/openid-connect/portainer/index.md +++ b/docs/content/en/integration/openid-connect/portainer/index.md @@ -1,6 +1,6 @@ --- title: "Portainer" -description: "Integrating Portainer with Authelia via OpenID Connect." +description: "Integrating Portainer with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false @@ -43,19 +43,18 @@ To configure [Portainer] to utilize Authelia as an [OpenID Connect] Provider: 1. Visit Settings 2. Visit Authentication -3. Select: +3. Set the following values: 1. Authentication Method: OAuth 2. Provider: Custom 3. Enable *Automatic User Provision* if you want users to automatically be created in [Portainer]. -4. Configure the following: - 1. Client ID: `portainer` - 2. Client Secret: `portainer_client_secret` - 3. Authorization URL: `https://auth.example.com/api/oidc/authorization` - 4. Access Token URL: `https://auth.example.com/api/oidc/token` - 5. Resource URL: `https://auth.example.com/api/oidc/userinfo` - 6. Redirect URL: `https://portainer.example.com` - 7. User Identifier: `preferred_username` - 8. Scopes: `openid profile groups email` + 4. Client ID: `portainer` + 5. Client Secret: `portainer_client_secret` + 6. Authorization URL: `https://auth.example.com/api/oidc/authorization` + 7. Access Token URL: `https://auth.example.com/api/oidc/token` + 8. Resource URL: `https://auth.example.com/api/oidc/userinfo` + 9. Redirect URL: `https://portainer.example.com` + 10. User Identifier: `preferred_username` + 11. Scopes: `openid profile groups email` {{< figure src="portainer.png" alt="Portainer" width="736" style="padding-right: 10px" >}} diff --git a/docs/content/en/integration/openid-connect/proxmox/index.md b/docs/content/en/integration/openid-connect/proxmox/index.md index 3d6551d9..9fd17e3e 100644 --- a/docs/content/en/integration/openid-connect/proxmox/index.md +++ b/docs/content/en/integration/openid-connect/proxmox/index.md @@ -1,6 +1,6 @@ --- title: "Proxmox" -description: "Integrating Proxmox with Authelia via OpenID Connect." +description: "Integrating Proxmox with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false @@ -45,7 +45,7 @@ To configure [Proxmox] to utilize Authelia as an [OpenID Connect] Provider: 2. Visit Permission 3. Visit Realms 4. Add an OpenID Connect Server -5. Configure the following: +5. Set the following values: 1. Issuer URL: `https://auth.example.com` 2. Realm: anything you wish 3. Client ID: `proxmox` diff --git a/docs/content/en/integration/openid-connect/seafile/index.md b/docs/content/en/integration/openid-connect/seafile/index.md index e4d6aaca..9b2a24e6 100644 --- a/docs/content/en/integration/openid-connect/seafile/index.md +++ b/docs/content/en/integration/openid-connect/seafile/index.md @@ -1,6 +1,6 @@ --- title: "Seafile" -description: "Integrating Seafile with Authelia via OpenID Connect." +description: "Integrating Seafile with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false diff --git a/docs/content/en/integration/openid-connect/synapse/index.md b/docs/content/en/integration/openid-connect/synapse/index.md index 485cab49..48f76c50 100644 --- a/docs/content/en/integration/openid-connect/synapse/index.md +++ b/docs/content/en/integration/openid-connect/synapse/index.md @@ -1,6 +1,6 @@ --- title: "Synapse" -description: "Integrating Synapse with Authelia via OpenID Connect." +description: "Integrating Synapse with the Authelia OpenID Connect Provider." lead: "" date: 2022-06-15T17:51:47+10:00 draft: false