Настройка синхронизации команд для SAML
Note
Доступно в Grafana Enterprise и для клиентов на отдельных планах Grafana Cloud. Информацию о ценах см. на странице цены или свяжитесь с нашей командой продаж.
Чтобы использовать синхронизацию команд SAML, установите
assertion_attribute_groups в имя атрибута, где вы храните группы пользователей. Затем Grafana будет использовать значения атрибутов, извлечённые из утверждения SAML, чтобы добавлять пользователя в группы с тем же именем, настроенные на вкладке External group sync.
Warning
Grafana требует, чтобы атрибут групп SAML был настроен с отдельными элементами
AttributeValueдля каждой группы. Не включайте несколько групп в одинAttributeValue, разделённых запятой или любым другим символом. Несоблюдение этого приведёт к невозможности правильного разбора групп. Пример:<saml2:Attribute ...> <saml2:AttributeValue ...>admins_group</saml2:AttributeValue> <saml2:AttributeValue ...>division_1</saml2:AttributeValue> </saml2:Attribute>
Note
Синхронизация команд позволяет синхронизировать пользователей из SAML с командами Grafana. Она не создаёт команды в Grafana автоматически. Вам нужно создать команды в Grafana, прежде чем вы сможете использовать эту функцию.
Учитывая следующее частичное утверждение SAML:
<saml2:Attribute
Name="groups"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml2:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">admins_group
</saml2:AttributeValue>
<saml2:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">division_1
</saml2:AttributeValue>
</saml2:Attribute>
Конфигурация будет выглядеть так:
[auth.saml]
# ...
assertion_attribute_groups = groups
Следующие External Group ID будут допустимы для ввода на вкладке External group sync нужной команды:
admins_groupdivision_1
Узнать больше о синхронизации команд
Настройка синхронизации ролей для SAML
Синхронизация ролей позволяет сопоставлять роли пользователей от провайдера идентификации с Grafana. Чтобы включить синхронизацию ролей, настройте атрибут роли и возможные значения для ролей Editor, Admin и Grafana Admin. Дополнительную информацию о ролях пользователей см. в разделе Роли и разрешения.
- В файле конфигурации установите параметр
assertion_attribute_roleв имя атрибута, из которого будет извлекаться информация о роли. - Установите параметр
role_values_noneв значения, сопоставленные с рольюNone. - Установите параметр
role_values_viewerв значения, сопоставленные с рольюViewer. - Установите параметр
role_values_editorв значения, сопоставленные с рольюEditor. - Установите параметр
role_values_adminв значения, сопоставленные с ролью организацииAdmin. - Установите параметр
role_values_grafana_adminв значения, сопоставленные с рольюGrafana Admin.
Если роль пользователя не соответствует ни одному из настроенных значений, то будет назначена роль, указанная параметром конфигурации auto_assign_org_role. Если поле auto_assign_org_role не задано, то роль пользователя по умолчанию будет Viewer.
Дополнительную информацию о ролях и разрешениях в Grafana см. в разделе Роли и разрешения.
Пример конфигурации:
[auth.saml]
assertion_attribute_role = role
role_values_none = none
role_values_viewer = external
role_values_editor = editor, developer
role_values_admin = admin, operator
role_values_grafana_admin = superadmin
Важно: Когда синхронизация ролей настроена, любые изменения ролей пользователей и членства в организациях, сделанные вручную в Grafana, будут перезаписаны при следующем входе пользователя. Назначайте организации и роли пользователей в IdP вместо этого.
Если вы не хотите, чтобы организации и роли пользователей синхронизировались с IdP, вы можете использовать параметр конфигурации skip_org_role_sync.
Пример конфигурации:
[auth.saml]
skip_org_role_sync = true
Настройка синхронизации ролей с Okta
В этом разделе показано, как настроить Okta на отправку членства в группах в утверждении SAML, а затем использовать эти группы для назначения ролей в Grafana.
Шаг 1: настройте Okta на отправку групп
-
В Okta Admin перейдите в Applications > Applications и откройте ваше приложение Grafana SAML.
-
Откройте вкладку Sign On, затем нажмите Edit в разделе SAML 2.0.
-
Прокрутите до GROUP ATTRIBUTE STATEMENTS.
-
Добавьте атрибут группы со следующими настройками:
-
Нажмите Save.
Эта конфигурация отправляет все группы Okta, к которым принадлежит пользователь, в утверждении SAML под атрибутом Group.
Note
Чтобы отправить только определённые группы, измените фильтр регулярного выражения. Например,
grafana-.*отправляет только группы, начинающиеся сgrafana-.
Шаг 2: настройте Grafana на сопоставление групп с ролями
Используйте атрибут группы для назначения ролей, установив assertion_attribute_role в имя вашего атрибута группы:
[auth.saml]
# Use the Group attribute (sent from Okta) for role assignment
assertion_attribute_groups = Group
assertion_attribute_role = Group
# Map Okta group names to Grafana roles
role_values_admin = grafana-admins
role_values_editor = grafana-editors
role_values_viewer = grafana-viewers
С этой конфигурацией:
- Пользователи в группе Okta
grafana-adminsполучают роль Admin - Пользователи в группе Okta
grafana-editorsполучают роль Editor - Пользователи в группе Okta
grafana-viewersполучают роль Viewer - Пользователи, не соответствующие ни одной группе, получают роль, указанную
auto_assign_org_role(по умолчанию Viewer)
Note
Имена групп учитывают регистр. Убедитесь, что имена групп в конфигурации Grafana точно совпадают с именами групп Okta.
Если вы пользователь Grafana Cloud и хотите настроить SAML через интерфейс:
- Перейдите в Administration > Authentication > Configure SAML.
- В разделе User mapping установите:
- Groups attribute:
Group - Role attribute:
Group
- Groups attribute:
- В разделе Role mapping введите имена ваших групп Okta для каждой роли.
- Нажмите Save.