2016-09-06 4 views
2

J'ai mod_auth_openidc qui travaille sur centos7 mais je ne trouve pas la documentation qui fait référence à l'extraction des informations utilisateur.mod_auth_openidc comment accéder aux variables utilisateur pour une utilisation en PHP

Mes journaux indiquent que le module effectue les interrogations suivantes

oidc_authz_match_claim: evaluating key "nickname" 
oidc_authz_match_claim: evaluating key "email" 
oidc_authz_match_claim: evaluating key "user_id" 
oidc_authz_match_claim: evaluating key "identities" 
oidc_authz_match_claim: evaluating key "iat" 
oidc_authz_match_claim: evaluating key "picture" 
oidc_authz_match_claim: evaluating key "last_password_reset" 
oidc_authz_match_claim: evaluating key "name" 
oidc_authz_match_claim: evaluating key "created_at" 
oidc_authz_match_claim: evaluating key "app_metadata" 
oidc_authz_match_claim: evaluating key "email_verified" 
oidc_authz_match_claim: evaluating key "clientID" 
oidc_authz_match_claim: evaluating key "folders" 

J'ai essayé de placer les deux éléments suivants dans httpd.conf

OIDCRemoteUserClaim email 
OIDCOAuthRemoteUserClaim email 

puis en utilisant <?php echo $_SESSION['REMOTE_USER']; ?> mais je ne reçois pas variables renvoyées

grâce Art

Répondre

1

Dans la configuration par défaut la demande email est disponible à la fois comme une variable d'environnement:

echo $_SERVER['OIDC_CLAIM_email'] 

et comme un en-tête HTTP:

$hdrs = apache_request_headers(); 
echo $hdrs['OIDC_CLAIM_email']; 

la variable REMOTE_USER est accessible par:

$_SERVER['REMOTE_USER']; 

et sera défini à un identifiant global unique par défaut mais est configurable via la directive OIDCRemoteUserClaim comme vous l'avez montré. Quelques remarques sur la configuration:

  1. Vous remarquerez que les en-têtes HTTP sont également disponibles dans les variables d'environnement, avec leurs noms de variables préfixées avec HTTP_ et par exemple en majuscule
    $_SERVER['HTTP_OIDC_CLAIM_EMAIL'];

  2. Vous pouvez configurer le comportement autour de passer réclamations en-têtes et/ou variables d'environnement grâce à différentes directives de configuration

  3. Les variables seront bien entendu exister que si la demande associée était présente dans le id_token ou de retour à partir du point d'extrémité informations utilisateur

+0

Votre réponse m'a fait mon erreur de base en utilisant 'session' au lieu de' SERVER', mais les conseils sur la '' OIDC_CLAIM_ * va changer l'approche de notre architecture simp lifier le processus. Merci pour la réponse détaillée –