Skip to main content

Google workspace

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

co je třeba?

{
"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é údajeClient ID for Web application nám google poskytne ke stažení jako json formát.

  • zadat auth parametry serveru do konfiguračního souboruInstanceName.cfg
A
UTHSERVICE = action_name_abc_xyz_1234


AUTHURI = 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/Logout


PREF_DEFAULT_AUTH = FALSE
DEFAULT_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ýchdomén promezi-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

  1. definujeme pomocnou strukturujsn:rootpro dekodováníJWT (JSON Web Token), který obdržíme v odpovědi z Googlu naauthorization_code_requestv OAuth procesu

  1. 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_. . . "
}
  1. požadavkem Convert provedeme decode JWT do pomocné struktury id_token

  1. definujeme výstup z akce/WS jako text:content "user-pdk:nkey" kde nkey představuje pdk uživatele