我正在尝试通过在我的网站中作为服务提供商(SP)和Okta env实施SAML 2.0来与Okta SSO集成。作为我的身份提供者(IDP) 我无法理解如何配置我的IDP以返回每个Auth请求,用户所在的组。如何完成?
此外,是否可以在我的IDP中设置服务帐户,如果用户位于某个特定组内,我的后端可以直接询问IDP?
答案 0 :(得分:11)
通过在Okta管理仪表板中正确配置SP App,可以将组添加到SAMLResponse。
要为现有应用执行此操作,请转到“管理员”面板并编辑SAML设置以包含Group attribute statements
。
例如,如果要将包含单词admin
的所有组公开给SP,请添加具有正确名称的字段(即组),并指定值regex
的{{1}}过滤器。
正确配置后,SAMLResponse将包含以下节点:
.*admin.*
请注意,无论是Okta组,AD组等,组都将包含所有包含单词<saml2p:Response
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
......
......
<saml2p:Status
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
<saml2p:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</saml2p:Status>
<saml2:Assertion
......
......
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
<saml2:AttributeStatement
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
<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_1
</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">it_admins
</saml2:AttributeValue>
</saml2:Attribute>
</saml2:AttributeStatement>
</saml2:Assertion>
</saml2p:Response>
的组。