タグ付けされた質問 「identityserver4」

3
IdentityServer4はUserServiceを登録し、asp.netコアのデータベースからユーザーを取得します
UserServiceasp.netコアでIdentityServer4にを登録する方法をあちこち検索しましたが、正しい方法を見つけることができないようです。 これは、ここにあるInMemoryUsersを登録するためのコードですが、サンプルで定義されている静的ユーザーではなく、MSSQLDBからユーザーにアクセスしたいと思います。 var builder = services.AddIdentityServer(options => { options.SigningCertificate = cert; }); builder.AddInMemoryClients(Clients.Get()); builder.AddInMemoryScopes(Scopes.Get()); builder.AddInMemoryUsers(Users.Get()); そこで、IdentityServer3用のこれを調べました。 var factory = new IdentityServerServiceFactory() .UseInMemoryClients(Clients.Get()) .UseInMemoryScopes(Scopes.Get()); var userService = new UserService(); factory.UserService = new Registration<IUserService>(resolver => userService); オンラインで読んだところ、DIシステムを使用してUserServiceを登録する必要があるようですが、IdentityServerにどのようにバインドするかがわかりません。 services.AddScoped<IUserService, UserService>(); だから私の質問は: UserServiceビルダー(IdentityServer4ユーザー)にバインドするにはどうすればよいですか?また、データベースを呼び出して、UserService(リポジトリを使用してdbに接続している)の既存のdbユーザーにアクセスして認証するにはどうすればよいですか? これを考慮に入れると、これはasp.netコアで機能する必要があります。 ありがとう!

3
asp.netコア3.1のテナントに基づく認証スキームを登録する
現在、デフォルトのクライアントIDとシークレットを備えた外部ログインプロバイダーを備えたIdentity Server 4 Webアプリケーションを作成しています。しかし、私の目標は、テナントに基づいてAzure、Google、Facebookなどの認証プロバイダーを登録することです。 私はSaasKitマルチテナンシーアセンブリを使用しましたが、ここではapp.usepertenant()ミドルウェアを試しました。ただし、UseGoogleAuthentication()メソッドは廃止されたため、このusepertenantミドルウェアを使用してマルチテナント認証を実現できませんでした。 現在のコード、 services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddMicrosoftAccount(option => { option.ClientId = "clientid"; option.ClientSecret = "clientsecret"; option.SaveTokens = true; }); 期待されるコードは以下のようです、 var authentication = services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme); if (tenant.hasMicrosoft) { authentication.AddMicrosoftAccount(option => { option.ClientId = "clientid"; option.ClientSecret = "clientsecret"; option.SaveTokens = true; }); } if (tenant.hasGoogle) { authentication.AddGoogle(option => { option.ClientId = …

1
リクエストヘッダーがIdentityServer4に転送されない
認証にIdentityServer4を使用するマイクロサービスのAPIゲートウェイとしてocelotを使用しています。ocelot設定ファイルに「AuthenticationOptions」を追加して、apiキーを設定しました。ではスタートアップ Iは、Identityサーバーを追加します。IDサーバーでは、ヘッダーの値を使用して、接続文字列を動的に構築します。トークンを取得するリクエストを送信すると、IDサービスでヘッダーにアクセスできます。しかし、トークンを使用して次のリクエストを送信すると、元のヘッダーが使用できません。IDサービスで表示できるのは「Host」ヘッダーのみです。 リクエストをアイデンティティサーバーにルーティングする間、元のヘッダーを保持する方法はありますか? Startup.cs(IDサーバーの追加) services .AddAuthentication() .AddIdentityServerAuthentication("APIParts", options => { options.Authority = "http://localhost:60168"; options.RequireHttpsMetadata = false; options.ApiName = "Parts"; options.SupportedTokens = SupportedTokens.Both; }); ocelot.json ReRoutes": [ { "DownstreamPathTemplate": "/connect/token", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 60168 } ], "UpstreamPathTemplate": "/token", "UpstreamHttpMethod": [ "Post" ] }, { "DownstreamPathTemplate": "/api/Parts/Inventory", …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.