如何将Python OpenID Connect模块与IBM Cloud App ID一起使用?

时间:2018-05-05 09:37:26

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

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

Array

1 个答案:

答案 0 :(得分:1)

以下是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中的应用程序路径的所有步骤。