From 8479165a5da4a570eed28bfcd08fa0cab75756f4 Mon Sep 17 00:00:00 2001 From: RealStickman Date: Sun, 2 Apr 2023 19:56:19 +0200 Subject: [PATCH] Nextcloud OIDC integration Add lots of pictures Document provider, application settings in Authentik Document settings in Nextcloud User quotas using custom attributes and property mappings --- .../authentik-create-provider.webp | Bin 23316 -> 31140 bytes .../authentik-custom-property-mapping.webp | Bin 0 -> 13266 bytes .../nextcloud-oidc/authentik-oauth-scope.webp | Bin 0 -> 9556 bytes .../authentik/nextcloud-oidc/default.en.md | 88 ++++++++++++++++-- .../nextcloud-openid-connect.webp | Bin 0 -> 32950 bytes 5 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 pages/02.linux/authentik/nextcloud-oidc/authentik-custom-property-mapping.webp create mode 100644 pages/02.linux/authentik/nextcloud-oidc/authentik-oauth-scope.webp create mode 100644 pages/02.linux/authentik/nextcloud-oidc/nextcloud-openid-connect.webp diff --git a/pages/02.linux/authentik/nextcloud-oidc/authentik-create-provider.webp b/pages/02.linux/authentik/nextcloud-oidc/authentik-create-provider.webp index 68cdb6be5878aacb6315a025efa22874b25eaae1..922a46cda3a78e2c3b601879fc5145dd9ab5408f 100644 GIT binary patch literal 31140 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 N0000000000004IEO(p;U literal 23316 zcma&M1C%Apwl%!Vw$)|ZMwiuP+qThV+qP}nwrv|-Rb8&X&pG#f@7?ddZ;U_3h_QC= zojYP>#9DLCT#*VAqN1>x0D!89pqz>v2La&E=h$VSEFdZ!&|koOaiUq$qy_o;d2?&x zwa8HBHt#>v23ot?hnRih#gaU&>$-n^SYY3k{-N_)vfGex$r3T=tB9HGdU-;XjY<59Rpee+`|3ozG12Z}>QUF}_isa=w>5&urgZ z?*M-qew2KCJgnc}G$==_*?X238=yrYOe~o+w?83aLKJq{8?0-#v zPIyuI;CxxW=e&Gv_*md)`GkKBe9C^1kFwu?UEn|b@jvT#+t=MS#BYSJn-AR}{x$rs zuWR9+Tkeue694=)-~Zjtey2#=D07F4dO$aJxNYQe^`eQ_8T=X4Yw^5+ge!bUf`&c` zw8gLge_Nt+)L-)0h~B>Z`f|9~0MNWLtu^PEDP=A*hSme3X;rGRrsVj@iOG!9al zs&;t80AD@jY@*>GX;@(v>GonmgN^NLBS+pdepQhH83?Rw1Py4de)S`;%|!pZufFJR zw?WykKhp=?)>#gaK{YW!$G!W-sc2I{+W*rgpq-1Ys~Gy(d$DSba?|BcII_*ul&AMS z4LK>FvZ-o+^Kv$-H;U(|g=}FVk-)Ye!Y7_)?Dnw~NsrjphnEsP{@7y>Xq+tuHLM8Qvcw=i)EK%De!BH`xz+8NmY$5-Yskn%0OZPfg{ zebj;?bIK%rbi>MbQ)2%=n#k7nW>ly?U30M!Du`sa{{($?yj-HS>>--&XNGUh?Do*A zVJJ;POx7j4|IHFue3~@XWqOMd8Cs(mw6{dLELY59c?@A&BL?^gCwW-zJ+vc9P_9>-dIlz7 z7)X0YtE#jtV~*UttkK9x87WeKhKHjIkckWJ{g{&|Z`F&p@Pz#RAB*~sSuZNf``ri3 z9ZXE6|F)}S%^dI87mp+3$;n{KC)N=r7oMYRlrv}+0$1q}xBnC*n#uuQ-w9|0siyCY zO%Q=deY*j|SrjKz99;x=@ALwO&7l4&EZP+lq`ju~?~#PWR=w69G@Y;ePD)xivGzYH z%9aVP2b=rC_iX%X>l(P9_wB!DW}H}fhbdNDO>#Av@FoDvr5Xjvhokio4k4mcAQxCc zC1@DPBF;7l&34a`pKwUx2Y>_J;x7UF!iJUa<5nAWdSY4SlX5dnA0n=_aGgoIq5X4RDma35I)GAJz>}9dEGTV(f zoLgq=tbhQ|qv)#>T?SS4S0s8I3Gap+gUo^Ba;&f(wMZf0;iPpbciSRq6$KB<(+uGR zo5YiDSNP335_kV0$X1jUv$0cjbo5qW87j?<0j)1NP=(zs5aJQizt&bIS0aO8WQNIJ{Ei``!Y1gA z0m6d?n*ZYfcs`ys<11lGsyyzvFCi}@F11>dCp5UN2!uC>{d=HH5am7)LL2PVWp2(D zDF};UcxFJVHo$&J=KCa_FUNjSWBaF{r0zO3#W z*ZY&JN_ckYq!puDsHff7??VF~@p^(Z5dP!l&>xP!lL!@Tno74}xl{%a5q=rav>qN| z(v^L1`)f4JJn1-ZE8BjO{dczO!bBmFHs{pFLq}M+{e^oZy?+un!s*{3^dKKplL5l% zBS_L`*Hv~^0!*X<@b9*9HC}_AZ4&6(yOXOIogy|i(bV){e|Y^rpz7sG5B}^8il|D7 z;bu%9+Y;8&jh$`K_wCyV@f5gM{XRGS#;dnIDYs9f^xxm7G*OR$B^6zQ%(~`j!w@`M zej(f5TD+9Ny)|stvsgJpSulR3%7^2*P>?5z*O;lyn10CtHmZLF==-L4mIrFa{ zvRbdsCt?@1BAax3ZVtunG!v}UZwq}qBuA6ZqUk=v*B5{DQ2G7e;l-MYTq`T`%eAn{ z`o43@710P&+osjot;nxCZ@*AaDYzkiY)+>J|BB3YQCua43aU!?C=oah64=ul!<&$K zau5i~KdU|><|C<*e1+mxcG@b_$1JSRs~mqG7S0Gc-A^8Xi>l-rKvvxbqK&W4vx zY#5Jy?yFITI{mi-zz`SwYw2KZ)dOq9=F|!Cm-(k4Sk8V_*s-6I>N^ZU%{Lx&8Y@Gz z7(Bfu$@66#O@)e^sM!3ETtc5je){|L&szVNEo%V(E1;Zp?f;S}M1c`28#Zs&JJuan zEndx6M*-6<|Dww@)|k(~!(O>7gN@yn)LE(>JHKCs9vc2`ES#hGgxp8k5Af!<5>}G& zS1kS2f4Cj=Kk}f6{~sMxjkxYTSX8p6MHiX+pP@4{j6DyB3ePvsYGwKUHwX=)CzrLc zzWhD^%7@SqfBN-6iH^`AlKo-u-%WTQq`)$0hmjc~6{Kz7`fouZ3wc~dTHq){V8I3} zvYIvmma*%IQwE)JQk3L_+T5z`zmhBZk8Vj*)>hysYj=gqq-cNLLSVmkNQm|Gfi$FA zrl^h~^Nf`bjiLWldvhT`g8p0Y*TM#)jL5YOyvxOw3n?wXw*k&S@I%dXZFBn2Bf6VW z#q*{SSP#FhnkA|;S@>dv*I2_9*_9@7Kgw;cw^=+nsMMPWkxn82#_P!V(i2q|X4kJ$t9Iqr*H89bIuliI_pec!RP%Ql zyX0T)G)ZlQ?h-;t2Pixza?5Mw7yBiD2Bi-6Tz^#;vvQyw)d)Iom;_=ij()NP@#O#z z+7WHhUa_n_XIDNZN9VGYDB8ZomS=H(s{OT`IkgG>|9xw@QRd&qjTOSndRHK^m(nZ5 zVdZZBOu+)m67|oV(SK>p{|ct6%e5OjEnSGk{K38#SB#`lP=f!5Zb9ROU}y&%gr^`q zQApcN)V5XrLz*Ho(BKvljc+hT-RHe2&-C-pa=6}pL;;@xmt>o z5DnWVdq1s5fpIi2aj{x=Zl1?Rq6H9GA#Msun6d~`eWCYdi4Th}?4n!sr>bA?5JRkJ zJXzpg5@YC2V!#dY2pA|NfLj4awRF1Oem5)43w<~B3TDJtlAc4Aq-4MCok&CBEAfH% z=fE_Lw73XRf%HlJH?>B~I9u~jJ;`&YGumf|zOetH$s6XsxelKIXq_4gNe^d4TLYX> zegNKu>jGi+z<%tAOTg-%M-B>nMFQ{L!%wD--~Dq$-O1_@I^&aC8FT+B*oQU$(Gl!F zwCYbhKA!=@msk+BTk}YLXAMqk(Vjysq!~`K1ih8he(slJr}uRQ+VV#lQt$sx%Qrdy zBtC`6EFnXX!Y-E+Z)niDKQ$?cTaNT;tcIpXwWd1?l48rhQ#SEGk2l-FEW(4Ci1T%S zk^jFCkge>o3m!pB6<|%01e`L07)bTeXG;@akx>6k&XwS z4^m-t`Y3GKb#Wy~0-z@0rv7B>7`GVL<++!Q#9XS8uSooeiGH%ODVa;Qc4hf=70Y3f z76iS|fgxu1U1N8)0reYuaKgcsv}6o7Kbn{^Ygn z&e`EmUikU*lHV?-RN^?bbLE;LBo(IJ^tCevBop~D`+MTgwXeigDF_fz+mqM8jV#ig z{0PvbPBhi(JN2=rjH{oI2h^3vYgaP13?g&(A|dpSjMUT$Lsk3z@y2EIVUNi-4To^} zG4FLL@|DOqQhYOT4d=3?XHK4-Nhh}2Kl-*i`T)L$J)`mj-^gtRhAzG|Ua-9gh;3j! zy4j{e*&wxy4Z;9GDDqKjH|d_lE3Ab$9e&ICOKy+Ov(ig=U!gj>LzlHF@JvlUYhpVO zod95$f#^1BvPC%Qn1d3sC*IhhoNvEP9I|_%SD0K<1Iqg$sh3EXjay}+-#|FiFVRNij2v0W9*Ma3CMbq4ol5+*0)I+lqi84K+OAxI3c#wlIKJ{-{e_f zko39hZ#9sH9ACge7v49xCf1f8BShFx-$@rODUn}jy<;<mUK2Q7eDUTeM?|azEUCGWBiI>iQDZ514}I zYJfnmhJ@JpI@3}jIsU{qHrO`zXydpyH78zK^YZD9ewLA43QqG-YO}3t!wteu@QCP|CcqX?oMiWDXMI6Wx0t$FjI zl&aEM_*O(i-kgaaO9B3+Dsr+F1kUhC8E3t8jmmQzlPmA6cQK5xoK3l%7TL0-E3t!? z@E!B}sEi(5$t$C~xNzx6rjlbkh0$%TbH_tf66DPl&IY?dvAu02F7fpAFtrP60V=ob9m47DddoT+Xk z;?H0NM^XPpPZFa3bgVqc!;s3?FeWoVsYHi@?Q%RV@=pHCxvuUq+5O~q z&E_gX&Wd@zuQC=~9zivwfx>-e%>jgm{_U$Ijo!&iZ9oUjU0PZ@UmoGQ~$q zm}=zjuj>rXl!mC(qPg#Ky_I0+u}e^-S^Qt370?4@l1oojuEb z#)^#L?*!IhUzc3@+!8!ILao{U9M+{IGgsWFQ@l*P6u9#lUTNLlb+r}f-fWi8NYVS= zHIUNkM?72i`K_!|+_1|u2wYb$3H?J~AQHDc0i9l7N3^Oz&Z{2-QXsPXq+SHS0Sl68jxiiG z?vEHgdG%up_y%>el;HN%5aZhwh;}w7^gG!N*hZf&s^6c~Q|RiuDmAU<%1Jh;lwtBW zw1#3Ur=e(va(uFv4?~EAdA|3DN@?_aSzDud$H|Jm z9mX7J;8P}6YIX5XkD&0q&nX|v=Tg}ep8l%6B_i#7$E38WwfYb7wvk8a0d+AgqN%u@ zx+NhXpXq3f^JXUmOj`B&Sx>_m5hYdk5eLZy>Vq%e9~QIC-nW$J$GAs^Gb5WY=ZR#6 zr!1P>y|oy;mMMMCdymc3QV1_}VfV_J*=zT}_R}$sv(}P%6oeb}y}ked7E&$`YH$%`bhxCgONasBN6b1AWkn* zdS8{VNBGxLt=DWdVSwo=H|cg*&_VZBSoF9oYN7e5EO}p*wo(IEm49r=+o^zQD!(=7 z?^Z%LSNygX=~F|qR=pmnW9&&1l$4*Gk${l10m@bdeJ^N8ML*i_TM^Be)ES=6*_)#X zJ6_z`AE55!Ga56%+ZD4Xqt6V}7r47;zreT+f3VNRM7T25|7ChiJz}!@{g-tx81YhI z&y`N@*e@urz@co{UE|JlUpHKaCqlC=ct>KpDMhj=k}acNO(rgw8Am(HUUROZ5jtU4 zJl$~~t!8`+yh~;i(D<_y89+ExHkmQW5dPw(WFq$0aC?cV&Ysy2&^@SyAXf>#B?sG4 zo=L3OELaOI42wUXFIHVz{fPS6%2_lGT5ua|E=V21o*YQS-GNPMp>0Tmvz`#b>zzk& z4MO1~ax+17H;}_qd2Xe=H}1T4EsM# zH)EC`qr+WHFUc%;WDP@_Y7L&xL`6Pk1oIDj=aOzkyA_OT+A$9*gTJx_lIw6=^S{jz z5kGUX05NHKLL?+3yNY@u6&{W}d}2x*Wi^gf%oxm`XF^FoN}7;4^k-bgLnvr66L#Py z-L11Z9U@5v)>9^A6-XpSoi}A89@68T2JwGhBfy)PTe5Duz)O~PPT#+}hz z+Cr2p%1j@6SDb4rO$H$4`XzOYJW6Uqm^H*s*${K_OoP8919cX^sX{X*%n+fg?9>NT z0rEvb>W2qwSgGn8b$}3g&tsU6MyvI);tNS2JF5V6(G_r=DF~T{VS@GJBWeBs^*sn6*Jk!>HEUb_Cinv12)8tm5*SIUo%IY_$#V)QQ-)syMpJm7p{YPkPiBDwEMB7 z9kb#?ORK1X(D^T<6z1G-OD`$APOD-IK-oJ;`cXsi1Al;;XShRg z9u}#u*QO4nRp^{^fRkMdZWkx<2A6A`3_s&W5SlrG8BK*b-n|i-m zKos95$HJ)UbcI3~V&74R9Gd7{OvmMUEn!u`&4h#wF|7x%eM+>XQ#82U{cewe5R?Mc z9JH~36sPY2&iu&gN_*uiHJUjszOXPeD_AhahLo$W!9Agx?M?rP0$cRn_g`A^f~C_E|Rl znsJ=bUPQ$u0k>k~qJi9c<{>Pafz3KaH;E@g4eMWuVam@RDd_Sd=@8Kq+>2RMaO4y7 zap(>a5*tagt@3_bHWg%!3cDj4^&K`q(2D%aSHEKJ3}`Dg_n|mcjA|&TOEF}JFL1SG zGy;o$=V*;0!Ll8;7(`9T-nBMABNV%)MTL0l%VJ>q0$m<+eiUq^IPAvtePgflWQ7ZE zlf{bxo)i7uEr&hjY?DI}%@hLV&qaUUi!xfMRlFTg@yRUsLZ}@^`wci%nwav!MnpNs z0xQ5av6X4LSD4`SW`0rO6y?e^QdX@A1oW;?|GA~UlQ8;w@Fl|IUbQTp7w*1mc<)sJ zxjYz=q~NuuGFV0oFA>%GcwbhGIHl*&F(_nrA@vpO0J1L9Z+CWi_fQYi2-ue7O=WM) z=9%rVAoa4XmA?8a_q>lBMN`QdX+349vvm=Q%y@{jsW)xE82jK1WGJekFohr)y-ZFO zUKDaEp%S0feHvfDkW6LvYQp{-PK5twS($2>kg4y|`vZm}g^x?=8mE2B*rw@pLDzFa zPh?hmoZ^Y3q_2^hb#!3$vduc~j5WMza|rVWXa;~D7EwZo4Bi`}aCz==QnlPsh@0r^ z7q?=a>5&ip!}dqym95DIOAHP{dFox0psAGC>xaV1MYI+Df$Xu321$#|zP%HqYFTLK z58Pm7%SqsAf6KJz-hEkg^2743gzI~R`L-AB_HSGVV|O-GhRGRW4R-;TSU={HZT@V| z8da&z6ehm2E{Up{%_xcVZ=W-R*!U*Vf;HO--DZv?NQIM7vE5Ud$NsLi0GIUW@CTA> zq8~gX2s_dHu!R5Q0e^A~yiZPablq&hOjY7;f8iYz&b~z+R8W!BE*T=Cn|XKPS5`G- zr>=RZQbt`;3_~Koqg6!OuhZtpM2`<=R#3h$Zp1chboL@IgCq&U@;pEURA;B4Tz?vYz|leZ~6v`;Quk@51ph0uusME2;Ob1*dvVDec)Z0^&D&;9fUmr061i6V zoVic4$A3QMk0@dG7%kH^)VVk#LTcWm*RB$Tvz8hr!uOF%8td+jZbPxRHHq;2raTkC zXP-UwkR7maAc(UiX6XH*tWcB0AB;f>)s&|#*|R%4Vx3>YXc{YKORu4Ed>?%AJT2H_ zz-H@A7l&wr>Y_F&%mK>+A=0#W8B!N(uZ1FQFaj?ocPsnQ@c7H=4Xm<~UPfJILb|Ct z;PbG#%_<9~+PFEA7gLAb#ZpJ1qM9%D6c3cAEGu;iVU_^s`zonrs5!_xBOe3eT4yZv zSFNJ^W_<%ud!-FruZ!~~a$xUr9Nt0rs~z2I6wRFFz)h`5uaOY2ZtAZslbFq-?uKpN z_{evC4o?p2RfQPct4AL_L)|_8j2w4T4-r9S-~Nf+*{@bm|6dg(wzq+w(GV&%#*R|A zo~~f7KSs(mgk7Vl&wA50*$yCNX3qJ{FptjQRtt$)l++Yhdle6KTvd(BAMI^<^!p&T zw^sYccL9G6(uaNb&{FOvB(JzG@&`qUh$CV#j&x=1R7M93t>n*y8`Z|(gE=(5s$iKp z`Bdq~v_y$DyXQOJ;zbAz%xj}T;TzRZwk-)@S>LoQmTc$s#1@qYw)sid7U8mn)5|F z#WK)@NdAb@QD1IcfgUS@A9l!Kq$@k+wQ%J9&KO#+v<1dKQxvie<`9Tb=PmdaG^-w{Y33F}+47qR z0IhWb6BGN!h-|*d=*JmmE?A>syN9M90+xVy|EirWt3zDcLcP(hj_29mLxyyuNe><^ zcwu0BQmammF02_)i{HM@zz)mGLLX-IR^D|PDm>z@7Ztt=hx29$7{pO{t!hlDjM3=Z zCc27pT?|B#6-3vfpXnfsmJKRQx)Uq)Wh5TM8y1ULYUQ= z&^M9%LF$C;*dalE`0dpTUIpr=<~uJgpT&~$qOUC%J%V2&nVhb^-ie5j=5VNa6^sro7kN=swhVX{O1CuoqZNu89niX6dA1|kyY@;t{ zxaN=LHs`71uB@)_E2H;lt>x$R@Fm>=t=XPA8*@xgx8|qNbYk^kX<)}Tb0#CN>-ccs7IU^#XL=@fbKMgkm z`nlK!G{g>2c@y~)r1RR(-q1>IxkE{}A&Qy|bw`JnhGr8>1%`p8S=Dr8CfgA%;()n* z!ER}ni6_q}M&6<54`ukr7DF|eFJ0Ou<7R!c5 zU)U1f!c}YgJR4hjP@kE*b=I|qlJ;;S;>?Z%^29?FO2&hm=ilE#6!6kKRT!G46pKWT z%{HpZ&VOEp0qS})@zttzgX`Z7m-DlG4~lJ(i!`^H$k~?#rfxCE$dq2_B0+^Ltg8uY z9;0ZdYc|m_LyZ{M6K0A@)=sTBvC^xIs_z*^p+m+7wG$`H?g-hXPxMFG4t|iW<^1Ri zx*HJV)v=mNL$o((P*XgtUG6lCyAjU~WEAM2jsPS{_xJ7zsrBdv&DNbJ>XQa}RHZF) ztTLdQhu`YDX;k1A8cW-Ir!If$Rr~vu?B3Ns!Lrhh6HY*gF{!R<-$E%9zn%;;=6lgr zej2H`+W*Y3PgDNDJx6yGTcMr+7OBI@JMcoY_Q{9@o(2C>qko95(|9)2R>DV#8$l=Q zR%ZdSi9Gb)XewX2`5_2T4|Lbb8Qh8IB{j@kM8sKogNFBWGeSW3oK!Szdv~xTn}E!` z&o1-n7)(k=MK4yRu%LueoZYjSWarn+0)7ljO*$w3twphmq1)Q;?NTYh9HdRK0f!81 zBFmuZNLdw9ABOEGEDU5{o&n!>kZc{~@okB#DFKn9@tEjBB0qkjJ7SBFfUv;k;~UOQgIx!T|jalE3;BaW`9T6W1oJo8YU-7qOEg9W0Zs!t>*nKj}!ESoE9t=Uz3eEGy zn7B?B2}>d*JiZ#9tX%98w4Jcon({gXFV=~fDKeXZkw8T&k_>M3vXs*t_M+JvrjD5e zKv6a?E+>rcs-0F*u@sRm&Dg6bFq+>zH7_6yt{NJaJw_C=it)D|A>~67zeg%g; zn!(xasBD&Lh-QP_xjYEcTfA+RK5mb+ytfFjHq6OrW}bn@y~ZO0tE6EUnK#1(oJdQo z(p5+ow&&c2zrZ08rggyK4v5fftN5emTTgUBXUlBANmsY?3WU34X>04B-I``I2E2%K z+9{?>Vcn$bMvy+>JWW7X()vYXYB*nxIx4GYd)}gsS79jOJ~G%{C7)0P8!mb$ve$}I zAh)(-ELePgs?harUpP2{Acu0?@W%R3s%(bVTnG=F`|bx*U}%DtpZ+9UZrMi~;Kh(1 z=X*k9E#cGv-*6+SR}REAxbl*SDMkJE^j%o>F!~2{bGwc6RKc3U4n<*8s=vViQV^85 z2j*5}L@1x|E3r0)ejxdJ2-+Q2-gM9B{Ma(_;BPXrNa<;m5cC;J?6A=YY}71|d2DS^ z6V98TQB`e(b1Shx)iHv)lx5myr|+xg2y!A;Yu`4=D=4?*gx`S2wkx~7pdoQdDt|!; zzO3gpvP<|r-rmt7pU7EpTX;y`ffpd}*AGLuM4xQ8Vw*X%N%KqHGE#FU!>sdpYHM6B zNk5!wS`sxph^%)7UE9AEK*DTnG#}JXqtCYnga>4MqLJ@`6n(BnUMwm(BrOO7$R%-C zM?yJ2;OeDSEcb@cfjWW775dbd?2eBESKbn}hopBZlK1a;p)tF) z{PekZTp9j~PNmz20&-UBf>zI)XY}+S^e_qfD6u3{7?bDHg~1szh2agZsLjSW zPWg~?O@WI3DR`%}_$vDw6&l8e2ph3F^p=}nMlrymwXLQcF71|23f+PBohw&?nvrhF z+hqoU?+7&=-{Ta7kmquNkc|EV^j#!?detM~|7(R(KYfK2<8g`HEMyI)+PD%lgw&dV+*wSPM>Smm8vlCGg8DJI+!?sI>rW=3v)|V3< z(kzJe<%p?A^?WRwNoh^Y;$sOFeiu$TtE$WL;h8jrjJ3A-Ie>W)Ogr*upU|haf<+D6 zLr9597#z>x+D+SRmy@4Bz3YW)IJIIzEVl=5#vLGU&?Sd1s}Lglgpf}ewc?&rSqq_! zJ=d(~5EYJn@+p!uix(`hu1rN5`xWQW&xKdM=jQgQycCB17^MkINbyN==t}`Ggy!gV z7HT$Rb3F=>GeF@q>8~2tgk1vmtbT#Bm2-E(z)d*9L{4muwcb?z0iMtK>W*uy$8#JT zP?6!dPX0J8)sr&Sld}b6*b|T`e7n_mjH-ZUq--J($xnnn+L0{ z%0dqgrRH6?@K$7D(s};CHga>cOegB381@<83Y_U|I;Bpo{?eW_iNEQzbOp}B3Bo{~ z3dkWT{QIRgnMkxUXcxff7wu9&ZF++U6Y4gGX^f^O5%kyS>+tgcs<%?aPbWwq+f0 z@1RCQiD5%GT!>(uszv+4H7y!DzguD}yZWA?UZN=l5TK{UG8|1oYz@h~<#Fops0m1D z%4K$O0_WXisBuQ4`=->$1&P!YT~l7wdkuk?J)lyjB}bJe7OQ?0J%HBWquVp+?gvm8 z3hqUrqa2{U9a*TlMJ9pRU;@5hJ<{Xs0COB~uZt-+8#b-lbQ|_|5fNy3Cl7mCzZXaY$Zj zeD8_e%Plh1xt1=+lTpNWQ_@I+{t3sN=`v~5F_%fG6V=xavb?{UCYpj*8M{tQ8sp;& zD6gxhw)5`A$pwHIq3#mf0RXt9nn2r+0@T&$LRh#1az0z6Su<>&G?UU>uQ%5-ZGn#r zpd19;jE%{mxZscGg}UQCGry)NGhC$c0mmJi5C^}&1>{A`fc$&n!2Y}_poCqSO*?#E zdko&M6mzi3G!Ogh8(2iUb`>b5pX7pQ%(gYn)>KYw$A<@5^BfEwe=Nib+`FGaiAAQ7 zp8Ej-zs=Vq2W(0-hO)Y3(?{@Va8VTg8gU$E0B%E94-DDBQ{nLBbV`wLu7Y9k!p|_w zGUplkJiu6NKtbBdYib=D)NPX@Fnr4n012kp_rxM*^=pHChdz$6Y!ej`r9z!-Ff$8v zK&+aN^LSY+lO-i3i9sZF&DTW5K z6?Y2=6b2U^n@~)`#+Z&eLp#HpkNKn^MJBcg9e&em!{ZXmVI8dVEJZt!{vO!rYIcJU zS|}Ey$Cu|OMV=E4fw;$Kiwzyk(n6|;?#9C=0O=U-_cBJK{Q3rn6KV_a+3&qb^ISvB z`Em(C6QlDpq)A16JTCz}=H0%XtN8Z#jAkcmMc(;eZU|c-@4LV6 zS(!B-#|PUqfiReo77O|F9j!7(Y7@o_=&U;v@La7il3+2E)n41tz=`Xba6Bi#yF^G1 z_Q+)>SB%dY@HDn@_0q(IPPad_x0J-*ezq{Y(~*ZrdLXiKCixJN~_8>g6!ipJ_&sy|;^xfH7-$S13d2ZR!JYjBjfwjiEzK zGj+Dm)m59ab{aArrF=*Mh|)4}nOllceI|QezEJ|Csfv7b8fSz3^1`S=4-D3k(Y>UC zx~lFOrf@A9ETKgpj(K_+lMIMF)QByrn$fzcj}y+Hy;~XaK{?CQ{{D(XyG>30s zy^YnNEA66jw+40 zouk*)-LTG_GGfbC|5Z)-!{-Q{wzA>7jO230IB2>>BSdF53XCGebef%CTdq4_Ag3|R z;OMR<=H=up{F__cHx7_YPWIV!TLEJgmZunpF*p^_glSGoh8VNMl48y^f1Fk?dF=Zt zK284yr~_?+Xg;siO-Evw3)pv6M`C~*0qN=( zY=iBK?{X?9goZib+Q_B^itumkoeoSgxZ@i)n4@~NpJRK^bD@mp+L;Kjuz7} zQR-*qz&?MB7|Bmyrj;Pe?u=^CL`8mO74Hu=>3l55uZXsAil+(*KCAoX91_-3T7662 zYr0;giT{IRH?)^du~Q zzF0vwt4dm^ze1qYA*3XaNM0gy$1;usQ` z{@A4oJRBDEiqs>gwdEv)Q{1X=FPmF{PHr!ii&<`+=7j(Q#P0P$??y#QO-!;H-F=!U zO8%+a+(;Ds`>h({~jQ4H5%>g3N z7PCJ6F7hj@>`U_do!H1bsFgu$yo}l?5%ZVZiAH;ElTR>6Oa^=d>utm z6ib{~MSRE+BjJinS5*1q!Ly^acE<1q?H~2R93ZgNO!pKXbps%ESnB%?9|K91D=Cq~ z^-CtraLWw3BX>lCszJ-_wl(DYJcjU+A~zKZWpZEu=4St1_()jGao7Bm)MoLbi!{zA zr_HLVpy@DOg*T|-Tj5ASZn#<+U>l5#(8yJWqhAiqH5CmkdB?e7IT^YfKYg9v-$_d0 zhC#{@1MgrC&pJSh(F^b^t2O@@pi$`C~w6|DWSJ97}LM^h+Ez5?$H#oeRur; zQR?ZHIqJqMZtX4U{9r0KmuNBoCte{BKGZUni)GXHMG@Y@<`JJ|wxHHoSxqY_HcG9P zP`1HHsL0p@lBx$k7!j+-00ZJQ5d4UA8IR`0v;=%5J-)o!N+IZG_@GbJ9n*djL$j7m7|?_P>`W5B`Mk zr{z$m0~U) z3&;YRsWaG=4px2nRG$QZ3b9O$TU8~Yi^XAZ$n6&GeWAr2C>(72E^(Hz#>Uq|W4xez zpwj~5^&9Ylp5|hQ+QxQ6c}Hi0JQ~yl0R_jDoET4*Jh9Q!P<3l;ZLW4gH_Z;cf2h3> z?=5vI?|h(B7F9h`S6 z#?O8~+spLPbA2UJySJWE$A5K@1d?KhtfJ42%tXR}CB2?yB|LCxC#@hljc?Yt!@>!o z(WVYGSX$3)p_2u}a+u86`(!whv4SxS8xSFj16sMU>D5aX5&HAIdSZ5s@hlV0TtZObs4MW?Lt6D3}B2NorF^<=vvh zWp^U!#HZQQ^F!8&=qT~gnuj8LPC(buLkwo-P$wOS5cEUYoe75`?=B?TrYr*scYBFsAAIH?MEmW9`!LzHbN zcR|@~V%nGJz*3;pP1b2*W};>Pvqcmy44Z|--^&x)|7N~?hCs80|ExWPo0gvW8=KLZ zPTf?Ueh=Rg{Sj|#JKhc?^uA9{T1abZb^-v~O*+hoz=1fC8e*5c9KW{K>iJnm6K8l}cZW9u!{wN*WkrDF60GgqM(!o$iKz2x2Uwde5ff%zuY3a6} z>7`rBVnig@1ku>t?RAVS!8sq@AttUBVSpz*#|7+;B9X1#n9@ME}H!afZ} zO28yW3>l8Trnvk1A;AKi4R&=NI^No-_W;TY8b_2EYl|U6cNN4Y$!-g511{a552MdI zfvfp%>g^0r6(d{@3yyx8HN5@OeZvy0_)*a#gkaiBdM zyb*c#!vn*ls*Ihwm@NPi^IDuy*bhw>Wj)uosET_+sYE(2J&GJ`2oi}^p>W0f>Xo*Udxmz}3=y*p zwr8-Rn&7`%Gcp6kL2R@3_~9ZMWE>nIkActRD2a`bGVs64W5aPz=#NvywcAFS2QXq8 zRz@^EypKHi=u<7#Te?4&I|E55fIc)5!4=3Jk2yQQZ^xMUyX)^|kCn-Pi6lbmK7v6w z)RkS?0%;aTmb)q|KvzH~V}0RJ!WsI4(pjt$tP~vTkU=53Gl^(~A~z)@`L74OaI$SB zluHXMZf*-ObsNzy?SJi-q`uG4!wT127OheJ`!H+SU8);N$-e}DslcJuV4lolG38xd5*pT^y6T^aeMANdTKGe zdxGRvv~a?8!6J9iMH0P@icf6`Mpu&52vU%BoVZV@N2z6bwUIvB@~J40Og9( z@mW$GTd1_7LKN*rZl8=~%3o&kT_aTJjP-Y?q6L!*e&Qoz_t-xHfM!$LOjw1@2>cLj z(gIpY3zFr>rI%xsY-afg<8}icNQAMGKXt<(^xPs45sD%__)OosLfp|;M8FOi3fMK6 zxW{x?gRJ>?mTKADCxkDqRhpje%eoj?xj7j&np5dlvHQn6`FX82|Rdo z`NLg1^}Z(3IBiWMD9JWQv!Y#3CW~rSpy?odpbl;!xQ$CoWj%Xp`J}b9GhPt;DCLQ} z%{N*rKOznqs5^dW@DN+lKID%TkalbKta3`fA07_t12rlduEKFKj{*3SrQGr_Yp^0U zQBxy+Qu}SQz&GDK`*;p=`%K%u`r4l5g{EEP6l6f$#!!gyQu!z5% zc$MM=LCL5^;0{FMAS{{=@Q{OQmc8YE8PJap^R0=4e3>(BAaZ-z0r@8S| zVWY_ABfb?b6M-o2qy7Bu@PpB^!hYz=aZ=+eLujwMU!tHNi(w4?oD*@@|u2^;C9sW zj|zJwACyHt`RU9WiR*i$j4sMx2wMfe)oaKsu)iea0eo*$} z1dMX>KW`n<4B)}pBV&d{g4h+aln>i@9 zs(++1-|?<EMI3?8W0uycx&+b{#srd~eK3*RX?f5@J#M0h_emzD_D9d?% zHkN(HHLnU<9*lOS_vCPXcoLM;Dk6LDZn!!>7H0Sf1Iro(sxMg+g@tAh3X@!8r?s-q zd^Ka<^PWNM=Pq$#Yx2;u!Y}7{!vvgyB|#_dz-T6wm)|Hz%0)R_0n*)3okZU#o;_UT zEn-K!j3?-k?ByC%>0_AVIS|RmfZxq9f%fbrEW3c^D0yYl=HRc+YJp(Op9lNHp(}B} zga>QY%Q78+3!E=Knih6bk}H1i5&!tk@tnV*vZC=-a3!(2IX)=&}*A~tU2(lQ#QdG>bF}C**ePg9p8^e z@~!=!8D_E_gD-5eIj&*LDDYjw_@^9bp23LC;y&-fL^!5pb z7e0Nvs00J?8bZXU4=U|wLZAOHCK%c0tBc)u@Eh;b+DJN3WvRe_SaQM4ePB?z8gs_y z-b_jqgz}v*@tQ$-wt3Pl>lXhN^NQAg2hN0!u0lM>&5Ow3zwN#qr%~Te98m}>#8iut zR_`dGW1BO^7h;r6i|WggG)2qIX9FQB|Y zxdx;y8ehE$YV6%@2_A1SB<73X`ewgyT924l>{XE?&||{%l$=JsWDAYBBH3!yG_{Ip zdTQPeR*l#bh`Q=xH>v=ioAcJoxD(o4>rD6E4u95U`5{v`nz+*l(+JZD(+JZD(+JZD z(+JZD(-=bJm=J>ht;-j*Hmkn(se}-w2vY|enw+SI1~vxxy(6}CL>4rC4iJ0|aq*c*pOHbD-ccF%uTb-mvr0V)QR*SsaV^_1~ zkM%ZEhg$4(^7qA{)}vu5#HkAh{@!^TK1y-Zgudgx7$W|jh*mqL2ng&0R*});Y`y(rgNtE&)hxUnSI=AF$Ek;_AuP$?iqh75M%c^vT}#1>tbTRxG!cN(GJ5il%d8PC&sXcTM~a1|p> z9ht|}utNJjwrJNedQ#7|OLKey3bHoy4?aH%58_T)SPVP zGr2MVp+EotOlyw0lzE0L+!&Tgf>dy!89pEs;@!&H?=pnn)dC=jUyjacM6-?@H&6cSt)e;mI@+#G{Sg`OBw|38!3Ne{?xcbKk zY1K;<-bbfrSPY;OM;V41a>?eZp&v@a6B)R8LNk6QMjuDM)~R74{{0I^?Gn^6Ln zUUBv?oIi%Y6uZq^nAGE>!%LkFtpACK~cc^*+iBT^Hs0;jT9Y^ni zj`X+L{|hfGQ4TlTcSua?;d@hWFf8A|p82g|%jxzqYr4(77tk>5f@E75Za>?M6AD6b z8f4t}@~5iivmh03ZLu{_)9b*E!LFSGeKoJrrQKKz->Jd$e{+*RYrEWuR!zO4JO=5NCyAVa+x{J?Eguaza%c;z$PsmsO}J__Y}MRGcK& z8~?NiO|vMm&WwNA!L|g+uH^?<7Xb!=h%7NI^-*Fs*+di@kt~d@5uR8kv)myZKBc>k0Y!~!_NR#JO zr;Vcp!G3Pdj7vjud2XXR&MNLw`iM6f(QdS~gDlou0H0_Ag+|=tXpd2w$LK8r;_8;` zV#?kl_%x3$+1G7$@85MXF=t{Y)MoQF8Z4dO}a2*9|tKm#~Ek-`zWhtM86-j<*#&)!V}%gG5fK>AHLhmECs zAIGJCiZ92cAtsA^trcFiyXaHK4wNyFJ~jL^M1G+nsnyT&UpGtrYKT|j7}52U>m5D~n>p$|a6N!qobeQ%Y)l_Fhm42*wcKN32wL#{XJh)D^DTSh9~-Z|is zc{2!M(1eibE|rL!;2F`7yye$1)1JgU!~hPHC}j+~dX39tFoi$S4l4qPNO1HlhafEn z69D*^U8w{GhvT>Mj<&#_>z#6jI>-&zWB1E@){^;0zXr>maT|Fq`;!po-!V42)m1ZS zV1qh+#m)}_s(PT1NlHoO*6aI`WnZW$U8M5683hw5krRI)jGBeL`m)79V=?sdihchgVeg$}xVBo_+iPA!nu4wffAwN} zhH~fQ%%&Pl5CdwUxUpI6x_j%?RoBp#K4CV659p7>6++29{u@n&?7uHp)#Tubi zkMU@YFdkk6z=_A+iZ#vG$HAmO5%FC8?JP%nwpcM!Q_-DDfJCP$=+5RQx}!8zQZjv+ zi++LXEP3T}rLN}*llg=4${s2u4@B57RD{zM>RJFyIe@B~N28O$_3?ocgT$wXWW$z5 zFwq0%Ut#R%qiy+pHkg{#sv=$fQH~HesjVu*I#GAT-t@c}t(X+%;e$Nq!4rT00jKB< zinB+a!kNn3Nk<|`A=yN{;2+H>xWnMWv1nLxY`Wkvp;m&ph!h5hCyWVMDyoBACbWP6 zs$5iTl0_Fsn;t}77~@(K`pdYeZQpPUN+H0@G4@fSx`++{qinsLJ5D8WqoereZ6#un z(D~W@FUoabp-z&Uev0lQ$vNR`nz^&%A03;T{{ESs;sf9L3JLZ1vQ{<8({;`cW}y%p z9$P!Q!Z89o2idzu(gxn*QsB z6^Vg8&npXP&Q_Gb5gTt~7zK_3oq8<#g5?6*m_J#T0omog8 zm`B7?O|_WeMNMt%=?XR}2Hmw~ea(7dB5(6_&EDfT!e_#Hb6tkyWh7klGEC0S(?!Kj z_2nx+8V6Zd-ldJo9XurWIaOW$5UL>3O6~B24rII#^3MHe1-uJ42#OE(l4QM_kzBPq zg={W20xvjwjPkc4HWeGgbJ$tZnAZB@+=`E%Ueb?zJgBsvAld08(mpGhMuAQe@oA4b zm^M#Yn^s@r_(g!omQ<_dYa6x~BAD|jj1&uud-Ptv$`vNeHJ!$W4B^7=zKA5LsV$?K z*OYUA2{!7Gx>Gwj-M90z#gWF%z5>NlHEG?=52QfG{5>3R6+zNrB7gg~AQR|aenAOs zX9m89O&9N34MuoEdgCB3toL%BNbCtbN$8}Xu%oYe&{Y}mxyelRnpcVQkjd7FSqFmz z)w1l6qn%$rzQbPR6~OARQi)_@<$hO5`29Flo`k^|ZJCHExF(M@tTO6iVG+|usck3V z17)pmH+Vb@-RTcf5AT9DqJ2MM+{!VbFyH)>NVS|oSzg;}%GuN$PMg(pmrsdN8hhE7 z6n`cw(6gSZ%2$@=QMK{kp17cjn%mdXBs72}DdP1|TUKGR6E$a*V$RZm+l|ezglsA| zhUbi~)&^>(hW|^z)>aJOv<3F)!n7aiU~?;BE`+PCA!-r$S7cedLF@eInJj{T_}^wl zRYAMNyJQjrq@wZqtf8b8x3}?RMK|agTY|13^i3|0l=Rk%gL-o_%r#v{aQ6fAD!Il$ zvk889li`0e3H$_V>trw)d_) zI!V2qd$e0C&8K8+!1ew2@{aL7H}X7U0C((wK=^|Q8OJfza;3`h#Z5yAI71k8i~jpO zrQpWfqzNN`rPiJlygtDnW8x3ryRn{YjH%3vVo?k_MA&|^mK8to^GGr))wquS^*RYe z+bSvAfG{C7Rl_zZy}v!N^%b~mR$qJ(%ssA3iDJ00()5{Q>YN(;SgNK6(;?a0^bIY+ zR|Y?YTq7)lWqljBJ}BfLyN6=s_F>>9{R@NYPm&6N3E1=Mu^x|QCVy3i{+`?;#ZQ(2T=Id}^lOe~d$OK(s>470eeC@^ z3MKILSNDx8IZ1=J!Fhr1`3x{rhvU;#uxSb)HmT9?bY2{Y)vr*YNuO6q+eOU?sdBuh zT&Bc?dGL3Cij7*+;fx`;I_;t5VgT&vqQ8g-s|S7p5#%0$6~~s!xx_qWI!HXnHDj~u z(PH!4g;o#aZ=^8)Y2~;TNN~+Cei7K_mYMlRKZ4yq{m&mhHbPGJ-r*+2p0l(xj4QWh za67C>A7{gr{a2Zk>n8nGxO$@6tGKQB4DP(0^6!A!Si*U;1!KEf)ErqV!ZQ7$o@LvT$oANv8f*)onD=H z(c#Yqb;dq=8OT2dtOly)0rZDSVe|^DqL+j# zJ#6JN6Z`8D_pysTIRhGqM!*G1z6r<-O?bC8TO5=$H}2(6pWZK+ZVgD z*pgriQU51Hshg40jaM4}v{Tds8^aye${@Rkt6rKJ4^4y7OtdhyW%Of^i1o{*L}b zg#Fuwg$j8Cz4-8NrTfJC@B8C|ghmiN4Z+J25r57}AXLaXin)L7(SzaJ1Wx1x80-T|R?yUf&J`E|KW0MBwxf zwKr>tn3zDvz|T%NMwR$uB$ws&CqgKlBiJJ8zoEC*M_H|+hgbS#wy6kavL#BVF;a}l zPiNe->rJk=3%pUVAfsA5j5bI{n?K#ExG*%f&6Iys_jCR470GQpZAy33<7hG6 zpjRp;K5Dx(#LmG>fGdBRzLP2PKkLbJlIB(!WWd8s);&8}?;)}-8B=7jCE!#K002a* zxFrR`p@XzmF1R1sqcuoLORpN?bl6nQ?s}cP6PS)4{t_EkC)Nl|ct9{R*G`(_XFDRu zFE?gFNdwoWp_|wBIVR=GA4HPG@Y-7WO>mBvR?Os|{KI_~i9MF>2zwTA+k2Sq%Dv+X z;B*Bxlu2Fzua1pMH}!xz!ukE*sw=afBF)XV!VE2q`eK+RZ=$8<4SyPm-1kokV=zSp zJW&H-V{QZBp(_9Y00bM~Fm`yrnNJjIQGXbC+%)4vl#9^74srtOoE_C;kS}1AN{VFI z6wm1s&nNC*iH8+yI>`MWZ|4A4Z~$tbduy0ezSp=rtuQg#{XE-!F-R_UA;Pu)(KDK4 zgEs~2pqn72dJq=>ql;JthgI0bu?>xB9MdHp|dAy@tyAJkfZ|G31qPfYaKe z>nB=&0LUi?vhC1$z50wjNWr@I?+Y=jGI*di9r038ste3Ry%NFCq04gU@funy0#=!*^WD-qk6f@_Pj*(HYQE1Ic{(#vjKAL!mJOJTM zx>ZRP)%KK`^tw~YMW>Orb`!D?eU4GEk1Gr&)yG+5r6_*kW}qK4?JtT z4dbX87IOOQK^0)t{ttd=N)t=P_7Ztu2C~5=9W|})%lL5uI>|@rL^af4VHw5hi_~Jq zT2b(*54?sd96z5dV2#ZhkQpr3Dsm-l%)GkmHr~I>iI{P8fKSnnO3;#yhPajfOKzFE zU(gMAWH_W05z-`)^3_U*uoB6l=IsvS8-`2owT%7zY+{wPtUcgo98l*%hs9cFUhM34 zND}h%Yc@)zcRVvrWTl;iWznjjTx6*WC2GLsd;?+^OZ7tJ-+r{U`WM zF_Og)00*ex0WE6pE@(9TZRdiv%A>na_t@nRvC6EU%@;?!OKQ7R4lxnRHse+jEYaaxHxd02hjTh#db!q0#ND9c2U6 Vo|qjK&maH*0000000000007&26p8=< diff --git a/pages/02.linux/authentik/nextcloud-oidc/authentik-custom-property-mapping.webp b/pages/02.linux/authentik/nextcloud-oidc/authentik-custom-property-mapping.webp new file mode 100644 index 0000000000000000000000000000000000000000..10f11c4058da648db0e42f08d193056cb0c736a1 GIT binary patch literal 13266 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 Z+q0R~IK4|hoW!JL^alLThW5Yw{{hK+x*7lg literal 0 HcmV?d00001 diff --git a/pages/02.linux/authentik/nextcloud-oidc/authentik-oauth-scope.webp b/pages/02.linux/authentik/nextcloud-oidc/authentik-oauth-scope.webp new file mode 100644 index 0000000000000000000000000000000000000000..1dec150c9c69cc9ace0695d0fef5c44099e2fb3f GIT binary patch literal 9556 zcmZ{oWl$Z;(ykY7!JXh9+}+(FxVuZRg}b}E1$UPOcefx52=49@77pLu=T?1ZpL_1@ zUsK&(H8VZ$`}`PHSt%(6DgZ!BQcOitg@;t+uXSQCAP<6$78({pC`snK0#ykGIoZug zLjwka&9@!*YMK3zTji64`^|abt^li>fFZcT0Oz-^_q}t;H|5YPt~Z}|xPsm>p^5jD z7stJa2BSOSCeMtkmzQ1@=BeJCkDm9Lz0o%so1by-+;0(&0mjT9 zqw}@*`ATjpHz4X`?%nFmYK;4i`7Hk-pg$o0Vd~@KGUlOtMGIX1@o`nq(KuG|lNTFj zl)PwpUtNzdI>s#NtGx>yW4xr~ze^v`{;1L%=P@;6eL)s?BI_9Mp%)MK?dsrQ1@R90 zd!dz~f%j|SQ@`e@u($1ig%>MKq?c6dx6u&MWk`yq`)NW_0Akv+eDE9UzHCqRVJTu| z;O185HiuvotJvFeY04%vSJ}8eisF~SH86SndU=w^&+JoWkmqdOLVOog_;>h`>E5SQR^OzBUdeW57bUR-i)teT9IA zf|`?%(o+pWMpC!+QrUb{`;8Q5*VZ#U81#0f{CIaSIB? zE2I`hbupjj2+l*8x@Ks$nc}7(wj~@fqAF0YvJt3$8-Ly{+mb##IE(TD*=Z>*&oKK$ zDB~5~UV99wnJ_vfD(7H}zG%87PUE|9{=YidTl~x{-(%~pQH<5S$sO43k8m5Y4w+)#RFs>4qy0h0qTi}|G@AfGgxZ#p`v%R^q z+L+B;@ww@rl3D&kka6=gZT}MIflg;rBD=phl&HwhcuPTv_;fuZXe}pg291JfquBv3 zp=1yT8X9j+(?1j~x|3e=x4K*0D+!mOR-2V_z}CnXZ-XW)yFA-KEZhQ+9guu6_RcQW zFMAk(`1?mB8S6LVbTreYSlty=WGZBznbjm!__~Eq%0XMpPFGItTgoc$23|Y*KL;XI z@~FRHM**vX>OvJ&?Kp=SYB|m+76YWLlb0my##DX9tZ&GDDA62f#aM!FN#3m8w{{Hw zJM0a#Ue3RVZPm(kvp_3JOX~0Mk{i+Z0iKlPu>&EbbU88+?i2WsLWS7n{fA4HRQMeE zq(d10P9E%caok713dr($g;cok-Ho`R4z{8m^Z64IZ+y{BcMPwd;vMEo0+O5%$HkIN zWTXB`kQzZfP=tGyE;fU^Eem<0m}?AqQWLr_Fz}Q4`)m;@q;}|9+Mgf-SzrNucu)Z2 z|6bzqI%oZb3a0$d!*Yv%(Bj`9aqs*aC>g}=I{(d-e{~I*{{2W^OaDLe{2w!pPQ0G~ z^ELm$Ct=&aIaR~|?}7eb6thbDyBpKro8a3^Zr*=6?Eh)I|4hy*_5lFzA6@tzFn~aa z0412;;rh(2YK$sk{ji0cnXLAxonsh-U>vM0?Y!PNxgE+*&Sk%4upm+CAGRD9#IUyd zF*TQLLW~=>wD>>>vybrkVQFS0zvTU*d;h7Ut~Uc``vrOsB5*VzJ2i(huI$K1dD!EX z!PWrKI?h@Ez6B6RcAWeO%N`oqUdE|_?P9Gs(r{Fsd-qEX*CO4wJZ4>B8ktJT2G}!d zj#lsx@F%wR9%$+mOvi*5ha%)AW4H}SaVl0Q*lm7~fzOiT$Q~c($BrgSsLO?#NTMKe z`K_?So|1@16Ost;IPUm}wRJ0hx8nQVr z(p#V1m8>2ow{YDhFdczpgE?$;jlCCvm=%J43u^n=Fb!8Tvjt# zw7YKtT-S@k-Sb0wBzSOD_pQ_xMQs>{?Ty3C=M((CD6^l_>m5W!PaNNyFdVQ~Yemux z1VWivkjciFth|nYM9bXMl3qu?g!6l1RXeGIXnyrhhUZL|#Mq2nhu>urdqYw+9L#Qb`(g8%fF z8RgYDJkCbXddsUk>UU+OyG(WvuP|!xi;&do@O9GKzwZ@ll(W6q%_t>j5*?2GcU*n)(oPK+&p$} zl)U81>xXQURMVW25S%q~KGddZQi&{kyL4R!u{`w`esje!5x?{{jyi?V*mo1s&xCO( zBGdZszIMv4PO7P`^=%iCOg;T{_b=(_41KIzZ@k}o!xw-5k+SE`3U1$5`;(cWw#~sH zE&OxKr!Qo0*=7!S-0Z*1&w{{MMC)%qw%*=5GN5NXOo6^5z$tF#H1e86%zR*#KsK~` zkvH|u6y)}3YglN;{hMuILksFwvdZE}>0$piw7!@N1jHpBP3eBNlL`R;xp5aNLtMk$g?jhOmF=r9Ge(vtVIG5YO{Wr# zqL=bdCZyXFbmf($knw_|jxp7Rn|=XO?;43Pxf3U{x#rsu%btDHPQ@6vAoH?De8W0_ zx_Y6SKH>9zuId_wN_zC0!4)c_?|3?KVbR)}DavFU?=vm4we&J+6YD;SE8vB5ns4Mr zUL#wzYP!_IpD`OVZH#BEXRBG?6mnFsUa!5k4nO*8qJg$ag?x20TqhX z=EehBO5dVffk%fz*ypj~R2u8Pe6GJ0vT(n!vQG9SX3q1amMCSR#&(D$ToM;%R{@v zZV&I0?SN^jm2hm$@{ccX@rE`sLW8t_7As}bO|HtpvFz6%0M^@KGkW)<$LTKy&g*e ziOSQ4rr5Tr5GQ^q6%%Eg1m6!&;NTih(M|n|yevR*dvD*8#UmW-$CcXc(}uH6_~d5% z52~DP%^{k3;xd0PZ;Ut@U#=+oX6;bx?h^b#3|O~A>4RswC8wAxT{4d`-|b~1PU@%L zvoB{Qj5K+)v2U|XzRMQh2@zjEZ#~y|@9XI?@(k&4g;0s?q#}MLmNei}OWl_bUns)P03G5c&60`pZNq z;gRVXF5&c)kvkYeVS?L8DGH7u#7IiB=7{*&**fp#we6lgjG{(iXaOUy%P+2<_foh6 z7amOKg95xrulFQLp?&)jsO2Yb9CA3=03|z|h)EqBVT6QY9Ejm&zNxT>4jfe!vn$-; z1mq}9$K`Z-4k39tD!vfY73#t(bWu<>& z7Wp(TNEaP(#(2ofDnk)b&J-$WJ#X|}g#&4%*jjCk9|{0p4mvy^Hb{}}UF&ZO#>lOg z%i#MYS9;QqEq;EjfBo8_YNd@#FLTO)*q()N1w%@K0mD8)56}xatzWj6REC{^sjgko zR1$ik@vo2*%AsHsaIZlnCW4U!L5CcXr1iLo8Dd)pPWXRAGwDtFJoTIbGsXY#f$yT{ z2GzJ{4Qtf)+1sNe0^Loz!UDd8LthUVijMn(CSMHfTGr78R~tjC^y-H%(4Xhjlh@&d z>=?NxhQW@71ro(Bt3hC@BNyc|1d)~e{5k$**^_4=e1yBh{qgup_j=I72S)S0j;o1W ze8obo`} zYEmHTmax{1M!7lQjR_qLR}@WiWQtv=R6hBMY+(Uyu)ZA&p^}P%HF#S~Ryg2$R84NT zjg*qj;I1*X+o=Zk%(A(|3{97sfyCY<*Uj5x1NC zQSoT1Zo;)X6Z~tOCamibjb<&fUv^l{9e>m90TDCH;R~;0P&ZnNKkT*G-l6tG<5g9L z#eE+^cWU{^g*$UXlI_(as}CzWHQ$_rTWHA=96 zwEmQlO&Qvw;K*&T(x-wK<6{|js<_x>PdRmqa4njKa3?9x=~B}N=9vPC64{aDZsr~` z+&t0x_p$nrZ!Ykfw_J%84h-L%EAF>{9DXLziYd)`w*4db2!OjSR1CU{8(wxLB6)5>bZi@PW-q5!LH-&5}I6 z{b5DG;5FZx!`#WK#JKg6BETG-B@JWI`snxKlX<(=<9Py==+(?mmpb3AnlhxO4LKCW zA4Y6nnIj}V4m~KQm-ez5`*?bru-DUVWvrNO-*jzga?ZN z?ZHnyAo0x-gDmPZUQFO;ks}{4#SPZHnHs2E?W|x0tDuhTCd8b*qe0lwsA`i?Q`$rG zVlfxWOpQ^#{FmgS*SU2wyi6xu?gnQZ(M(s>(%NeaznZ2N7o%V9&TJj}R0*WmD8lq} z#IVRhHWe{kL^_+w`e4iVean>ROM4_+T*&F;K~C+Mx=)i4DvZL-QCe=?UwWiDX_hW! z6_Ra!N8e>|nPfaFVY+R%!&{xDDCF0}Pje4QBctlgE&AypSAM5jf+tU0%6)EkLJ|TJU@*K7Jk`OE(Ted5sI015mGo|5_Un77* zh=27p1=Y~U9r!Hvp2962`0@r7L}_iS33W4ljxBhoAQQ_@t^bW8hOD0x$pvsLCzEBE z4>`1Li~uk5T^^z2jAptlrRkY?5YRkj;=-i_}=F z6MzB-67%uK$?yH_p+3*B>jbc~dtHMqb>@vJZBTR8P(B{TWVEtT(#lWz^@2ny1)e^5 zVoas%!>mgR-=azDAua=Gzp+|?#$$P}QIP4EH9nKa>jv_JKf7|UxBvB9B7a18Z>@Ln zEy6cmsNDe36*ro34d!UkGoHhAS#zx*ltG*xDk?UfN}XSxpGus1wPNkedh&)AT)1Ku zW6?M|SLW|vT?F28RvehGp@1-0Xxs0A!t=xQ10NiT5OHxS0-~O^ow6KYgJUm{%Hb|+ z_X&|j=ZcWZkb`3IMn;m2<@@-qj?JXd{V|#-qDFUD5%6f_*@=raw7Q&h$us z#Pufew6Oq^5#lR950~EAiorY9=y@q59&vZxOP)R{D9a=*o&sBsZ znZ2lq(qs3}m=ZOCY~!H8F8yR$6a+TotbxY+*0o2Z6XSO*<#JleJuOD(8MxTr^~bl5 zl2Era2tHGe_Gz79>EjS&&GxE^Y!-?k-ybm(cV}@|==a2pVt4O4Z!l|uL{O+MWNdhc z&N^%o?7>bJLkIN{n78uTo$k;gEp`kKB#OB=(<`-9h|~B&T~Xqf6lbN0^}oo8mL~L2 zU7sG)lj%R+Qsy)uqTKm1lYLKgMh3TpNErG2qu_qMEWkK)T*)k`=1lq;+iDxVVW&)W z$FbUb&6sr&b{}PN3A}U0kDdVXyw1biy7iIxuy}3$OjSiA zteaFovodY`;l>S%+1lmf+wSV=Be4y7okJQb7V$U@OI3CguF}`85dX7?omwE9EtSDs zI`S!wQ64j?qxTOzmcY=_6*zgjV#Sd6k3Q{Aqjr}7)Nwd+xK)H2+Vz<>F(Q(A@K6U9 z>bFTwSgWz9j(}i;ple7Cc@5szKB@Hjh@+Zy92v`ByI+&cI&NHiCSYZL1UBalNO34%oD(Y8F&IBVB<`${T)=9zA@fZVYDFr^j52eSe64+C7+SdL z<=qwv598>_y!ISxR(SbOvlUj>-Gu+Jzy(SIS*md-O@W zUCoqyV452IgH%d7f`f==c=s4W8q*Z=`-IynA;Ap6rvSXO4Yqk+WbZ8C;*H531V40a z%f4)2oWL)OT;kHFx$e2$QrcptQXRA`>L0e|(Y2&GI*>{KwxxWD5&YxBda^y7#5ijJh^ zqh4)p5`S#=OVayd6ILyU%F43vPvtiz z(Nq7Hxl;?klWX@L(PfbTn+hhAHT_n)L|%+TN1c2DY=WY+=r)0)8>60X1D_&A4RUFP zc#uxr*=LUw>JlH~kOIcbyK~p_w#iR)_1x^N@m!*kT@8!r;a`XY!d=>zTh*GU8D~;K z;g7M=g2#_#Dgz*`ED3ck?XR~$WN6o5&P2H98HLdWz`6lu&$xLtAH7PEG2Az2$ z2tie7`XqgQ!SQ~6$Z?j{Q+$}Z?5}10vdvYRt2NFp#1~}69Lz^>dWlrG$2neaHgW5D zvObh-C(Yc#H^yQ<=%Y(+op3wNOg^{Cn>Q|_mlCS%n!)QV)Dk@Tw{_x;V)i31`iRk< zD@1ZFni2}bg*^~X(91_>reZt0Iy?r-Fzwsbc~4mQ4_gh(ur;-|^wk&|W#Us1V_)wG zpz}v6MX=tt(~WTro^;=6bC4`n@+8{~GTfX()#@O>V@t=L6f%ReHJp;PP9{vEO=Z-y z8TyG8*BQ2J&x_TLA%b8OXZskciU;g8dC1eT#rK_B7hGIecrv(TIV8|wZKzI`aG84j zu$W-soFpwp7{#i^H9mF5lo8%DYIFaAfkEkJn`$nR|4C}UUMT^|W-2w?(jUv~_M3=- zYRZ&j)z1g}OU>J@pfzoRnT8SG7(3Trzv48O*jJ+3uU}1uiZry(UCIT(OAf{{(Uv&N zlL7Fj{Vxx@2#m~!Or4$(qp_0@!K`(qv>v8UguG3n>_Q#e?)BL%rCH+e8(uoh$Xe9D z(q{ag;P86{p>iBeJj}#Q@Xr(0mwuR!Pd^;xb-?Kr69s0y9jkEr(JC8@_WEPOVm;ls z{K&z8Cq5g*J&M89gR~Dog-U96VE|pJe|^_Y3pB}t5Ju&)J*n7K4+az0694F5AMgqz zPTzwYMZTJ+ysXV`QJ=(}tqkR6&(ym}Mk-idgNe!>j9g6ep}dGRNlAN@=$tFm1`}3* z_%U8!=SA<6D65`_-X)pE_pWd33Z+pxjIZbvo)AKLJx>|hhERY$IY+J?CEGq4bPA^O zC{SCQEk8<5M;|`XPFZ-a@zBlMHZfeb+>fi##F(pCryfE;i>7G=Y$XhYqKG`L)=lErTZcJH5$sXC zyY`~`-gZw+_q&Vau{`u(*#Xj5Cd^r*`|L^=z=1#UQtyV zd)EyF!i>CWq3A22s|(2i$>$ctO*&SWP55^s&YG-Sq9$S^pG_RVWlDOZd&gE}4-dks zq6we&G$y7$SM7tSy%8hd6zkphzDgLO_iQy3=J3ya$(3uNleF z>(UM8q|`+~f`K%7Pf`Hj1=34Wvt~`krWeXLS53v>7#QO;Kt68K3mBFk%=!gcD=|U4@z_Dx)xlpOK*&+>%UK(# z?Q1Z~OmW4Q6>2jh?w%pYeSQ?$Cz_rL{5 z%Jln6rU7@u#UZ{BiVlHNz$A%Bcr41={PKg_C^+E|SpeebK02EM1@#+dEyAHFlds zhI06G4KM3BM2i@hwy`X75v#l30?Gw!7=u4ntGYc$Haj=zV4Q*c2T(U#I8AlPS#4(N zDVc?L&yotINj%y~Ib^zDI0B?S_w+3F#e@oE`C%Eq^K zc{K~L4szi;W?K$8NB?pK;5Tk2E-qytMG~uW4OSS7Ky|;li0looF?G3K>A3aIF7P9l zS^(uUwvZd3$b2!FKH79dRFqZNT}dEDo0g>t%vWny$!It!-iJPSqQw|{T^kIBjshNI zf3iEQb~1qNoHjg^xw%_Ycwmt?eqx#p-krOLk8YQDyFxE`@#C7rA5BP+u`$d@&D9dF z6MFF#_bW()CdI%ag2V_Sv1w|kxy@9b{q5o&_uW{V>MSSPLnWKyY->=pvXd-{4u2(W zh{5pFVk-NY;$rZ2{aK}etyv{h5&SshE5z$lb#^axLvvDcS+*m!3MB6LFUcxUKHj6z z1RfPr&I^{zNf%_;>JJ(c0~&AJzZ2Ao%Z0+RqHTw`SLJIp8N?T}Pz)^?h;JEtIe?1o z@&4aN4G>?w-BeYsdo{W4-|LI@DNczye0h(jS;9uX&CLB7Vb5T6*`5ksAt2{PG1OKp z53WV1Q)J>a6%zP^fE49EG;tU<>Xd1vS#k`lw-FHIz*nHL3gXM&8Z-pZc=>%G?1i(R zWE3)w0tgO^NZ18`rYMxA#4*`Kb~I0H>2lp9Yop%CPU05%`s|uLUe+(I3$jFa_3hz| zlJ?i&*dp3I(&+t)gF+%X2zkcQs;r9(Ilg4A5S+uC;u!_gW_m{)m~U*#6-b&7b3LC~ z^>GvE`+aPlP0f%n&K`HXVSo9&xcf?Qc>=U9O5ZK8w;-|L_<>!O%LSO;lcP1q_~w>{ zZ0z5EQ-{m!{@H^E>!&|1VHON!wNlkUOW}%E$1n;k2fW(1>{ww zxXlx=B^3zM#G7)Q%t0a1;1|~L4W2Q(i+PcmQn4o>-T-NC`&*{>VXjknlsB|Sn2Lsv zp6fXW>-HtzSs-R@s+n@`e0o2|Y0X#ABB@zWD*HT4guH)`E$-p*&`BO9J<$h~g}n?s zB40!3Dv~$iZ^}>Nz<24YSro#=Jx}d$w&XG@6?p6@il{hObmuX)VK|Yp4&;C%IViio z7?{U0;ho5^{a}+K0nXhccB6e5zB9+P4ee3i;xU_qij%_LbD*q3F CcXkN? literal 0 HcmV?d00001 diff --git a/pages/02.linux/authentik/nextcloud-oidc/default.en.md b/pages/02.linux/authentik/nextcloud-oidc/default.en.md index 1b425b5..7e5918e 100644 --- a/pages/02.linux/authentik/nextcloud-oidc/default.en.md +++ b/pages/02.linux/authentik/nextcloud-oidc/default.en.md @@ -1,7 +1,7 @@ --- -title: 'Nextcloud OIDC' +title: "Nextcloud OIDC" visible: false -media_order: 'authentik-create-provider.webp, authentik-create-application.webp' +media_order: "authentik-create-provider.webp, authentik-create-application.webp, nextcloud-openid-connect.webp, authentik-custom-property-mapping.webp, authentik-oauth-scope.webp" --- [toc] @@ -18,14 +18,14 @@ First, a new provider needs to be created. The setting can be found under `Appli In the first screen, select `OAuth2/OpenID Provider` and click `Next` -![Screenshot of the provider creation page with settings filled in](authentik-create-provider.webp) - - _Authorization flow_: default-provider-authorization-implicit-consent (Choosing explicit consent instead means the user has to approve every login) - _Client type_: Confidential - _Client ID_: The auto generated value is fine, copy it for use later. -- _Client Secret_: **WARNING** user_oidc currently only supports values up to 64 characters in length. Make sure to trim the value below that, or generate a new secret with less characters. `openssl rand -base64 60` [Issue on user_oidc GitHub](https://github.com/nextcloud/user_oidc/issues/405) -- _Redirect URIs/Origins_: https://{NEXTCLOUD URL}/apps/user_oidc/code -- _Advanced protocol settings > Subject mode_: Based on the User's username, this setting should be used to ensure Nextcloud’s federated cloud ID will have a human-readable value +- _Client Secret_: **WARNING** user_oidc currently only supports values up to 64 characters in length. Make sure to trim the value below that, or generate a new secret with less characters. `openssl rand -base64 40` [Issue on user_oidc GitHub](https://github.com/nextcloud/user_oidc/issues/405) +- _Redirect URIs/Origins_: `https:\/\/nextcloud\.example\.com.*` +- _Signing Key_: Set this to a valid TLS Certificate + +![Screenshot of the provider creation page with settings filled in](authentik-create-provider.webp) ### Create application @@ -36,4 +36,78 @@ Other settings can be left at their defaults. ![Screenshot of application creation dialog](authentik-create-application.webp) +Now, go back to the `Providers` screen and click on the previously created provider. +Copy the value from `OpenID Configuration URL`, it should be something like `https://{AUTHENTIK URL}/application/o/{PROVIDER NAME}/.well-known/openid-configuration` + ## Nextcloud + +Log in as administrator, go to `Apps` and search for `OpenID Connect user backend` +Click `Download and Enable` to install the app. + +Next, open the administration settings in Nextcloud and go to `OpenID Connect`. +Click on the `+` below `Registered Providers` + +- _Identifier_: Authentik (This value is shown to the users when they try to log in) +- _Client ID_: (value copied from Authentik) +- _Client Secret_: (value copied from Authentik) +- _Discovery endpoint_: (OpenID Configuration URL copied from Authentik, should end with .well-known/openid-configuration) + +**Attribute mapping** + +- _User ID mapping_: `sub` +- _Display name mapping_: `nickname` + +- Uncheck `Use unique user id`, otherwise nextcloud will hash the provided user id mapping together with the provider and use that as identifier. This is unnecessary unless you're using multiple providers with non-unique names. +- Check `Use group provisioning` in order to create and update user groups in Nextcloud from Authentik. + +All other settings here should be left at their default. + +![OpenID Connect Plugin provider settings](nextcloud-openid-connect.webp) + +If you are running the Authentik in the same local network as Nextcloud and use internal addresses, you also need to add the setting `'allow_local_remote_servers' => true,` to your `config.php` file. +Otherwise Nextcloud rejects the connection. + +## Setting user quotas in Authentik + +Using custom attributes, property mappings and scope mappings it is possible to set the desired storage quota for users. + +### Assign custom attribute + +Go to `Directory > Users`, click on a user and select `Edit`. +In the field `Attributes` custom attributes can be specified in JSON or YAML format. + +_Example_: + +```yaml +app-nextcloud-quota: 20G +``` + +### Create propery mapping + +Go to `Customisation > Property Mappings` and create a new mapping of the type `Scope Mapping` + +The name can be chosen freely, choose something identifiable. +Scope name will be used in the Nextcloud OpenID Connect config as scope. +The expression is used to get the previously created custom attribute. + +```py +return { + "quota": request.user.attributes.get("app-nextcloud-quota", "default"), +} +``` + +![Authentik custom property mapping settings](authentik-custom-property-mapping.webp) + +### Expose propery mapping + +Click on the previously created provider for Nextcloud and select `Edit`. +Go to `Advanced protocol settings > Scopes` and `CTRL + Click` the newly created Nextcloud quota mapping. + +![Selected scope mappings](authentik-oauth-scope.webp) + +### Nextcloud config + +Nextcloud needs to request access to the scope we just created. +Simply add `quota` to the space separated list of Scopes in the OpenID Connect provider settings. + +Changing the quota attribute, will update the storage quota for the user upon the next login. diff --git a/pages/02.linux/authentik/nextcloud-oidc/nextcloud-openid-connect.webp b/pages/02.linux/authentik/nextcloud-oidc/nextcloud-openid-connect.webp new file mode 100644 index 0000000000000000000000000000000000000000..dd131e36468687a335e178b259ed6b8ea33fe589 GIT binary patch literal 32950 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