Owin - 使用元数据初始化 IdP file/url
Owin - Initialize IdP using metadata file/url
我想在没有 "hardcoding" 任何数据的情况下使用基于 Owin 的 SAML2 身份验证。我有来自 IdP 所有者的元数据文件。有什么办法,如何只加载此文件(或使用元数据指向 url)并让提供程序自行初始化?
public void ConfigureAuth(IAppBuilder app)
{
...
app.UseSaml2Authentication(CreateSaml2Options());
}
private static Saml2AuthenticationOptions CreateSaml2Options()
{
var spOptions = CreateSpOptions();
var saml2Options = new Saml2AuthenticationOptions(false)
{
SPOptions = spOptions
};
var idp = new IdentityProvider(new EntityId("XXXXXXXXX"), spOptions)
{
AllowUnsolicitedAuthnResponse = true,
Binding = Saml2BindingType.HttpPost,
SingleSignOnServiceUrl = new Uri("XXXXXXXXX")
};
saml2Options.IdentityProviders.Add(idp);
return saml2Options;
}
如何从元数据中获取 XXXXXXXXX 值?
XXX 是 EntityId,它列在元数据的顶部。考虑例如此元数据摘自 stubidp.sustainsys.com:
<EntityDescriptor xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="_a1f8bba0-9d9f-4107-bbed-b61cd3d9c67f"
entityID="https://stubidp.sustainsys.com/Metadata" cacheDuration="PT15M"
validUntil="2018-12-19T18:51:08Z">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
您要查找的 XXX 值是 entityID
属性。在本例中为 https://stubidp.sustainsys.com/Metadata
.
在当前版本的库中,遗憾的是无法从元数据中获取 EntityID。我计划在未来的版本中修复它,但这需要大量的工作。原因是 EntityID 是字典中的键,事情会变得非常混乱,它会被延迟初始化或稍后更改。
我想在没有 "hardcoding" 任何数据的情况下使用基于 Owin 的 SAML2 身份验证。我有来自 IdP 所有者的元数据文件。有什么办法,如何只加载此文件(或使用元数据指向 url)并让提供程序自行初始化?
public void ConfigureAuth(IAppBuilder app)
{
...
app.UseSaml2Authentication(CreateSaml2Options());
}
private static Saml2AuthenticationOptions CreateSaml2Options()
{
var spOptions = CreateSpOptions();
var saml2Options = new Saml2AuthenticationOptions(false)
{
SPOptions = spOptions
};
var idp = new IdentityProvider(new EntityId("XXXXXXXXX"), spOptions)
{
AllowUnsolicitedAuthnResponse = true,
Binding = Saml2BindingType.HttpPost,
SingleSignOnServiceUrl = new Uri("XXXXXXXXX")
};
saml2Options.IdentityProviders.Add(idp);
return saml2Options;
}
如何从元数据中获取 XXXXXXXXX 值?
XXX 是 EntityId,它列在元数据的顶部。考虑例如此元数据摘自 stubidp.sustainsys.com:
<EntityDescriptor xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="_a1f8bba0-9d9f-4107-bbed-b61cd3d9c67f"
entityID="https://stubidp.sustainsys.com/Metadata" cacheDuration="PT15M"
validUntil="2018-12-19T18:51:08Z">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
您要查找的 XXX 值是 entityID
属性。在本例中为 https://stubidp.sustainsys.com/Metadata
.
在当前版本的库中,遗憾的是无法从元数据中获取 EntityID。我计划在未来的版本中修复它,但这需要大量的工作。原因是 EntityID 是字典中的键,事情会变得非常混乱,它会被延迟初始化或稍后更改。