0

我正在尝试使用 python 使用会话 ID、环境名称和标签名称从时间序列洞察中提取值。我想出的步骤如下。我能够使用访问令牌获取会话,我可以使用它访问具有我想要提取的标签值的 TSI 环境。

使用访问令牌获取会话

headers = {"Authorization": auth_token}
tsi_session = requests.Session()
tsi_session.params = params
tsi_session.headers.update(headers)

使用会话并访问 TSI 环境

tsi_environment = tsi_api_wrapper.get_tsi_environment(session=tsi_session, environment_name="some_name")
print(tsi_environment)

我能够获得环境属性。在不使用客户端 ID 和客户端密码但仅使用上述输入的情况下获取特定标签的值的下一步是什么。

任何帮助将非常感激。

4

1 回答 1

0

要调用 Azure TSI 的 REST API,您将始终需要提供 Azure AD JWT 令牌,并且始终首先需要检索令牌的身份进行身份验证。因此,无论是用户密码、客户端密码、证书等,总是需要某种秘密。我看到你有一个身份验证令牌,很好。令牌的对象 ID 是应用程序的 ID 吗?我假设您正在寻找有关如何让您的 Web 应用程序促进交互式用户登录以及该应用程序将 TSI 作为下游 API 调用的示例?我相信你需要找到这个示例的 python 等价物。请注意,您的问题更多是关于获取身份验证令牌,而不是特定于 TSI 的问题,因此您可能会考虑标记“azure-active-directory”。

这个用户列表是固定的,还是会动态变化?如果它是动态的,那么这可能会出现问题,因为令牌中的对象 ID 必须具有 TSI 环境的角色分配。在这种情况下,您可以改为让用户登录到应用程序,但随后应用程序本身可以转身并调用 TSI API 作为服务主体。我发现这篇文章似乎适用于您的情况https://towardsdatascience.com/how-to-secure-python-flask-web-apis-with-azure-ad-14b46b8abf22

于 2021-01-27T03:17:34.127 回答