2017-11-17 7 views
2

JWTトークンを発行する認証サーバーをセットアップしました。なぜServiceStack JwtAuthProviderReaderを使用して、リソースAPIに認証エンドポイントを追加しますか?

これで、リクエストで提供されたベアラトークンを使用して認証/承認する私の最初のリソースサービスをセットアップしました。このサービスは私の認証サーバーではなく、リソースサーバーです。

私は私のリソースサービスにServiceStack JwtAuthProviderReaderを追加しました:

Plugins.Add(new AuthFeature(() => new AuthUserSession(), 
new IAuthProvider[] { 
    new JwtAuthProviderReader() { 
     HashAlgorithm = "HS256", 
     AuthKeyBase64 = AuthSettings.JwtAuthKeyBase64 
    }, 
})); 

なぜリソースサーバは現在、すべての認証サーバーのエンドポイントを持っていない、私は私の認証サービスが行うことJwtAuthProviderJwtAuthProviderReaderをない使用しています。 As the documentation states、私のリソースサービスはトークンの検証のみです。

enter image description here

答えて

1

これらはServiceStackのAuthFeatureプラグインを登録するとき、彼らはServiceStackの内蔵認証サービスのいずれかのServiceStack認証を処理するために、つまりだ、ちょうどJWT AuthProviderに限定されるものではありません。あなたが割り当て/割り当て解除役割サービスを使用していない場合

、彼らがして無効にすることができます。

Plugins.Add(new AuthFeature(...) { 
    IncludeAssignRoleServices = false 
}); 

あなたはまた、APPHOSTのコンストラクタでdynamically adding Exclude attributesによってメタデータページやサービスに現れてからサービスを非表示にすることができます、例えば:

public AppHost() : base("MyApp", typeof(MyServices).Assembly) 
{ 
    typeof(Authenticate) 
     .AddAttributes(new ExcludeAttribute(Feature.Metadata)); 
} 

DTOリクエストに属性を追加することに相当し、例えば:

[Exclude(Feature.Metadata)] 
public class Authenticate { ... } 
関連する問題