oauthAuthorizationServerProvider
で自分のoauth認証サーバーを作成しようとしています。クライアントはAuthserverにトークンを要求します。クライアントの資格情報が有効な認証サーバーで、アクセストークンを与えている場合クライアントはすべての要求とともにトークンをリソースサーバーに送信します。私はリソースサーバーが認証サーバーによって生成されたトークンをどのように検証するのか理解できません。誰でもoauthAuthorizationServerProvider
を使用してサンプルコードを与えることができます。以下はリソースサーバーのOauthベアラトークンを検証します。
私がしようとした実装です:
public class AuthorizationServerProvider : OAuthAuthorizationServerProvider
{
public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
return Task.FromResult<object>(context.Validated());
}
public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
foreach (KeyValuePair<string, string> property in context.Properties.Dictionary)
{
context.AdditionalResponseParameters.Add(property.Key, property.Value);
}
return Task.FromResult<object>(null);
}
public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context)
{
string path = @"e:\temp\MyTest.txt";
File.WriteAllText(path, context.AccessToken);
return base.TokenEndpointResponse(context);
}
}
public void Configuration(IAppBuilder app)
{
ConfigureOAuth(app);
}
public void ConfigureOAuth(IAppBuilder app)
{
OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() {
AllowInsecureHttp=true,
TokenEndpointPath= new PathString("/Token"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(20),
Provider = new AuthorizationServerProvider(),
};
app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(OAuthBearerOptions);
}
は、今私はpostman
を使用してテストすることはできませんよ。私の実装がclient_credentials
の認証に合っていると誰かが助けてくれますか?
P.S:TokenEndpointResponse
メソッドと、startup
のクラスもデバッグしたいです。どうやってやるの?
私の完全なコードはhttps://github.com/koushiksaha89/oauthserverです。 – user3132179