在用于Looker的配置saml协议的文档中,我找到了 SP Entity / IdP Audience 属性,这让我非常困惑,因为我不知道saml中的哪个元素请求此属性对应。本文介绍了如何将Looker配置为服务提供者。但是据我所知,除了 Issuer 外,我们不会向身份提供者发送任何有关请求者的信息。
除此之外,它还有一个非常奇怪的描述:
“ SP实体/ IdP受众:Looker不需要此字段,但是许多IdP都需要此字段。如果您在此字段中输入值,则该值将作为Looker的<授权请求中的“ strong>实体ID ”。在这种情况下,Looker仅接受具有此值的授权响应作为“受众群体”。如果您的IdP需要受众群体值,请在此处输入该字符串。
此值还用作发送到IdP的邮件中的发出者字段。因此,如果您的IdP抱怨它收到的消息没有发出者,那么您需要填写此消息。您可以使用IdP可能需要的任何字符串。在大多数情况下,您可以使用“ Looker”。如果存在此字段,则您的IdP必须将其作为消息中的受众字段发送回给Looker。”
我认为 EntityId 是在 Issuer 元素中发送的值,但是这种描述使我自己非常愚蠢。我的意思是我找不到任何适合的规格。那么有人可以解释这一神秘财产的含义吗?
Here是我标记的文档和saml协议specification(3.2请求和响应)。
我应该解释说我不使用Looker,但是我在不同的服务中寻找saml配置的示例!我们计划添加对我们产品的saml支持,以便进行一些研究。
答案 0 :(得分:0)
(1)我们可以从您提供的有关saml协议规范的链接(3.2请求和响应)中获取以下信息。
(I)Internet2是SAML协议规范的核心贡献者之一。
(II)3.2请求和响应
3.2.1复杂类型RequestAbstractType
ID [Required]
Version [Required]
IssueInstant [Required]
Destination [Optional]
Consent [Optional]
<saml:Issuer> [Optional] Identifies the entity that generated the request message.
<ds:Signature> [Optional]
<Extensions> [Optional]
引用您的帖子“我认为 EntityId 是发送 Issuer 元素的值”。
回复:
是。你是对的。 SAML SP 实体ID 在SAML授权请求的 Issuer 元素中发送到SAML IdP(如Shibboleth SAML SP“ https://mycompany.example.org”稍后发送的SAML请求所示) )。
(2)问题:“对于服务提供商,saml配置中的“ SP Entity / IdP Audience”参数是什么意思?”
引用“ SP实体 / IdP受众”:Looker不需要此字段,但是许多IdP都需要此字段。如果您在此字段中输入值,该值将作为授权请求中Looker的实体ID 发送到您的IdP。在这种情况下,Looker将仅接受具有此值的授权响应作为Audience。如果您的IdP需要Audience值,请输入该值也用作发送到IdP的消息中的发件人字段。因此,如果您的IdP抱怨它收到的消息没有发件人,那么您需要填写它。您可以使用IdP的任何字符串在大多数情况下,您可以使用“ Looker”。如果存在此字段,则您的IdP必须将其作为发送回Looker的消息中的“受众”字段发送。”
答案:
(I)如果默认情况下将“ SP实体/ IdP目标对象(可选)”字段保留为空,则SAML SP Looker不会在SAML授权请求的Issuer元素中向SAML IdP发送SP实体ID。
(II)“如果您的IdP抱怨说它收到的消息没有发行者,那么您需要填写。”
这意味着您需要通过Looker将SAML SP实体ID (例如,“ https://mycompany.looker.com/”)填写到“ SP实体/ IdP听众(可选)”字段中Admin GUI,以便Looker可以在SAML授权请求的 Issuer 元素中向SAML IdP发送 SP实体ID (例如,“ https://mycompany.looker.com/”)。
(III)“如果存在此字段,则您的IdP必须将其作为发送回Looker的消息中的“收件人”字段发送。”
这意味着SAML IdP会将SAML响应的 SP实体ID (例如“ https://mycompany.looker.com/”)发送到Looker SAML SP的受众字段。 >
(3) SAML示例:引用“ Okta现在提供了Looker应用,这是一起配置Looker和Okta的推荐方法。”
GitHub存储库上的(I)How to build and run Shibboleth SAML IdP and SP using Docker container可让您在自己的计算机上运行Shibboleth SAML IdP(与Okta SAML IdP平行)和Shibboleth SAML SP(与Looker SAML SP平行)。
Internet2为Shibboleth SAML IdP和Shibboleth SAML SP的开发贡献了大量资源。
(II)在不失一般性的前提下,我们就Okta SAML IdP和Shibboleth SAML SP之间的SAML通信进行了演示,以演示SAML请求如何在 Issuer 中携带 SP实体ID 。 >元素以及SAML响应如何在受众字段中携带 SP实体ID 。
以下SAML请求和截断的SAML响应均是从 Okta SAML IdP 提供给 Shibboleth SAML SP (即与 Looker SAML SP 并行)。
Shibboleth SAML SP实体ID 为https://mycompany.example.org/Shibboleth.sso/Metadata
由 Shibboleth SAML SP 发送给 Okta SAML IdP
的SAML请求<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="https://mycompany.example.org/Shibboleth.sso/SAML2/POST"
Destination="https://dev-806230.oktapreview.com/app/mycompany_shibbolethspdemo/exdgpcskkbjCPYTX90h7/sso/saml"
ID="_9f70ad26f1e69244fade279bc57f7e23"
IssueInstant="2019-05-21T18:40:06Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://mycompany.example.org/Shibboleth.sso/Metadata</saml:Issuer>
<samlp:NameIDPolicy AllowCreate="1" />
</samlp:AuthnRequest>
Okta SAML IdP 发送给 Shibboleth SAML SP 的截短SAML响应(仅出于演示目的显示相关元素)
<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="https://mycompany.example.org/Shibboleth.sso/SAML2/POST"
ID="id63794486675331821511177658"
InResponseTo="_9f70ad26f1e69244fade279bc57f7e23"
IssueInstant="2019-05-21T18:40:43.033Z"
Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://www.okta.com/exdgpcskkbjCPYTX90h7</saml2:Issuer>
<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"
ID="id63794486676092501915396379"
IssueInstant="2019-05-21T18:40:43.033Z"
Version="2.0">
<saml2:Conditions NotBefore="2019-05-21T18:35:43.034Z" NotOnOrAfter="2019-05-21T18:45:43.034Z" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
<saml2:AudienceRestriction>
<saml2:Audience>https://mycompany.example.org/Shibboleth.sso/Metadata</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
</saml2:Assertion>
</saml2p:Response>