我正在开发用于在MVC-ASP.net中显示认证身份声明的测试应用程序(Visual Studio 2013) 我已通过以下方式从活动目录中进行了身份验证。
1.在解决方案中添加新的mvc项目。 2.点击更改身份验证。 3.选择组织帐户 4.选择内部。 5.given联邦网址 6.App Id url
运行应用程序后,我收到以下错误。
WIF10201:找不到securityToken的有效密钥映射:'System.IdentityModel.Tokens.X509SecurityToken'和颁发者:'http://websso.avanade.com/adfs/services/trust'
此错误仅适用于我能够查看声明的其他联盟的联合。
在互联网上搜索后,我认为这是证书(指纹)问题。 但我不清楚解决方案。
任何人都可以解释为什么这个错误抛出和解决方案相同。
先谢谢!!!
答案 0 :(得分:9)
此错误可能有两个原因。
在web.config中缺少指纹:从ADFS获取实际指纹并将指纹放在指纹标记下
站点和ADFS配置之间的端口号不匹配:使用包含正确端口号的URL更新ADFS配置
第二个解决方案为我修好了......
答案 1 :(得分:1)
我在尝试更新旧版MVC应用程序以使用AAD时遇到了这个问题。
我使用组织身份验证对新创建的项目进行了更改,并注意到我没有名为DefaultConnection
的连接字符串,DatabaseIssuerNameRegistry
假定您将使用,也没有任何必需的连接字符串数据库中的表。
使用Vittorio Bertocci的great post with all the details,我重构了代码以集成新数据库表,创建并应用迁移,并在新IssuingAuthorityKey
和Tenant
中插入适当的密钥和租户表格,分别。我还必须确保更改DatabaseIssueNameRegistry
以使用现有的DbContext
。
答案 2 :(得分:0)
对于在VS2013及更高版本中创建的解决方案,解决方案应包含自动滚动键的逻辑。无需将值放在web.config文件中。
将解决方案从本地迁移到其他环境时,可能会遇到此问题。在这种情况下,您可能会尝试将解决方案指向Azure Active Directory中的新应用程序。请检查以下内容:
如果在这些步骤后仍未自动填充两个表中的值,请查看此article以了解有关如何手动获取值的步骤。
答案 3 :(得分:0)
缩略图和服务器名称在web.config中区分大小写。确保正确键入并重新启动IIS。
它解决了我的问题。