La modification d'OWIN OAuth middleware à utiliser JWT porteur de jetons

Je suis en train d'essayer de créer une preuve de concept pour l'authentification basée sur les revendications pour une nouvelle application en utilisant une combinaison de technologies suivantes: API Web 2, OWIN middleware et JWT.

Pour garder les choses simples, j'ai commencé avec le Web API 2 modèle de projet et changé l'authentification Individuelle des Comptes d'Utilisateur. L'exemple de client, j'ai créé a ensuite été en mesure d'obtenir un jeton en appelant /Jeton et a été en mesure d'appeler un échantillon d'extrémité avec OAuth porteur du jeton. So far So good. Ensuite, j'ai ajouté le code suivant au Démarrage.Auth.cs d'essayer et de permettre JwtBearerAuthentication:

    var jwtOptions = new JwtBearerAuthenticationOptions
    {
        AllowedAudiences = audiences,
        IssuerSecurityTokenProviders = new[] { 
            new SymmetricKeyIssuerSecurityTokenProvider(issuer, signingKey) }
    };

    app.UseJwtBearerAuthentication(jwtOptions);

J'attendais qu'Web API 2 serait de commencer à retourner JWTs à partir de l'appel à /Jeton, mais il ne semble pas avoir fait quoi que ce soit. J'ai été frapper ma tête contre ce pour quelques jours, sans succès et les documents Microsoft ne sont pas très à l'aise.

J'ai aussi essayé d'ajouter ce qui suit à mon OAuthAuthorizationServerOptions

AuthorizationCodeFormat = new JwtFormat(audience, new SymmetricKeyIssuerSecurityTokenProvider(issuer, signingKey))

Je pourrais aussi essayer de faire la chose de complètement faux.

Toutes les idées seraient grandement appréciés.

Je suis actuellement en train de créer mon propre ISecureDataFormat<AuthenticationTicket> et en l'assignant à AccessTokenFormat
Avez-vous un moyen de changer l'émission de JWT à l'aide de votre propre ISecureDataFormat mise en œuvre?
Avez-vous jamais résoudre ce problème? Je commence à chercher à faire la même chose maintenant.
oui. A fini par créer un personnalisé AccessTokenFormat basé sur ISecureDataFormat<AuthenticationTicket>. L'ôter la protection de la méthode est semblable à la suivante: katanaproject.codeplex.com/SourceControl/latest#src/... et nous avons mis en œuvre appropriée de protéger méthode.

OriginalL'auteur James O'Sullivan | 2014-03-05