IdentityServer4 を実装しようとしています。すべてのクライアントは JavaScript アプリになります (react js 内)。私の質問は次のとおりです。
1.- カスタム ユーザー データベースを用意するので、6 番目の例のように Aspnet ID を使用して IS4 を実装しようとしています。しかし、私のクライアントは Javascript ベースであるため、暗黙的なフローを使用する必要があり、例では (MVC クライアントで行われているように) HybridAndClientCredentials を念頭に置いて作成されています。また、MVC ログイン アプリには同意手順が含まれていないようです。AspnetIdentity の例と組み合わせて JavaScript クライアントの例を実装しました。最初にエラーが発生しました: IdentityServer4.Validation.ScopeValidator: エラー: 無効なスコープ: api2 (api2 はクライアントが呼び出す Api) ですが、api2 はクライアント定義に含まれています:
new Client
{
ClientId = "js2",
ClientName = "JavaScript Client 2",
AllowedGrantTypes = GrantTypes.Implicit,
AllowAccessTokensViaBrowser = true,
RequireConsent = true,
RedirectUris = { "http://jstwo:5004/callback.html" },
PostLogoutRedirectUris = { "http://jstwo:5004/index.html" },
AllowedCorsOrigins = { "http://jstwo:5004" },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"api2"
},
AllowOfflineAccess = true
}
先に進むために、クライアント呼び出しからそのスコープを削除しましたが、うまくいきました。ログインしましたが、同意の手順がないため、クライアントがクラッシュしました。
だから、私はここでちょっと迷っていると思います。consetステップをスキップする方法を見つける必要がありますか?? (どちらの方法でもそのステップを望まないので、それは良いことです。すべてのユーザーは内部になります)。
2.- また、サンプル 8_EntityFrameworkStorage のようなすべての構造をデータベースに永続化する必要があります。この方法を AspIdentity と組み合わせて使用できますか?
参照されたサンプル: https://github.com/IdentityServer/IdentityServer4.Samples
読んでいただきありがとうございます。