python - 如何将 Python OpenID Connect 模块与 IBM Cloud App ID 结合使用?

标签 python authentication ibm-cloud openid-connect ibm-appid

我注册了IBM Cloud App ID保护对我的云应用程序的访问。有一个示例表明该服务可以与 Python 一起使用。但是,我想使用(标准)OpenID Connect 模块之一。我该如何配置,例如 Flask-pyoidc与应用程序 ID 一起使用?它需要几个参数,但我不确定它们与 App ID 提供的内容有何关系。

provider_config = {
    'issuer': 'https://op.example.com',
    'authorization_endpoint': 'https://op.example.com/authorize',
    'token_endpoint': 'https://op.example.com/token',
    'userinfo_endpoint': 'https://op.example.com/userinfo'
}
auth = OIDCAuthentication(provider_configuration_info=provider_config)

最佳答案

以下是如何配置 provider_config

provider_config={
     "issuer": "appid-oauth.ng.bluemix.net",
     "authorization_endpoint": appIDInfo['oauthServerUrl']+"/authorization",
     "token_endpoint": appIDInfo['oauthServerUrl']+"/token",
     "userinfo_endpoint": appIDInfo['profilesUrl']+"/api/v1/attributes",
     "jwks_uri": appIDInfo['oauthServerUrl']+"/publickeys"
}

appIDInfo 可以从 IBM Cloud 上的 Cloud Foundry 环境获取,也可以使用如下结构手动配置:

"AppID": {
     "clientId": "your App ID client Id",
     "managementUrl": "https://appid-management.ng.bluemix.net/management/v4/-----tenantID----",
     "oauthServerUrl": "https://appid-oauth.ng.bluemix.net/oauth/v3/-----tenantID----",
     "profilesUrl": "https://appid-profiles.ng.bluemix.net",
     "secret": "the App ID secret",
     "tenantId": "-----tenantID----",
     "version": 3
}

然后,clientIdsecret 将用于填充 Flask-pyoidc 所需的 client_info 对象。我有sample code using Flask-pyoidc with App ID in a GitHub repository 。它显示了从配置到使用装饰器来保护 Flask 中的应用程序路由的所有步骤。

关于python - 如何将 Python OpenID Connect 模块与 IBM Cloud App ID 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50187935/

相关文章:

python - Series 的真值不明确 - 调用函数时出错

python - 从 MongoDB 获取大数据的最佳方法

ibm-cloud - 如何将 dashDB(在 Bluemix 上)与 Object Storage(在 Bluemix 上)连接起来?

node.js - 如何在bluemix上配置socket.io粘性 session

python - 存储时间序列数据时,将日期设置为 _id 是个好主意吗?

python - 在 sqlalchemy 中延迟加载列

django - 自定义用户类会破坏 django 中的应用程序吗?

java - 登录功能改进并解决循环问题

ruby-on-rails - 如何使用 rspec 在设计中测试 json 登录

apache-kafka - 客户端 ID 身份验证不再适用于 Kafka API