我正在尝试调整ITfoxtec示例应用程序TestWebAppCore的配置https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test/TestWebAppCore在Azure AD上使用SAML配置的企业应用程序。
在appsettings.json中;IdPMetadata";具有Azure AD中的企业应用程序的元数据URL;https://login.microsoftonline.com/9...3/federationmetadata/2007-06/federationmetadata.xml?appid=c...">
我没有更改其他行:
"SignatureAlgorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256",
"SigningCertificateFile": "itfoxtec.identity.saml2.testwebappcore_Certificate.pfx",
"SigningCertificatePassword": "!QAZ2wsx",
//"SignatureValidationCertificateFile": "xxx.cer",
"CertificateValidationMode": "None", // "ChainTrust"
"RevocationMode": "NoCheck"
什么是";右";必须应用于示例web应用程序和Azure AD SAML配置面板上的配置";Azure AD侧"在Azure AD SAML中,专门用于配置项:
回复URL(断言消费者服务URL(;https://localhost:44306/"和登录URL:我尝试过";https://localhost:44306/Auth/AssertionConsumerService">
而且在";登录";(用我的Azure证书(;users Claims";在web应用程序的主页中不可见。
谢谢大家。
现在我已经修复了"TestWebAppCore";ITfoxtec.Identity.Saml2中的示例。
以下是Azure AD管理控制台中的设置:
- 标识符(实体ID(:itfoxtec-testwebappcore
- 回复URL(断言使用者服务URL(:https://localhost:44306/Auth/AssertionConsumerService
- 未配置登录URL、中继状态和注销URL
这些是appsettings.json:中的配置
"Saml2": {
"IdPMetadata": "https://login.microsoftonline.com/9...3/federationmetadata/2007-06/federationmetadata.xml?appid=c...8",
"Issuer": "itfoxtec-testwebappcore",
"SingleSignOnDestination": "https://login.microsoftonline.com/9...3/saml2",
"SingleLogoutDestination": "https://login.microsoftonline.com/9...3/saml2",
"SignatureAlgorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256",
"SigningCertificateFile": "itfoxtec.identity.saml2.testwebappcore_Certificate.pfx",
"SigningCertificatePassword": "!QAZ2wsx",
"CertificateValidationMode": "None", // "ChainTrust"
"RevocationMode": "NoCheck"
}
我用.NET 5.0编译。请注意,在AuthController.cs中,我对行进行了注释
NameIdPolicy = new NameIdPolicy { AllowCreate = true, Format = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" },
否则显示在";"安全";页面是一个ID("持久"格式(,而不是电子邮件中的用户名。作为一种替代方案,可以用以下方式更改线路:
NameIdPolicy = new NameIdPolicy { AllowCreate = true, Format = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" },
另一个使用相同ITfoxtex SAML标识库的好例子是:https://github.com/nickgamb/Okta_SAML_Example(另请参阅文章https://developer.okta.com/blog/2020/10/23/how-to-authenticate-with-saml-in-aspnet-core-and-csharp)。