web.config中ida-prefixed appSettings键的用途

时间:2018-01-12 10:23:51

标签: .net azure web-config adfs wif

我正在开发受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,都是内部部署。 我可以简单地删除它们吗?

2 个答案:

答案 0 :(得分:1)

AFAIK,&#34; ida&#34; VS插件和其他工具使用密钥。它们允许您使用插件/工具更新web.Config中与WIF相关的配置。如果密钥或其他内容发生变化,这很方便。必须要说的是,新的owin管道通过在启动时下载元数据文档来更进一步,这样您的应用程序始终是最新的。 恕我直言,您的应用程序不需要它们,您可以删除它们。

答案 1 :(得分:1)

WIF / OWIN使用它们来获取元数据,例如签名证书并设置登录/登录信息,例如wtrealm。