【问题标题】:python SAML in GAEGAE中的python SAML
【发布时间】:2015-07-23 22:43:24
【问题描述】:

是否有一个库可供我使用 python 在 App Engine 中进行 SAML 身份验证?

我看过pysaml2,它确实说它是纯python 实现。但是,它使用的 subprocess.Popen 不能在 App Engine 中使用,并且会在此时失败。

【问题讨论】:

    标签: python google-app-engine saml


    【解决方案1】:

    如果您将 flex 环境与基于 standard python27 运行时 provided by google 构建的自定义运行时一起使用,则可以在 GAE 上使用 python-saml。我刚刚获得了 onelogin 的 python-saml flask-demo 使用以下设置成功使用此方法:

    Dockerfile:

    FROM gcr.io/google_appengine/python
    LABEL python_version=python
    RUN virtualenv /env -p python
    
    # Install system packages for onelogin dependencies not already included in runtime
    RUN apt-get update && apt-get --yes --quiet install python2.7-dev libxmlsec1-dev
    
    # Set virtualenv environment variables. This is equivalent to running
    # source /env/bin/activate
    ENV VIRTUAL_ENV /env
    ENV PATH /env/bin:$PATH
    ADD requirements.txt /app/
    RUN pip install -r requirements.txt
    ADD . /app/
    CMD python index.py
    

    app.yaml

    runtime: custom
    env: flex
    entrypoint: python index.py
    
    api_version: 1
    threadsafe: true
    

    requirements.txt

    flask==0.10.1
    python-saml
    

    然后简单地做gcloud app deploy app.yaml --version v1

    【讨论】:

    • 注意:灵活环境和自定义运行时仍处于测试阶段
    • 是否可以在单个应用程序中运行灵活的环境(在单独的服务中)和标准环境?因为我必须在灵活的环境中实现 python-saml 并且所有其他代码都应该使用标准环境
    【解决方案2】:

    【讨论】:

    • 似乎python-saml 需要包dm.xmlsec.binding,这是一个绑定到xmlsec 的Cython,所以我猜这就是它会失败的地方。但是,我不再有权访问需要此功能的项目,因此无法对此进行测试。
    猜你喜欢
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 2021-10-06
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多