Sign in with Apple ID un privātums
Sākumā gribēju šo uzrakstīt dažu tvītu seriāla formā, bet tad atcerējos par blogu.
Starp citu, divas lietas. Ja esi ar mieru uzspļaut no devītā stāva visiem diviem lietotājiem, kuri grib pieslēgties tavai vienreizējajai lapai ar lietotāja vārdu (e-pastu) un paroli, tad uztaisi vienu pogu. "Pieslēgties". Nu, labi. Vairākas. "Pieslēgties ar Facebook", "Pieslēgties ar Google", utt. Nečakarējies ar parolēm. Nenodali pieslēgšanos no reģistrācijas. Ja cilvēks atnāk, piespiež "ar džūgli", pēc autentifikācijas tu paskaties vai mums tāds ir reģistrēts. Ja nav, piereģistrējam un tālāk jau viss notiek pēc "pieslēgties" shēmas.
Stāsts gan ir par ko citu.
Šodien, rotaļājoties ar vienu ideju un tai piekabinot klāt reģistrāciju/pieslēgšanos ar google/facebook, ienāca prātā, ka varbūt ir laiks arī piejūgt "Sign in with Apple". Cik sapratu, tas ir tas pats parastais OAuth2, kas ir lieliskas ziņas.
Tad, kad tas viss iedarbojās, pamanīju lietu, kuru nebiju pamanījis iepriekš. Apple skandina, ka par visām varītēm ir par lietotāju privātumu. Un viņi tiešām cenšās. Un dažkārt tas nāk par sliktu tiem, kas lietotāju datus grib... emm.. lietot :P Ja daudz kas no Apple puses mani kaitina vai nav saprotams, tad šis ir ļoti forši. Iestāšanās par privātumu gan iet visam cauri jau vairākus gadus.
Pirme punkte. Ja vēlies kaut kur pieslēgties, izmantojot "Sign in with Apple", tev kā lietotājam obligāti būs jāieslēdz divu faktoru autentifikācija.
Otre punkte. Starplapā, kura atveras, vari pielabot vārdu un uzvārdu, pirms tos nodot aplikācijai.
Treša punkte. Un pate svarigake punkte. Opcija "Hide My Email". Izvēloties to, gala aplikācija saņem e-pastu, kurš izskatās pēc "mzgdo213r23ur8t@privaterelay.appleid.com". Tā ir e-pasta adrese, kura uzģenerēta un var tikt izmantota saziņai ar tevi kā aplikācijas lietotāju. Tiesa, lai to varētu izdarīt, tev kā pakalpojumu sniedzējam, ir pareizi jānokonfigurē e-pasta izsūtīšanas padarīšanas (domēna DNS SPF ieraksti). Kas ir pašsaprotami, bet nav pašsaprotami visiem.
Ja vēlies, vari atslēgt pārsūtīšanu. Tu nevari ar vienu Apple-ID reģistrēties un tad izdzēsties miljons reižu un katru no tām ar savu e-pasta adresi. Katram servisam Apple vienmēr uzģenerēs vienu un to pašu slepenpasta adresi.
Katrā gadījumā solis ir ļoti apsveicams. Vēlētos ko līdzīgu sagaidīt arī no citiem pakalpojumu sniedzējiem, lai tiem, kas nevēlās eksponēt savu patieso e-pasta adresi, nebūtu ar visādiem riņķadančiem jānodarbojas pašam.
Bet par tehnisko pusi "Sign in with Apple".
Jāatzīst, ka viņi ir ... citāda kompānija. Ja pie citiem viss, kas nepieciešams, ir piereģistrēt aplikāciju, norādīt atpakaļsaiti, uz kuru lietotājs pēc autentifikācijas tiks atsūtīts, paķert divus identifikatorus un lieta cepurē, tad te nekas tik vienkāršs nebūs ne pa kam.
Sāksim ar to, ka, lai ieviestu "Sign in with Apple", tev ir jābūt ar izstrādātāja kontu. Gada maksa $99. Šī maksa gan ietilpina sevī arī visu pārējo, ko izstrādātājs no Apple var dabūt.
Nākamais, kas jādara, ir jāpiereģistrē "App ID", tad "Services ID", tad jāuzģenerē privātā atslēga, no kuras pēc tam pašam jāuzģenerē sava slepenā OAuth2 atslēga. Slepenā atslēga ir jāģenerē pa jaunam vismaz reizi pusgadā.
Īsāk sakot, tas viss ir tik savādāk, ka ballītes ilgums man bija kāda pusotra stunda. Jo vienā vietā es nepareizi uzģenerēju atslēgu, tad biju nekorekti norādījis atpakaļsaiti, kuru labot nevar, bet ir jāveido jauns "Services ID". Kas ir atsevišķā izvēlnē paslēpts. Ai. Beigu galā to padarīšanu pievārēju.
Papildināts nākamajā dienā. Starp citu, ja Tu pirmajā reizē aplikācijā autentificējies ar savu īsto e-pastu, pēc kāda laika iekš AppleID konta pārvaldības lapas izslēdz piekļuvi šai aplikācijai, bet pēc kāda laika atkal pieslēdzies, taču šoreiz norādot īsto e-pasta adresi, lietotāja identifikators nemainās. Implementāciju robežgadījums, odnako, na ļico :)
atis
2020. gada 21. oktobrī, plkst. 00:19
Līdzīgi daru jau ar Google Apps domēnu, catch-all adrese, no kuras varu atfiltrēt ar filtriem. Nedaudz nodod tas, ka domēns ir ar manu vārdu, bet ļoti nedaudzi to saprot
Ēriks
2020. gada 21. oktobrī, plkst. 19:12
Apple serveri pēc autorizācijas atgriež arī kādu alfanumerisku id (kas nemainās) vai tikai epasta adresi?
laacz Autors
2020. gada 21. oktobrī, plkst. 20:59
Protams. Visi OAuth2 atgriež unikālu lietotāja identifikatoru. Pie kam, kas interesanti, ja Tu izslēdz aplikācijas autentifikācijas ierakstu iekš appleid.apple.com, bet nākamreiz izvēlies autentificējoties norādīt savu īsto e-pasta adresi, identifikators nemainās. Robežgadījums, kuru tikko nācās risināt :)
PS, tā ir autentifikācija, nevis autorizācija ;)
Ēriks
2020. gada 22. oktobrī, plkst. 22:39
Paldies par info. Un, jā, kā parasti jaucu terminus :)