我正在开发受WIF 4.5新版本保护的Web应用程序 Visual Studio模板将以下键添加到web.config文件中:
<appSettings>
<add key="ida:FederationMetadataLocation" value="https://example.com/FederationMetadata/2007-06/FederationMetadata.xml" />
<add key="ida:Realm" value="https://example.com/applications/serviceapp/" />
<add key="ida:AudienceUri" value="https://example.com/applications/serviceapp/" />
以及典型的system.IdentityModel
代码:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="https://example.com/applications/serviceapp/" />
</audienceUris>
<securityTokenHandlers>
<add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>
<certificateValidation certificateValidationMode="None" />
<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
<authority name="http://example.com/adfs/services/trust">
<keys>
<add thumbprint="3aa0dee165bec459a472aa611cc19453abd61f08" />
</keys>
<validIssuers>
<add name="http://example.com/adfs/services/trust" />
</validIssuers>
</authority>
</issuerNameRegistry>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="true" />
<wsFederation passiveRedirectEnabled="true" issuer="https://example.com/adfs/ls/" realm="https://example.com/applications/serviceapp/" requireHttps="true" />
</federationConfiguration>
</system.identityModel.services>
我的问题是,ida前缀appSettings
密钥的用途是什么,因为它似乎根本没有被使用并且包含冗余信息(因为它必须在system.identityModel
中声明)。
我用Google搜索并发现了这篇文章: Identity in your own apps with Windows Azure Active Directory
在那里写道:
首先,我们有两个新的部分:system.identityModel和system.identityModel.services,其中包含一些数据。 AppSettings已经使用“ida:FederationMetadataLocation”等密钥进行了扩展。前缀“ida”代表身份和授权。这些值对于识别我们的应用非常重要。 ... ida:AudienceUri和ida:Realm是我们应用的唯一ID(以URL格式)。 ida:FederationMetadataLocation是我们获取登录和注销端点的XML文档的地址。
使用此信息时,没有明确的声明。也许ida标签仅在Windows Azure上托管时使用?记录:我们的应用程序,包括ADFS,都是内部部署。 我可以简单地删除它们吗?
答案 0 :(得分:1)
AFAIK,&#34; ida&#34; VS插件和其他工具使用密钥。它们允许您使用插件/工具更新web.Config中与WIF相关的配置。如果密钥或其他内容发生变化,这很方便。必须要说的是,新的owin管道通过在启动时下载元数据文档来更进一步,这样您的应用程序始终是最新的。 恕我直言,您的应用程序不需要它们,您可以删除它们。
答案 1 :(得分:1)
WIF / OWIN使用它们来获取元数据,例如签名证书并设置登录/登录信息,例如wtrealm。