获取用户在 Okta 中关联的组列表
Getting list of groups user is associated with in Okta
我正在尝试通过在我的网站中将 SAML 2.0 实施为服务提供商 (SP) 和 Okta env 来与 Okta SSO 集成。作为我的身份提供者 (IDP)
我不明白如何将我的 IDP 配置为 return 每个 Auth 请求,用户所在的组。如何完成?
此外,是否可以在我的 IDP 中拥有服务帐户,如果用户在某个特定组中,我的后端可以直接询问 IDP?
通过在 Okta 管理仪表板中正确配置 SP 应用程序,可以将组添加到 SAMLResponse。
要为现有应用执行此操作,请转到管理面板并编辑 SAML 设置以包含 Group attribute statements
。
例如,如果您想要向您的 SP 公开包含单词 admin
的所有组,请添加一个具有适当名称(即组)的字段并指定一个值为 .*admin.*
的 regex
过滤器。
配置正确后SAMLResponse会包含以下节点:
<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>
请注意,组将包含所有包含单词 admin
的组,无论它是 Okta 组、AD 组等。
我正在尝试通过在我的网站中将 SAML 2.0 实施为服务提供商 (SP) 和 Okta env 来与 Okta SSO 集成。作为我的身份提供者 (IDP) 我不明白如何将我的 IDP 配置为 return 每个 Auth 请求,用户所在的组。如何完成?
此外,是否可以在我的 IDP 中拥有服务帐户,如果用户在某个特定组中,我的后端可以直接询问 IDP?
通过在 Okta 管理仪表板中正确配置 SP 应用程序,可以将组添加到 SAMLResponse。
要为现有应用执行此操作,请转到管理面板并编辑 SAML 设置以包含 Group attribute statements
。
例如,如果您想要向您的 SP 公开包含单词 admin
的所有组,请添加一个具有适当名称(即组)的字段并指定一个值为 .*admin.*
的 regex
过滤器。
配置正确后SAMLResponse会包含以下节点:
<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>
请注意,组将包含所有包含单词 admin
的组,无论它是 Okta 组、AD 组等。