在Microsoft Azure Active Directory中使用OAuth 2.0保护Chronograf

导航到

虽然我们通常收到有关如何确保访问后端数据存储的问题,但在某些情况下,将安全措施放在前端应用程序上更为实际。

如果您的组织使用包含OAuth2支持的标识提供者,Chronograf应用程序可以轻松配置以添加对用户授权和身份验证的支持。在本例中,我们将展示如何快速使用来自Microsoft Azure Active Directory (Azure AD)的正确元数据配置Chronograf。

Azure AD建立在OAuth2协议之上,该协议定义了多种身份验证方法,最终用户将获得一个访问令牌来验证给定资源。

在此工作流程中,用户将从一个Chronograf应用程序重定向到Microsoft Azure登录界面。在那里,个人将需要输入电子邮件和密码,才能访问应用程序资源。

创建Azure AD应用程序

让我们首先在Azure Active Directory中创建一个新的应用程序。您可以在以下位置找到关于此过程的详细描述:创建Azure Active Directory应用程序

一旦您已配置Chronograf应用程序,您可以将用户和组分配给应用程序,或选择使其对您的租户中的所有用户可访问。

接下来,您需要记录以下元数据信息:<APPLICATION-ID>、<TENANT-ID>和<APPLICATION-KEY>。这些值将用于定义您的Chronograf环境并成功验证具有访问权限的用户。

获取租户ID

获取应用程序ID和应用程序密钥

在保存密钥后,密钥的值将显示出来。请复制此值,因为您无法稍后检索密钥。

注册回调URL

请确保在您的Azure应用程序设置中注册一个回复URL。它应该与Chronograf的调用URL匹配。否则,您将收到一个错误,指出未为应用程序注册回复地址。例如,如果Chronograf配置了<GENERIC_NAME>值为“AzureAD”,则回复URL将是“https://127.0.0.1:8888/AzureAD/callback”

注意:如果您还配置了Chronograf的TLS/SSL安全,则需要修改协议以确保您有https://协议(而不是http://)。

Chronograf配置

在Azure AD中完成应用程序配置后,您现在可以完成Chronograf的配置。使用您的Azure AD实例的元数据,导出以下环境变量

Chronograf的导出(例如,在 /etc/default.chronograf 中)

  • GENERIC_TOKEN_URL=https://login.microsoftonline.com/<<TENANT-ID>>/oauth2/token
  • TENANT=<<TENANT-ID>>
  • GENERIC_NAME=AzureAD
  • GENERIC_API_KEY=userPrincipalName
  • GENERIC_SCOPES=openid
  • GENERIC_CLIENT_ID=<<APPLICATION-ID>>
  • GENERIC_AUTH_URL=https://login.microsoftonline.com/<<TENANT-ID>>/oauth2/authorize?resource=https://graph.windows.net
  • GENERIC_CLIENT_SECRET=<<APPLICATION-KEY>>
  • TOKEN_SECRET=secret
  • GENERIC_API_URL=https://graph.windows.net/<<TENANT-ID>>/me?api-version=1.6
  • PUBLIC_URL=https://127.0.0.1:8888

用户登录

现在,启动Chronograf并导航到Web UI(localhost:8888)。您将看到一个新屏幕,其中包括使用新配置的身份验证类型选项。

用户将被重定向到授权端点,在那里他们将输入他们的电子邮件和密码以使用 Azure AD 进行身份验证。

登录成功的用户将获得授权代码,证明他们刚刚登录。用户现在已认证,并将被带到 Chronograf Web-UI,其角色访问权限由他们的 Azure AD 个人资料或 Chronograf 管理员设置的默认值维护。

结论

对于那些只需要限制对 Web-UI 的访问的用户,利用您的 Microsoft Azure Active Directory 可以是一种快速简单的方法来添加一个集中的用户安全层。