Google workspace

Upravit obsah stránky

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

    bullet

    zadat auth parametry serveru do konfiguračního souboru  InstanceName.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ých domén pro mezi-doménové požadavky

    bullet

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



    bullet

    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