5

oauth 2 サーバーと api サーバーを実装しようとしています (どちらも別のサーバーです)。(すべてnodejsを使用)

ここに画像の説明を入力

https://github.com/FrankHassanabad/Oauth2orizeRecipes認証コード フローを使用しています

oauthサーバーに新しいvalidateToken関数を記述し、API側からヒットしてそのユーザーのみを認証する必要がありますか。

ユーザーとロールを oauth 側に保持することを考えていますが、API 呼び出し応答を行う前に API 側でそれらを確認する必要があります。

認証目的だけでなく、cms やモバイルアプリにも使用しようとしています。私たちは正しい道を進んでいますか、それとも何かが欠けていますか。

4

2 に答える 2

0

詳細を調べたところ、Oauth2orizeRecipes 内に tokeninfo の実装がありました。

https://github.com/FrankHassanabad/Oauth2orizeRecipes/wiki/Token-Info-Endpoint

まだいくつかの点が明確ではありませんが、回答を再度更新します。

于 2016-01-21T10:20:13.913 に答える
0

(私は.Netで同様の状況に直面したので、その文脈で)

いいえ、oauth を使用している場合は、新しい検証トークン メソッドを記述する必要はありません。OAuthBearerAuthenticationProvider として、舞台裏でこれを行います

app.UseJwtBearerAuthentication(
            new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                AllowedAudiences = new[] { audience },
                IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                {
                    new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
                },
                Provider = new OAuthBearerAuthenticationProvider
                    {
                        OnValidateIdentity = context =>
                        {
                            context.Ticket.Identity.AddClaim(new System.Security.Claims.Claim("newCustomClaim", "newValue"));
                            return Task.FromResult<object>(null);
                        }
                    }

            });

(私の経験によると)。ただし、必要に応じて、「スタートアップ」ファイルでプロバイダーを構成するオプションがあります。

app.UseJwtBearerAuthentication(
            new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                AllowedAudiences = new[] { audience },
                IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                {
                    new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
                },
                Provider = new CustomOAuthBearerProvider()                        

            });

「CustomOAuthBearerProvider」は、RequestToken() メソッドの定義済み署名を持つ「IOAuthBearerAuthenticationProvider」インターフェースを継承し、このメソッドはトークンの検証の前に呼び出されます。したがって、トークンのカスタム検証操作に使用して、OAuth 検証のためにトークンを送信できると思います。

于 2016-04-14T13:30:37.850 に答える