Python 使用数据狗';您是否可以获取自己的凭据,如果可以,如何获取?

Python 使用数据狗';您是否可以获取自己的凭据,如果可以,如何获取?,python,authentication,devops,datadog,Python,Authentication,Devops,Datadog,我试图创建一个函数,该函数只有在管理员用户运行它并返回异常时才有效。然而,我不完全确定如何获得自己的证书。也就是说,我只想检查当前用户的access\u角色 要获取其他人的访问\u角色,我可以简单地运行api.User.get\u all(),它返回如下内容: {'handle': 'someone@somesite.com', 'name': None, 'access_role': 'st', 'verified': False, 'disabled': False, 'is_admin':

我试图创建一个函数,该函数只有在管理员用户运行它并返回异常时才有效。然而,我不完全确定如何获得自己的证书。也就是说,我只想检查当前用户的
access\u角色

要获取其他人的
访问\u角色
,我可以简单地运行
api.User.get\u all()
,它返回如下内容:

{'handle': 'someone@somesite.com', 'name': None, 'access_role': 'st', 'verified': False, 'disabled': False, 'is_admin': False, 'role': None, 'email': 'Someone@SomeSite.com', 'icon': 'https://secure.gravatar.com/avatar/000000000000000000000000000000000?s=00&z=retro'} 
access\u role
字段显示三个选项之一:

  • adm
    ~管理员用户

  • st
    ~标准用户

  • ro
    ~只读用户

我一直在尝试创建一个
get_me()
函数,该函数不接受任何参数并返回所有这些信息,但不管是谁调用它

只要使用
get_me()
函数,我就可以轻松地在线查找资源

# Function that returns the current users information
def get_me():
    # If there is a command to do this, I'd put it here...
    return api.User.some_command();
不过,我希望能够将最终结果应用到函数,如
delete()

# Deletes a dashboard iff the user is an admin user
def delete(self, idno):
    cred = self.get_me();
    if cred['access_role'] == 'adm':
        print 'Dashboard successfully deleted!'
        return api.Dashboard.delete(idno);
    else:
        print 'Not authorized to delete this Dashboard!'
        return api.Dashboard.get(idno);

代码是否可以访问用户的电子邮件?如果是,那么您应该能够使用,并将电子邮件输入其中。对于这个用例,您将得到许多有趣的响应,例如:

'access_role': 'st',  # etc
'disabled': False,
'role': None,
'is_admin': False,

此外,仪表板确实具有“权限”设置,您可以使用该设置将仪表板设置为“只读”,以供不是仪表板创建者/管理员的任何人使用。这也应该通过api进行设置

API只通过API/应用程序密钥进行验证,这些密钥几乎都是管理员用户。没有任何方法可以向端点添加用户级身份验证


您需要在您的终端上进行某种身份验证,以证明用户是谁,然后将其与DD上的管理员列表进行比较,然后,如果他们是合法的,则调用您的API脚本。可能会跳过所有只有DD admin用户可以访问和运行API脚本的机器

嗨!谢谢你的来信。我假设是这样,因为它确切地知道用户在使用新对象时发布了什么。但是,它似乎没有办法让用户从本质上检查他们自己的凭证是什么。用户API是我当前使用的。理想情况下,我试着做一些类似于
api.User.get(self.id)
或类似的事情。噢,我不认为
api.User
在datadogpy库中是这样工作的。“User”类实际上与脚本本身的用户没有任何关系。但是,您可以编写自己的用户类,该类将脚本用户的句柄作为参数,并在自己的初始化中将其馈送到
api.User.get()
。但是
API.User.get()
上的API调用确实需要知道要为哪个用户调用信息,我很确定Datadogpy库无法单独获取这些信息。值得思考的是:Datadogpy库确实有一个.dogrc文件设置来引用特定于用户的API/应用程序密钥。您自己的用户管理工作的用户句柄也可以这样做。