如何在我的 Amazon Managed Grafana 工作区中向通过 SAML 身份验证的用户授予管理员访问权限?
用户可以通过 SAML 身份验证成功登录我的 Amazon Managed Grafana 工作区。但是,他们没有管理员访问权限。
简短描述
当使用 SAML 身份验证启用 Amazon Managed Grafana 工作区时,服务与身份提供者 (IdP) 应用程序之间的属性断言映射必须匹配。不匹配会导致用户无法获得正确的权限。在这种情况下,所有拥有应用程序访问权限的用户都是查看者。
解决方法
使用浏览器开发人员工具,确定 SAML 断言发送的属性
1.在浏览器的右上角,选择菜单。然后为浏览器选择开发人员工具:
Firefox:选择更多工具、Web 开发人员工具。
Chrome:选择开发人员工具。
2.在开发人员工具菜单中,选择网络面板。
3.在同一浏览器选项卡中,导航到 Amazon Managed Grafana 工作区 URL。
4.选择使用 SAML 登录。输入您的凭证,然后进入 IdP 登录页面。
5.在开发人员工具窗格的网络日志中,找到断言消费者服务 (ACS) URL。
**提示:**搜索 acs 文件名、POST 方法和 302 状态。
6.在请求详细信息中,选择请求 (Firefox) 或有效负载 (Chrome) 选项卡。然后,复制 SAML 响应中的内容。
7.捕获的 SAML 响应采用 base64 编码。要解码,请使用 base64 解码工具,提取 XML 标记的响应。
**注意:**由于 SAML 响应可能包含敏感的安全数据,因此最好不要使用在线 base64 解码器。
Windows 系统的内置选项 (PowerShell)
PS C:\> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("PD94bWwgdmVyc2lvbj0iMS4wIj8+PGV4YW1wbGU+PG1lc3NhZ2U+VGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUgb2YgYmFzZTY0LWVuY29kZWQgWE1MIGZpbGUuIFJlcGxhY2UgaXQgYnkgdGhlIGFjdHVhbCBTQU1MIFJlc3BvbnNlIGVuY29kZWQgeW91IGdvdCBmcm9tIHRoZSBicm93c2VyIGRldmVsb3BlciB0b29sczwvbWVzc2FnZT48L2V4YW1wbGU+Cg=="))
macOS 和 Linux 系统的内置选项
$ echo "PD94bWwgdmVyc2lvbj0iMS4wIj8+PGV4YW1wbGU+PG1lc3NhZ2U+VGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUgb2YgYmFzZTY0LWVuY29kZWQgWE1MIGZpbGUuIFJlcGxhY2UgaXQgYnkgdGhlIGFjdHVhbCBTQU1MIFJlc3BvbnNlIGVuY29kZWQgeW91IGdvdCBmcm9tIHRoZSBicm93c2VyIGRldmVsb3BlciB0b29sczwvbWVzc2FnZT48L2V4YW1wbGU+Cg==" |base64 -d |xmllint --pretty 1 -
您收到的输出类似于以下消息:
<?xml version="1.0"?> <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Destination="https://g-0123456789.grafana-workspace.us-east-1.amazonaws.com/saml/acs" ID="ID\_76eb61f5-fb11-4f8b-bd7d-418f8a17156c" InResponseTo="id-ce1f5b28b091d0ebac109b5f34f125a18b7f94a5" IssueInstant="2023-04-28T10:19:57.780Z" Version="2.0"> <saml:Issuer>https://idp.example.com/saml</saml:Issuer> <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> REDACTED </dsig:Signature> <samlp:Status> <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> </samlp:Status> <saml:Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="ID\_a1234b56-789c-1234-d567-8e1234f56789" IssueInstant="2023-04-28T10:19:57.780Z" Version="2.0"> <saml:Issuer>https://idp.example.com/saml</saml:Issuer> <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> <dsig:SignedInfo> <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <dsig:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> <dsig:Reference URI="#ID\_a1234b56-789c-1234-d567-8e1234f56789"> <dsig:Transforms> <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <dsig:DigestValue>REDACTED</dsig:DigestValue> </dsig:Reference> </dsig:SignedInfo> <dsig:SignatureValue>REDACTED</dsig:SignatureValue> <dsig:KeyInfo> REDACTED </dsig:KeyInfo> </dsig:Signature> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">G-bd98f293-922c-4f70-a8c3-bc973a75d600</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData InResponseTo="id-ce1f5b28b091d0ebac109b5f34f125a18b7f94a5" NotOnOrAfter="2023-04-28T10:24:55.780Z" Recipient="https://g-0123456789.grafana-workspace.us-east-1.amazonaws.com/saml/acs"/> </saml:SubjectConfirmation> </saml:Subject> <saml:Conditions NotBefore="2023-04-28T10:19:55.780Z" NotOnOrAfter="2023-04-28T10:20:55.780Z"> <saml:AudienceRestriction> <saml:Audience>https://g-0123456789.grafana-workspace.us-east-1.amazonaws.com/saml/metadata</saml:Audience> </saml:AudienceRestriction> <saml:OneTimeUse/> </saml:Conditions> <saml:AuthnStatement AuthnInstant="2023-04-28T10:19:57.780Z" SessionIndex="a678db73-aaf9-4d34-8016-4deea551aaac::15728029-bd04-4e00-8ca6-acb338fde6fe" SessionNotOnOrAfter="2023-04-28T20:19:57.780Z"> <saml:AuthnContext> <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> <saml:AttributeStatement> <saml:Attribute FriendlyName="Role" Name="Role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Admin</saml:AttributeValue> </saml:Attribute> <saml:Attribute FriendlyName="mail" Name="mail" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">user@example.com</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="displayName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">User</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion> </samlp:Response>
8.注意 saml:AttributeStatement 下面的属性名称和值。后续步骤中需要这些值。
映射 Amazon Managed Grafana SAML 配置中的属性
1.打开 Amazon Managed Grafana 控制台。
2.在左侧导航窗格中,选择所有工作区。
3.选择要配置 SAML 身份验证的工作区。
4.在身份验证选项卡中,选择 SAML 配置。
5.在步骤 3: 映射断言属性下面,输入以下信息:
断言属性角色:输入 SAML 属性名称或 FriendlyName(在 AttributeStatement 下列出)。在前面的 SAML 响应示例中,此属性为 Role。
管理员角色值: 这是授予管理员角色的角色名称列表,以逗号分隔。此列表位于 AttributeValue 中,该属性直接映射到属性名称或 FriendlyName 角色下。在前面的 SAML 响应示例中,此值为 Admin。
6.要完成配置,请选择保存 SAML 配置。
相关信息
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 5 个月前
- AWS 官方已更新 10 个月前