Сопоставление пользовательского атрибута с группой

Я пытаюсь сопоставить настраиваемый атрибут SAML, используемый другим приложением, с группой. По сути, у нас есть 3 роли, и идея состоит в том, чтобы иметь 3 группы AD, которые будут связаны с каждой ролью.

Согласно ответу в Атрибуты группы Okta, я вижу, что это невозможно напрямую.

Что я пробовал в соответствии с предложением, так это установить настраиваемое сопоставление профиля для приложения с вложенными тернарными операторами, чтобы имитировать 3 оператора if для установки атрибута. Однако, хотя тернарные операторы работают, работа сопоставления при создании части «Выражения атрибутов» не работает.

Как еще я могу это сделать? Я бы предпочел не создавать 3 приложения для 3 разных ролей, если это возможно.


person user12321    schedule 24.02.2016    source источник


Ответы (1)


В подобных сценариях Okta отправит группу (группы), членом которых является пользователь, в качестве пользовательского атрибута.

В конфигурации приложения SAML этот параметр представлен как имя группы и фильтр группы. (Приложение -> вкладка «Общие» -> настройки приложения)

Я создам группы, которые будут представлять «роль», которую я хочу, чтобы пользователь-участник имел в нисходящем приложении (SP), а затем применю групповой фильтр, чтобы включить только эти группы.

App1.Roleabc App1.Roleefg App1.Rolehij

Фильтр группы: Приложение1.* Имя группы: Группы

Группа «имя» будет именем атрибута, используемого в утверждении, и утверждение saml, основанное на этих значениях, будет выглядеть примерно так:

<saml2p:Response>
    ...
    <saml2:Assertion>"
        ...
        <saml2:Subject>
            <saml2:NameID>[email protected]</saml2:NameID>
            ...
        </saml2:Subject>
        ...
        <saml2:AttributeStatement>
            <saml2:Attribute Name="arbitraryAttribut">
                <saml2:AttributeValue> meaningfulValue </saml2:AttributeValue>
            </saml2:Attribute>
            <saml2:Attribute Name="Groups">
                <saml2:AttributeValue> App1.Roleabc </saml2:AttributeValue>
                <saml2:AttributeValue> App1.Rolehij </saml2:AttributeValue>
            </saml2:Attribute>
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>
person Matt Egan    schedule 25.02.2016
comment
Так что в этом случае роль должна называться точно так же, как и в AD, верно? Предположим, я вас правильно понял. Я думал о чем-то подобном, например. переименовать группу AD, чтобы Okta- не было в имени группы, а затем выполнить групповой фильтр на основе любой группы, в которой находится этот пользователь. - person user12321; 27.02.2016
comment
Да, с помощью этого метода значение, отправляемое в утверждении SAML, будет полным именем группы, как определено в AD (и впоследствии Okta). - person Matt Egan; 01.03.2016