přihlášení účtem organizace Google workspace, připadně uživatelským privátním účtem @gmail.com.
co je třeba?

v Google develop console vytvořit credentials typu OAuth client ID
{
"web": {
"client_id": "666400335724-skdch0ngpa7i9kj1q6f2f9u0a1q56k64.apps.googleusercontent.com",
"project_id": "project-flexideo",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "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","redirect_uris": [
"https://demo.flexideo.cloud/login",
"https://hwsyscode.flexideo.cloud/login"
],
"javascript_origins": [
"https://demo.flexideo.cloud",
"https://hwsyscode.flexideo.cloud"
]
}
}
potřebné údaje Client ID for Web application nám google poskytne ke stažení jako json formát.

zadat auth parametry serveru do konfiguračního souboru InstanceName.cfg
AUTHSERVICE = action_name_abc_xyz_1234AUTHURI = https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=6664vearr.apps.googleusercontent.com&
scope=profile+email&redirect_uri=https://priklad.aplikace.url/login&state=54GF84PO895A8B9C0D1E2F3_priklad.aplikace.url[GET]
LOGOUTURI = https://accounts.google.com/accounts/LogoutPREF_DEFAULT_AUTH = FALSEDEFAULT_AUTH = OAUTH#DEFAULT_AUTH = FORM
ALLOW_CORS = *
• AUTHSERVICE : jméno (name) akce, která zpracuje tokeny z googlu a na výstupu vrátí pdk uživatele, který bude přihlášen do aplikace
• AUTHURI : link na endpoint autorizační služby IdP (Google sign-in), na který bude uživatel přesměrován při přihlášení do aplikace
• LOGOUTURI : link na endpoint odhlášení z aplikace
• DEFAULT_AUTH : OAUTH = OAuth2.0, FORM = web formulář v html stránce, parametr výchozího způsobu přihlašování do aplikace
• PREF_DEFAULT_AUTH : TRUE/FALSE, preference vychozího způsobu přihlašování do aplikace
• ALLOW_CORS : * = any, Cross-Origin Resource Sharing, seznam povolených domén pro mezi-doménové požadavky

vytvořit auth profile (dokument x_profile) ve Flexideo aplikaci, default Název profilu : auth

vytvořit akci / službu, která zpracuje přihlášení uživatele
1. akci nastavíme jako webovou službu s vlastním POST vstupem
2. definujeme pomocnou strukturu jsn:root pro dekodování JWT (JSON Web Token), který obdržíme v odpovědi z Googlu na authorization_code_request v OAuth procesu
3. definujeme vstup do akce, v bodu 2. zmiňovaný json:root
• access_token : přístupový token, se kterým je možno přistupovat ke službám v rámci oprávnění asociovaných scopes
• expires_in : platnost resp. čas do expirace access_tokenu (obvykle 3600 sec neboli jedna hodina)
• scope : seznam scopes (oprávnění), která jsou asociována s tokenem, např userinfo.profile, userinfo.mail
• token_type : typ access_token (zde obvykle typ Bearer)
• id_token : JWT s atributy uživatele
response json příklad (tokeny jsou zkráceny pro lepší čitelnost)
{"access_token": "ya29.a0AeXRPp5e8n . . . . . . . ApQbbgMg0175",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/userinfo.email openid https://www.googleapis.com/auth/userinfo.profile",
"token_type": "Bearer",
"id_token": ". . . OiJSUzIsImtpZ.eyJpc3ImV4cC . . . . . . . . . Tc0MTcwMDg4Nn0.BnqYnaW9PBJ_. . . "
}
4. požadavkem Convert provedeme decode JWT do pomocné struktury id_token
5. definujeme výstup z akce/WS jako text:content "user-pdk:nkey" kde nkey představuje pdk uživatele