2

数週間前、私は OpenID Connect と IdentityServer V3 を発見しました。提供された例のいくつかを実行しましたが、今日はさらに先に進む必要がありますが、続行する方法がわかりません。

実際には、「自作」の認証および承認プロセスがあり、OpenID Connect ソリューションに移行したいと考えています。Identity Server は、これを行うのに最適な候補のようです。

現在、ユーザーは SQL Server データベースに格納されており、理想的には、このテーブルを Identity Server に「接続」したいと考えています (このテーブルのスキーマには触れません)。「MembershipReboot」について読みましたが、独自のデータベースを使用しています。カスタム ユーザー サービスを作成することについても聞いたことがありますが、サンプル (CustomUserService) では何も役に立ちませんでした。今日、私はどこへ行けばいいのか分からず、目標からそう遠くないことに気づき、少し道に迷いました。

私は助けが必要です

ありがとうございました

4

1 に答える 1

2

あなたが言及したカスタム ユーザー サービスのサンプルには、さまざまなアプローチを示すためにユーザー サービスの 3 つのバリエーションが含まれていますが、実際にはそのうちの 1 つだけが必要です。

LocalRegistrationUserServiceサンプルには、次のような行があります。

    public override Task AuthenticateLocalAsync(LocalAuthenticationContext context)
    {
        var user = Users.SingleOrDefault(x => x.Username == context.UserName && x.Password == context.Password);
/// snip ...

そしてこれら:

   public override Task GetProfileDataAsync(ProfileDataRequestContext context)
    {
        // issue the claims for the user
        var user = Users.SingleOrDefault(x => x.Subject == context.Subject.GetSubjectId());
/// snip...

Usersメモリ内コレクションから値を検索するこれらの呼び出しを、SQL サーバーへの接続を開き、代わりにそこで検索するものに置き換える必要があります。

サポートされているその他のメソッドについては、カスタム ユーザー サービスのドキュメントを参照してください。ただし、これら 2 つ ( AuthenticateLocalAsync, GetProfileDataAsync) と SQL ルックアップだけで、開始する必要があります。

于 2015-09-11T18:10:01.877 に答える