Kif issejjaħ API interna minn app tal-iPhone fuq VPN
Ikklassifika t-talba li tfalli bil-kodiċi NSURLError tagħha qabel ma tmiss it-tunnel, imbagħad sewwi eżatt il-livell li tkisser.
L-API twieġeb fis-Safari fuq l-istess telefon, filwaqt li t-talba tal-app taqa' f'timeout. Dan id-distakk ġeneralment mhuwiex it-tunnel: app li ssejjaħ servizz intern tagħmel talba HTTPS ordinarja, u l-VPN li diġà hemm fuq it-tagħmir jiddeċiedi biss jekk dik it-talba għandhiex triq. Li tikteb it-tieni tunnel fl-app hija deċiżjoni tal-prodott, mhux tiswija għal timeout. Dak li ġej jikklassifika l-falliment skont fejn iseħħ, bl-użu tal-wiċċ tal-iżbalji li l-app diġà għandha.
Ibda mill-iżball, mhux mit-tunnel
URLSession jirrapporta fallimenti tat-trasport bħala NSError valuri fi NSURLErrorDomain, u l-kodiċi huwa l-irħas evidenza disponibbli. Qabel ma tbiddel kwalunkwe konfigurazzjoni, irreġistra dan il-kodiċi flimkien mal-isem tal-host li jfalli u l-ħin li għadda tal-kompitu. Timeout, falliment tal-isem u falliment tal-fiduċja jidhru l-istess fuq l-iskrin u jeħtieġu tliet tiswijiet differenti. Ikklassifika l-ewwel, imbagħad aqra t-taqsima għal dik il-klassi.
Il-metriċi tal-kompitu jwieġbu l-mistoqsija li jmiss, jekk qatt ġie stabbilit konnessjoni, li tifred talba li qatt ma kellha rotta minn waħda li s-server dam wisq biex iwieġeb għaliha. Xejn minn dan ma jeħtieġ li t-tunnel jinbidel; jeħtieġ li d-dijanjostika tat-talba nnifisha tiġi stampata f'post fejn tista' taqrah.
Ir-riżoluzzjoni tal-ismijiet tfalli qabel ma jista' jsir xi ħaġa oħra
Isem tal-uffiċċju qasir bħal api.corp.example normalment jiddependi minn dominju tat-tiftix li t-telefon ma jġorrx, għalhekk l-app tirriżolvi isem li jeżisti biss ġewwa l-bini. NSURLErrorCannotFindHost hija l-firma. L-isem sħiħ tal-host irid jiġi riżolt permezz ta' kwalunkwe resolver li jinstalla l-VPN, u l-app għandha titlob il-forma kompletament kwalifikata kull meta d-dominju tat-tiftix mhuwiex garantit. Li tibdel l-isem ma' indirizz u li tiddiżattiva l-kontrolli taċ-ċertifikati jċaqlaq il-falliment minflok ma jsewwih.
Rekord DNS privat u ċertifikat maħruġ għal dak l-isem preċiż huma l-par appoġġjat. Kull ħaġa oħra hija soluzzjoni temporanja li tasal għall-utenti.
Timeout hija kwistjoni ta' triq, mhux ta' isem
NSURLErrorTimedOut ifisser li l-isem ġie riżolt u xejn ma wieġeb, li jindika lejn ir-rotta, il-politika tal-pakketti jew is-servizz. Meta t-tunnel jiġi assenjat għal kull applikazzjoni, app oħra li tasal għall-istess server ma tgħid xejn dwar il-build tiegħek, għax dik il-mappa mhix maqsuma. Iċċekkja li l-bundle li qed tesegwixxi jinsab ġewwa dik l-assenjazzjoni, imbagħad iċċekkja li t-triq tas-servizz hija permessa għaliha. Build tal-iżvilupp installat barra l-assenjazzjoni jista' jkun kompletament barra t-tunnel u jidher bħal API miksur.
Paragun fil-browser juri li xi app fuq it-tagħmir għandha triq. Qatt ma juri li l-build tiegħek għandha waħda, u għalhekk iż-żewġ testijiet iridu jsiru separatament.
Il-fallimenti tal-fiduċja jikkonċernaw l-isem fuq iċ-ċertifikat
NSURLErrorServerCertificateUntrusted flimkien mal-iżball TLS taħtu jfisser li l-katina jew il-verifika tal-identità falliet. CA interna trid tkun fduta fuq it-tagħmir, u ċertifikat maħruġ għal isem tal-host differenti jibqa' ħażin wara kwalunkwe rikonfigurazzjoni tan-netwerk. Il- gwida tal-App Transport Security tkompli tapplika għal dawn il-konnessjonijiet li jillowdjaw URL, u tunnel madwar servizz HTTP sempliċi ma jagħmilx dak is-servizz sikur minn tarf sa tarf.
Seewwi l-identità jew l-ankra tal-fiduċja u żomm il-lista tal-eċċezzjonijiet vojta. Eċċezzjoni ġenerali għal tagħbija arbitrarja taħbi l-falliment waqt l-iżvilupp u tħallih fil-post għal kull utent wara.
Ċaħda HTTP tappartjeni lill-app, mhux lin-netwerk
401 jew 403 wara handshake komplut ifisser li t-talba waslet u s-servizz irrifjutaha, għalhekk il-mistoqsija li tifdal hija kont, udjenza tat-token, ambitu jew ċavetta. Irreġistra l-kodiċi tal-istat u l-isem tal-host, qatt it-token bearer jew il-korp tar-risposta. F'dak il-punt it-tunnel qed jagħmel xogħlu u aktar bidliet fin-netwerk itawlu biss it-tiswija vera.
It-tabella hija l-klassifikazzjoni li għandek iżżomm ħdejn it-terminal: ringiela waħda għal kull falliment li l-app tista' tabilħaqq tirrapporta. Ipprintja l-kodiċi qabel ma taqrah, għax ir-ringiela li tagħżel tiddeċiedi liema taqsima taħdem permezz tagħha.
| Where it fails | What the app sees | First check |
|---|---|---|
| name resolution | NSURLErrorCannotFindHost (-1003) | resolve the fully qualified name from the device itself |
| no path, or no answer | NSURLErrorTimedOut (-1001) | is this bundle inside the per-app mapping, and is the service path allowed |
| TLS trust | NSURLErrorServerCertificateUntrusted (-1202) | does the certificate name match the host, and is the internal CA trusted |
| service refusal | HTTP 401 or 403 after a completed handshake | account, token audience, scope or key |
Kull ringiela hija irħas biex tiġi ttestjata minn dik taħtha, u kull waħda tneħħi saff differenti tal-istess talba. Mur 'l isfel fit-tabella sakemm tqabbel ringiela, imbagħad waqqaf il-bidla tan-netwerk.