0

認証に Azure Active Directory を使用する .NET MVC アプリケーションがあります。

アプリに対していくつかの基本的な GET 要求を実行するコンソール アプリを認証するために、カスタム JWTSecurityTokenHandler を追加しようとしています。ただし、すべての要求は、JWT ハンドラーに渡されるのではなく、Azure AD ログイン ページにリダイレクトされるだけです (ハンドラーのブレークポイントとログ ステートメントはヒットしません)。何か案は?

Web.config:

  <system.identityModel>
    <identityConfiguration>
      <audienceUris>
        <add value="https://localhost:44300/" />
      </audienceUris>
      <securityTokenHandlers>
        <add type="QS.Admin.Infrastructure.MyJwtHandler, QS.Admin" />
        <securityTokenHandlerConfiguration>
          <certificateValidation certificateValidationMode="None" />
        </securityTokenHandlerConfiguration>
      </securityTokenHandlers>
      <issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
        <authority name="https://[myaccessdomain].accesscontrol.windows.net/">
          <keys>
            <add thumbprint="[thumbprint]" />
          </keys>
          <validIssuers>
            <add name="https://[myaccessdomain].accesscontrol.windows.net/" />
          </validIssuers>
        </authority>
      </issuerNameRegistry>
      <!--certificationValidationMode set to "None" by the the Identity and Access Tool for Visual Studio. For development purposes.-->
      <certificateValidation certificateValidationMode="None" />
    </identityConfiguration>
  </system.identityModel>
  <system.identityModel.services>
    <federationConfiguration>
      <cookieHandler requireSsl="false" />
      <wsFederation passiveRedirectEnabled="true" issuer="https://[myaccessdomain].accesscontrol.windows.net/v2/wsfederation" realm="https://localhost:44300/" requireHttps="false" />
    </federationConfiguration>
  </system.identityModel.services>
4

2 に答える 2

1

上記のアドバイスに加えて、jwtsecuritytokenhandlers の責任は、jwt を検証し、上流でクレームを処理することです。設定のどこにもセッション管理がありません。それがない場合、ホストへの呼び出しごとに ACS から新しいトークンを取得する必要があります。

于 2013-10-28T18:14:02.333 に答える
0

web.config の設定は正しく見えます。

いくつかの確認事項:

  1. レルムの JWT トークンを発行するように ACS が設定されていることを確認します。

  2. MS から JwtSecurityTokenHandler をプラグインすると、ヒットしますか? これは、問題をカスタム ハンドラーと ACS または web.config の設定に切り分けるのに役立ちます。

于 2013-10-28T18:08:35.060 に答える