蟒蛇
auth0-python的Python项目详细描述
在这个存储库中,您将找到有关将auth0与python集成的所有信息。
什么是auth0?
auth0帮助您:
- 使用multiple authentication sources添加身份验证, 比如google、facebook、microsoft account、linkedin、github、twitter、box、salesforce等等, 或企业标识系统,如windows azure ad、google apps、active directory、adfs或任何saml标识提供程序。
- 通过更传统的username/password databases添加身份验证。
- 添加对同一用户的linking different user accounts的支持。
- 支持生成签名的JSON Web Tokens以调用您的api并安全地传递用户标识。
- 分析用户登录的方式、时间和位置。
- 从其他源中提取数据并通过JavaScript rules将其添加到用户配置文件中。
创建一个免费的auth0帐户
- 转到Auth0并单击“注册”。
- 使用google、github或microsoft帐户登录。
安装
可以使用以下命令安装auth0 python sdk。
pip install auth0-python
对于python3,请使用以下命令
pip3 install auth0-python
python 3.2和3.3已经达到了EOL,支持将在不久的将来被删除。
管理sdk用法
要使用管理库,您需要用域和Management API v2 token实例化auth0对象。请注意,这些令牌持续24小时,因此如果您经常需要它,您应该使用授权访问api的non interactive client的客户端凭据授权以编程方式请求它。例如:
fromauth0.v3.authenticationimportGetTokendomain='myaccount.auth0.com'non_interactive_client_id='exampleid'non_interactive_client_secret='examplesecret'get_token=GetToken(domain)token=get_token.client_credentials(non_interactive_client_id,non_interactive_client_secret,'https://{}/api/v2/'.format(domain))mgmt_api_token=token['access_token']
然后使用您获得的令牌,如下所示:
fromauth0.v3.managementimportAuth0domain='myaccount.auth0.com'mgmt_api_token='MGMT_API_TOKEN'auth0=Auth0(domain,mgmt_api_token)
Auth0()对象现在可以接受命令了! 让我们看看如何使用它来获得所有可用的连接。 (此操作要求令牌具有以下作用域:read:connections)
auth0.connections.all()
它将生成类似于以下内容的连接列表:
[{'enabled_clients':[u'rOsnWgtw23nje2QCDuDJNVpxlsCylSLE'],'id':u'con_ErZf9LpXQDE0cNBr','name':u'Amazon-Connection','options':{u'profile':True,u'scope':[u'profile']},'strategy':u'amazon'},{'enabled_clients':[u'rOsnWgtw23nje2QCDuDJNVpxlsCylSLE'],'id':u'con_i8qF5DPiZ3FdadwJ','name':u'Username-Password-Authentication','options':{u'brute_force_protection':True},'strategy':u'auth0'}]修改现有连接同样容易。我们改名吧 关于连接'con_ErZf9LpXQDE0cNBr'。 (令牌需要作用域:update:connections才能使其工作)
auth0.connections.update('con_ErZf9LpXQDE0cNBr',{'name':'MyNewName'})
就这样!使用连接端点的get方法,我们可以验证 改名是真的发生了。
modified_connection=auth0.connections.get('con_ErZf9LpXQDE0cNBr')
它返回如下内容
{'enabled_clients':[u'rOsnWgtw23nje2QCDuDJNVpxlsCylSLE'],'id':u'con_ErZf9LpXQDE0cNBr','name':u'MyNewName','options':{u'profile':True,u'scope':[u'profile']},'strategy':u'amazon'}
成功!
所有端点都遵循与connections相似的结构,并尝试遵循 尽可能靠近API documentation。
身份验证sdk用法
身份验证sdk分为多个组件,模仿 API’s documentation。 例如:
fromauth0.v3.authenticationimportSocialsocial=Social('myaccount.auth0.com')s.login(client_id='...',access_token='...',connection='facebook')
可用的管理端点
- 黑名单()(Auth0().blacklists)
- clients()(Auth0().clients)
- clientgrants()(Auth0().client_grants)
- connections()(Auth0().connections)
- deviceCredentials()(Auth0().device_credentials)
- 电子邮件()(Auth0().emails)
- emailTemplates()(Auth0().email_templates)
- 守护者()(Auth0().guardian)
- jobs()(Auth0().jobs)
- logs()(Auth0().logs)
- resourceservers()(Auth0().resource_servers)
- rules()(Auth0().rules)
- stats()(Auth0().stats)
- 租户()(Auth0().tenants)
- 票证()(^{TT21}$)
- userblocks()(Auth0().user_blocks)
- users()(Auth0().users)
- usersbyemail()(Auth0().users_by_email)
可用的身份验证终结点
- 用户(authentication.Users)
- 数据库(authentication.Database)
- 委派(authentication.Delegated)
- 企业(authentication.Enterprise)
- 无密码(authentication.Passwordless)
- 社交(authentication.Social)
- API授权-获取令牌(authentication.GetToken)
- API授权-授权代码授权(^{TT32}$)
更改日志
请看CHANGELOG.md。
问题报告
如果您发现了一个bug或者有一个功能请求,请在这个存储库问题部分报告它们。 请不要在公共GitHub问题跟踪程序上报告安全漏洞。 Responsible Disclosure Program详细说明了披露安全问题的过程。
许可证
这个项目是由麻省理工学院授权的。见LICENSE 文件以获取更多信息。