在Microsoft Azure Active Directory中使用OAuth 2.0保护Chronograf
作者 Craig Hobbs / 开发者
2018年12月17日
导航到
虽然我们通常收到有关如何确保访问后端数据存储的问题,但在某些情况下,将安全措施放在前端应用程序上更为实际。
如果您的组织使用包含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 可以是一种快速简单的方法来添加一个集中的用户安全层。