mod_auth_openidc 如何访问在 PHP 中使用的用户变量
mod_auth_openidc how to access user variables for use in PHP
我 mod_auth_openidc
正在研究 centos7
,但找不到引用如何提取传递的用户信息的文档。
我的日志显示该模块正在执行以下询问
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"
我已经尝试在 httpd.conf
中设置以下两项
OIDCRemoteUserClaim email
OIDCOAuthRemoteUserClaim email
然后使用 <?php echo $_SESSION['REMOTE_USER']; ?>
但我没有得到任何返回的变量。
谢谢
艺术
在默认设置中,email
声明可用作环境变量:
echo $_SERVER['OIDC_CLAIM_email']
并作为 HTTP header:
$hdrs = apache_request_headers();
echo $hdrs['OIDC_CLAIM_email'];
REMOTE_USER
变量可通过以下方式访问:
$_SERVER['REMOTE_USER'];
and 将默认设置为全局唯一标识符,但可通过 OIDCRemoteUserClaim
指令进行配置,如您所示。关于设置的几点说明:
您会注意到 HTTP headers 也可以在环境变量中使用,它们的变量名称以 HTTP_
为前缀并且大写,例如
$_SERVER['HTTP_OIDC_CLAIM_EMAIL'];
您可以通过各种配置指令在 headers and/or 环境变量中配置围绕传递声明的行为
当然,只有当相关声明出现在 id_token
中或从用户信息端点返回时,变量才会存在
我 mod_auth_openidc
正在研究 centos7
,但找不到引用如何提取传递的用户信息的文档。
我的日志显示该模块正在执行以下询问
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"
我已经尝试在 httpd.conf
中设置以下两项OIDCRemoteUserClaim email
OIDCOAuthRemoteUserClaim email
然后使用 <?php echo $_SESSION['REMOTE_USER']; ?>
但我没有得到任何返回的变量。
谢谢 艺术
在默认设置中,email
声明可用作环境变量:
echo $_SERVER['OIDC_CLAIM_email']
并作为 HTTP header:
$hdrs = apache_request_headers();
echo $hdrs['OIDC_CLAIM_email'];
REMOTE_USER
变量可通过以下方式访问:
$_SERVER['REMOTE_USER'];
and 将默认设置为全局唯一标识符,但可通过 OIDCRemoteUserClaim
指令进行配置,如您所示。关于设置的几点说明:
您会注意到 HTTP headers 也可以在环境变量中使用,它们的变量名称以
HTTP_
为前缀并且大写,例如
$_SERVER['HTTP_OIDC_CLAIM_EMAIL'];
您可以通过各种配置指令在 headers and/or 环境变量中配置围绕传递声明的行为
当然,只有当相关声明出现在
id_token
中或从用户信息端点返回时,变量才会存在