Pyramid的Google Cloud Identity-Aware Proxy身份验证策略
项目描述
============================================================
Google Cloud Identity-Aware Proxy身份验证策略的Pyramid实现
============================================================
此软件包实现了与Google Cloud的`Identity-Aware Proxy <https://cloud.google.com/iap>`兼容的Pyramid身份验证策略。
配置
=============
配置您的Identity-Aware Proxy后,从其设置中获取*签名头JWT受众*(详细说明请参阅`使用签名头保护您的应用程序 <https://cloud.google.com/iap/docs/signed-headers-howto>`。)
要启用Pyramid应用程序中的JWT支持
.. code-block:: python
from pyramid.config import Configurator
from pyramid.authorization import ACLAuthorizationPolicy
from pyramid_iap import JWTClaimAuthenticationPolicy
def main()
config = Configurator()
# Pyramid需要一个激活的授权策略。
config.set_authorization_policy(ACLAuthorizationPolicy())
# Identity-Aware Proxy的签名头JWT受众。
audience = "/projects/123/global/backendServices/456"
# 启用JWT身份验证。
config.include('pyramid_iap')
config.add_iap_jwt_claims(audience)
config.set_authentication_policy(JWTClaimAuthenticationPolicy())
默认情况下,用户ID是JWT令牌的"sub"声明(例如:"accounts.google.com:123456"。要使用"email"声明(例如:"test@example.com"),请指定
.. code-block:: python
config.set_authentication_policy(JWTClaimAuthenticationPolicy(userid_claim="email"))
设置
========
有一些标志指定了如何验证令牌。
您可以在您的.ini文件中设置此标志,或者直接传递/覆盖它们到`config.add_iap_jwt_claims()`函数。
+--------------+------------------+---------------+---------------------------------------------+
| 参数 | ini 文件条目 | 默认值 | 描述 |
+==============+==================+===============+=============================================+
| audience | iap.audience | | 验证过的 token 受众(必需。) |
+--------------+------------------+---------------+---------------------------------------------+
不常用设置
-----------------
如果您在 Google Cloud IAP 后运行,则不太可能需要这些设置。
+--------------+-----------------+---------------+--------------------------------------------+
| 参数 | ini 文件条目 | 默认值 | 描述 |
+==============+=================+===============+============================================+
| public_key_url | iap.public_key_url | https://www.gstatic.com/iap/verify/public_key | 用于验证 token 签名的密钥的 URL。 |
+--------------+-----------------+---------------+--------------------------------------------+
| algorithm | iap.algorithm | ES256 | 哈希或加密算法 |
+--------------+-----------------+---------------+--------------------------------------------+
| leeway | iap.leeway | 0 | 允许 token 过期多少秒后才拒绝。 |
+--------------+-----------------+---------------+--------------------------------------------+
| http_header | iap.http_header | x-goog-iap-jwt-assertion | 用于 tokens 的 HTTP 标头。 |
+--------------+-----------------+---------------+--------------------------------------------+
| auth_type | iap.auth_type | JWT | 在授权标头中使用的身份验证类型。对于其他 HTTP 标头不使用。 |
+--------------+-----------------+---------------+--------------------------------------------+
与 pyrmid_jwt 的区别
===========================
本包受到 `pyramid_jwt <https://pypi.ac.cn/project/pyramid_jwt/>` 的启发,并力求在可能的情况下保持兼容。
* 自动从 ``public_key_url`` 获取公钥。
* 由于身份感知代理负责颁发令牌,因此 ``create_jwt_token`` 请求方法不可用。
* ``add_iap_jwt_claims`` 配置方法没有配置任何身份验证策略,以提供给使用 ``pyramid_multiauth`` 的用户更多灵活性。
变更
=======
0.1 (2019-02-14)
----------------
* 初次发布
Google Cloud Identity-Aware Proxy身份验证策略的Pyramid实现
============================================================
此软件包实现了与Google Cloud的`Identity-Aware Proxy <https://cloud.google.com/iap>`兼容的Pyramid身份验证策略。
配置
=============
配置您的Identity-Aware Proxy后,从其设置中获取*签名头JWT受众*(详细说明请参阅`使用签名头保护您的应用程序 <https://cloud.google.com/iap/docs/signed-headers-howto>`。)
要启用Pyramid应用程序中的JWT支持
.. code-block:: python
from pyramid.config import Configurator
from pyramid.authorization import ACLAuthorizationPolicy
from pyramid_iap import JWTClaimAuthenticationPolicy
def main()
config = Configurator()
# Pyramid需要一个激活的授权策略。
config.set_authorization_policy(ACLAuthorizationPolicy())
# Identity-Aware Proxy的签名头JWT受众。
audience = "/projects/123/global/backendServices/456"
# 启用JWT身份验证。
config.include('pyramid_iap')
config.add_iap_jwt_claims(audience)
config.set_authentication_policy(JWTClaimAuthenticationPolicy())
默认情况下,用户ID是JWT令牌的"sub"声明(例如:"accounts.google.com:123456"。要使用"email"声明(例如:"test@example.com"),请指定
.. code-block:: python
config.set_authentication_policy(JWTClaimAuthenticationPolicy(userid_claim="email"))
设置
========
有一些标志指定了如何验证令牌。
您可以在您的.ini文件中设置此标志,或者直接传递/覆盖它们到`config.add_iap_jwt_claims()`函数。
+--------------+------------------+---------------+---------------------------------------------+
| 参数 | ini 文件条目 | 默认值 | 描述 |
+==============+==================+===============+=============================================+
| audience | iap.audience | | 验证过的 token 受众(必需。) |
+--------------+------------------+---------------+---------------------------------------------+
不常用设置
-----------------
如果您在 Google Cloud IAP 后运行,则不太可能需要这些设置。
+--------------+-----------------+---------------+--------------------------------------------+
| 参数 | ini 文件条目 | 默认值 | 描述 |
+==============+=================+===============+============================================+
| public_key_url | iap.public_key_url | https://www.gstatic.com/iap/verify/public_key | 用于验证 token 签名的密钥的 URL。 |
+--------------+-----------------+---------------+--------------------------------------------+
| algorithm | iap.algorithm | ES256 | 哈希或加密算法 |
+--------------+-----------------+---------------+--------------------------------------------+
| leeway | iap.leeway | 0 | 允许 token 过期多少秒后才拒绝。 |
+--------------+-----------------+---------------+--------------------------------------------+
| http_header | iap.http_header | x-goog-iap-jwt-assertion | 用于 tokens 的 HTTP 标头。 |
+--------------+-----------------+---------------+--------------------------------------------+
| auth_type | iap.auth_type | JWT | 在授权标头中使用的身份验证类型。对于其他 HTTP 标头不使用。 |
+--------------+-----------------+---------------+--------------------------------------------+
与 pyrmid_jwt 的区别
===========================
本包受到 `pyramid_jwt <https://pypi.ac.cn/project/pyramid_jwt/>` 的启发,并力求在可能的情况下保持兼容。
* 自动从 ``public_key_url`` 获取公钥。
* 由于身份感知代理负责颁发令牌,因此 ``create_jwt_token`` 请求方法不可用。
* ``add_iap_jwt_claims`` 配置方法没有配置任何身份验证策略,以提供给使用 ``pyramid_multiauth`` 的用户更多灵活性。
变更
=======
0.1 (2019-02-14)
----------------
* 初次发布
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源代码分发
pyramid_iap-0.1.tar.gz (5.4 kB 查看哈希值)
构建分发
pyramid_iap-0.1-py3-none-any.whl (6.0 kB 查看哈希值)
关闭
pyramid_iap-0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | df77be0f80aa60520180fc3f00290d77e62cd94f533c01dd18039c7b527d6c1a |
|
MD5 | a3313daaac16f041c3b9cf7a0362a18d |
|
BLAKE2b-256 | 179565a081d5499ebf85a3bb85b1ea6d2983dff22a70e82fd273130351114b00 |
关闭
pyramid_iap-0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 533f8817485a2671da4e8d11bdc0b42bdb45b90d4375da3d14ed6ce0d88df984 |
|
MD5 | 35a6e6b035bdab79ec1156fc2ae6693b |
|
BLAKE2b-256 | e096197ed5736e18820e1e037636345c087521075cc26714995fffb329399ba8 |