Closed zdavatz closed 1 year ago
For Test, this URL works: ENABLE_EPRESCRIPTION=true ./certifaction server --api https://api.testnet.certifaction.io --hin-api https://oauth2.sign-test.hin.ch/api
Lets try this for PROD: ENABLE_EPRESCRIPTION=true ./certifaction server --api https://api.certifaction.io --hin-api https://oauth2.sign.hin.ch/api
Gemäss Rücksprache mit Aaron muss der Fehler bereits vor dem AD-Swiss Aufruf passieren.
Im angehängten iOS Screen sehen wir nur den Rumpf der URL. Wäre es möglich, die gesamte URL zu sehen? Wir vermuten den Fehler in dieser URL. Wie sieht die return_uri genau aus? Wurde diese zur Freischaltung beantragt und auch freigegeben?
Die sollte in etwa so aussehen: http://apps.hin.ch/REST/v1/OAuth/GetAuthCode/ADSwiss_CI?response_type=code&client_id=myprivateid&redirect_uri=http%3A%2F%2Flocalhost%2FgetAccessToken
Sign Error:
@b123400 says: Guten Tag, es scheint, es ist unmöglich die URL zu zeigen, aber wir benützen “amiko://oauth” und “comed://oauth” für unsere Return-URL Was ich weiss wollen: Warum ist es manchmal klappt? z.B. Falls unsere Return-URL schlecht ist, dann sollt es immer Error geben?
Now getting this:
Ich konnte zwei Rezepte erstellen über den certifaction.ywesee Server, auch der Verify Befehl hat funktoiniert und beide Rezepte wurde als gültig angezeigt.
Ein Fehler von mir heute Morgen zusammen mit dem Screenshot von gestern hat mich jetzt die Idee gebracht, dass möglicherweise bei einer konfigurierten URL noch die Test-URL drin ist? Das sind die Steps, die ich durchführe um das auth handle zu holen:
Steht im Code nirgends ci-pred oder ci-test drin?
Auth step 1: get the oAuth2 access token: Open in Browser (will launch HIN authentication) http://apps.hin.ch/REST/v1/OAuth/GetAuthCode/ADSwiss_CI?response_type=code&client_id=ch.hin&redirect_uri=http%3A%2F%2Flocalhost%2FgetAccessToken
output -> GUB2AvHL...aozQ4ghhY (90 Tage gültig)
Auth step 2: get the oAuth2 bearer token: curl --location --request POST 'https://oauth2.hin.ch/REST/v1/OAuth/GetAccessToken' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=authorization_code' \ --data-urlencode 'code=GUB2AvHL...aozQ4ghhY' \ --data-urlencode 'redirect_uri=http://localhost/getAccessToken' \ --data-urlencode 'client_id={...}' \ --data-urlencode 'client_secret={...}'
output -> b#G7XRWMzXd..LnxAj#GpN7V
Auth step 3 - restart here after auth handle expiration (2h idle/12 total validity) get the SAML URL: curl --request POST --url 'https://oauth2.ci.adswiss.hin.ch/authService/EPDAuth?targetUrl=http%3A%2F%2Flocalhost%2Fsuccess&style=redirect' --header 'accept: application/json' --header 'Authorization: Bearer b#G7XRWMzXd...aMALnxAj#GpN7V'
(return value: {"url":"https://ci.adswiss.hin.ch/samlService/saml/authenticate?guid=_1f115509-92b2-4a3f-beea-7b2332fd35dc","epdAuthUrl":"https://ci.adswiss.hin.ch/samlService/saml/authenticate?guid=_1f115509-92b2-4a3f-beea-7b2332fd35dc"}) output -> https://ci.adswiss.hin.ch/samlService/saml/authenticate?guid=_a1f089eb-c42e-4712-bb95-a61b211bb376
Auth step 4 - get the auth code -> paste URL in Browser with incognito mode>will ask for HIN ID
(return value in Browser URL location: http://localhost/success?auth_code=FJdOA..3MR) output -> FJdOA..3MR
Auth step 5 - convert the auth code into auth handle curl --request POST --url "https://oauth2.ci.adswiss.hin.ch/authService/EPDAuth/auth_handle" -d "{\"authCode\":\"vzut..Q2E6\"}" --header "accept: application/json" --header "Content-Type: application/json" --header "Authorization: Bearer b#G7XRWMzX...nxAj#GpN7V"
(return value: {"authHandle":"wD69kL1...WKBP"}) output -> auth handle: wD69kL1...WKBP
Ah… Ich denke, Ich weiss das Problem. Das Auth Handle ist “2h idle/12 total validity”, aber ich habe nur “12 total validity” überlegen, nicht “2h idle”!
z.B, wenn man das Auth Handle jede Stunde benutzt, dann kann er auf 12 Stunden verlängern. Aber wenn ist für 2 Stunden nicht benutzen, dann es ist nicht mehr gültig
should be fixed with: https://github.com/zdavatz/AmiKo-iOS/pull/171