2013-05-17 8 views
7

Sfondodeterminare se l'utente è membro del gruppo

nostri utenti aziendali dispongono di un account Google Apps. Vorremmo consentire loro (e solo loro) di accedere a una extranet usando l'account Google. Idealmente vorremmo anche gestire le autorizzazioni tramite l'interfaccia utente di gestione dei domini di Google. Un pensiero è quello di creare gruppi e associare l'appartenenza al gruppo con le autorizzazioni extranet.

Research

Google Apps supporta login using OAuth 2.0 e anche supports provisioning via API, che consentirebbe di testare se un utente è un membro di un gruppo. L'API di provisioning presumibilmente richiede credenziali di amministratore.

Domanda

E 'possibile stabilire programatically se un utente di Google Apps è un membro di un gruppo senza richiedere le credenziali di amministratore di dominio?

C'è un modo migliore per raggiungere questo obiettivo?

risposta

5

La chiamata API per verificare l'appartenenza al gruppo richiede almeno un amministratore delegato con diritti di lettura dei gruppi tramite l'API. Se si utilizza la nuova Google Admin SDK membership API call, è anche possibile limitare l'ambito di sola lettura:

https://www.googleapis.com/auth/admin.directory.group.readonly 

Admin SDK utilizza OAuth 2.0 che non richiede l'amministratore delegato username/password, solo il token OAuth.

+0

sai se questo ambito è disponibile per gli account di servizio? L'ho usato con successo con un callback OAuth utilizzando un account normale, ma non ancora con un account di servizio/chiave privata. Sto riscontrando problemi nell'impostare le autorizzazioni. –

+1

Questa è una domanda/risposta così importante, ha davvero bisogno di maggiore chiarezza per assicurarci di ottenere le cose giuste (tm). @ jaylee, per favore puoi chiarire: quando effettui la chiamata API per verificare l'appartenenza al gruppo (Membri: ottieni) mentre usi le credenziali di un account di servizio, quale account amministratore dovremmo impersonare? Dovrebbe esserci un account amministratore dedicato per questo scopo? – Andrew

+1

È possibile utilizzare un account di servizio, che è stato autorizzato per questo ambito. Consulta la seguente guida di Google: https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority – Paul