Skip to content

Commit 4911f53

Browse files
committed
FD vs SC
1 parent dbdfa62 commit 4911f53

File tree

192 files changed

+60201
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

192 files changed

+60201
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
.git
2+
.idea
3+
.vs
4+
.vscode
5+
artifacts
6+
build
7+
charts
8+
deployment
9+
dist
10+
docs
11+
output
12+
packages
13+
tools
14+
!tools/packages.config
15+
**/bin/*
16+
**/obj/*
17+
.dockerignore
18+
.Dockerfile
19+
*.ps1
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// Copyright (c) Brock Allen & Dominick Baier. All rights reserved.
2+
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3+
4+
5+
using IdentityServer4.Models;
6+
using System.Collections.Generic;
7+
8+
namespace IdentityServerTestApp
9+
{
10+
public static class Config
11+
{
12+
public static IEnumerable<IdentityResource> IdentityResources =>
13+
new IdentityResource[]
14+
{
15+
new IdentityResources.OpenId(),
16+
new IdentityResources.Profile(),
17+
};
18+
19+
public static IEnumerable<ApiScope> ApiScopes =>
20+
new ApiScope[]
21+
{
22+
new ApiScope("scope1"),
23+
new ApiScope("scope2"),
24+
};
25+
26+
public static IEnumerable<Client> Clients =>
27+
new Client[]
28+
{
29+
// m2m client credentials flow client
30+
new Client
31+
{
32+
ClientId = "m2m.client",
33+
ClientName = "Client Credentials Client",
34+
35+
AllowedGrantTypes = GrantTypes.ClientCredentials,
36+
ClientSecrets = { new Secret("511536EF-F270-4058-80CA-1C89C192F69A".Sha256()) },
37+
38+
AllowedScopes = { "scope1" }
39+
},
40+
41+
// interactive client using code flow + pkce
42+
new Client
43+
{
44+
ClientId = "interactive",
45+
ClientSecrets = { new Secret("49C1A7E1-0C79-4A89-A3D6-A37998FB86B0".Sha256()) },
46+
47+
AllowedGrantTypes = GrantTypes.Code,
48+
49+
RedirectUris = { "https://localhost:44300/signin-oidc" },
50+
FrontChannelLogoutUri = "https://localhost:44300/signout-oidc",
51+
PostLogoutRedirectUris = { "https://localhost:44300/signout-callback-oidc" },
52+
53+
AllowOfflineAccess = true,
54+
AllowedScopes = { "openid", "profile", "scope2" }
55+
},
56+
};
57+
}
58+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
# The builder image
3+
FROM mcr.microsoft.com/dotnet/sdk:5.0.100-alpine3.12 AS builder
4+
5+
WORKDIR /sln
6+
7+
# Just copy everything
8+
COPY . .
9+
10+
# Do the restore/publish/build in one step
11+
RUN dotnet publish -c Release -o /sln/artifacts
12+
13+
# The deployment image
14+
FROM mcr.microsoft.com/dotnet/aspnet:5.0.0-alpine3.12
15+
16+
# Copy across the published app
17+
WORKDIR /app
18+
ENTRYPOINT ["dotnet", "IdentityServerTestApp.dll"]
19+
COPY --from=builder ./sln/artifacts .
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<Project Sdk="Microsoft.NET.Sdk.Web">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net5.0</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<PackageReference Include="IdentityServer4.EntityFramework" Version="4.0.0" />
9+
10+
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="5.0.0" />
11+
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
12+
13+
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.0" />
14+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0" />
15+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0">
16+
<PrivateAssets>all</PrivateAssets>
17+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
18+
</PackageReference>
19+
</ItemGroup>
20+
21+
</Project>
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
CREATE TABLE IF NOT EXISTS "__EFMigrationsHistory" (
2+
"MigrationId" TEXT NOT NULL CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY,
3+
"ProductVersion" TEXT NOT NULL
4+
);
5+
6+
CREATE TABLE "ApiResources" (
7+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiResources" PRIMARY KEY AUTOINCREMENT,
8+
"Enabled" INTEGER NOT NULL,
9+
"Name" TEXT NOT NULL,
10+
"DisplayName" TEXT NULL,
11+
"Description" TEXT NULL,
12+
"AllowedAccessTokenSigningAlgorithms" TEXT NULL,
13+
"ShowInDiscoveryDocument" INTEGER NOT NULL,
14+
"Created" TEXT NOT NULL,
15+
"Updated" TEXT NULL,
16+
"LastAccessed" TEXT NULL,
17+
"NonEditable" INTEGER NOT NULL
18+
);
19+
20+
CREATE TABLE "ApiScopes" (
21+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiScopes" PRIMARY KEY AUTOINCREMENT,
22+
"Enabled" INTEGER NOT NULL,
23+
"Name" TEXT NOT NULL,
24+
"DisplayName" TEXT NULL,
25+
"Description" TEXT NULL,
26+
"Required" INTEGER NOT NULL,
27+
"Emphasize" INTEGER NOT NULL,
28+
"ShowInDiscoveryDocument" INTEGER NOT NULL
29+
);
30+
31+
CREATE TABLE "Clients" (
32+
"Id" INTEGER NOT NULL CONSTRAINT "PK_Clients" PRIMARY KEY AUTOINCREMENT,
33+
"Enabled" INTEGER NOT NULL,
34+
"ClientId" TEXT NOT NULL,
35+
"ProtocolType" TEXT NOT NULL,
36+
"RequireClientSecret" INTEGER NOT NULL,
37+
"ClientName" TEXT NULL,
38+
"Description" TEXT NULL,
39+
"ClientUri" TEXT NULL,
40+
"LogoUri" TEXT NULL,
41+
"RequireConsent" INTEGER NOT NULL,
42+
"AllowRememberConsent" INTEGER NOT NULL,
43+
"AlwaysIncludeUserClaimsInIdToken" INTEGER NOT NULL,
44+
"RequirePkce" INTEGER NOT NULL,
45+
"AllowPlainTextPkce" INTEGER NOT NULL,
46+
"RequireRequestObject" INTEGER NOT NULL,
47+
"AllowAccessTokensViaBrowser" INTEGER NOT NULL,
48+
"FrontChannelLogoutUri" TEXT NULL,
49+
"FrontChannelLogoutSessionRequired" INTEGER NOT NULL,
50+
"BackChannelLogoutUri" TEXT NULL,
51+
"BackChannelLogoutSessionRequired" INTEGER NOT NULL,
52+
"AllowOfflineAccess" INTEGER NOT NULL,
53+
"IdentityTokenLifetime" INTEGER NOT NULL,
54+
"AllowedIdentityTokenSigningAlgorithms" TEXT NULL,
55+
"AccessTokenLifetime" INTEGER NOT NULL,
56+
"AuthorizationCodeLifetime" INTEGER NOT NULL,
57+
"ConsentLifetime" INTEGER NULL,
58+
"AbsoluteRefreshTokenLifetime" INTEGER NOT NULL,
59+
"SlidingRefreshTokenLifetime" INTEGER NOT NULL,
60+
"RefreshTokenUsage" INTEGER NOT NULL,
61+
"UpdateAccessTokenClaimsOnRefresh" INTEGER NOT NULL,
62+
"RefreshTokenExpiration" INTEGER NOT NULL,
63+
"AccessTokenType" INTEGER NOT NULL,
64+
"EnableLocalLogin" INTEGER NOT NULL,
65+
"IncludeJwtId" INTEGER NOT NULL,
66+
"AlwaysSendClientClaims" INTEGER NOT NULL,
67+
"ClientClaimsPrefix" TEXT NULL,
68+
"PairWiseSubjectSalt" TEXT NULL,
69+
"Created" TEXT NOT NULL,
70+
"Updated" TEXT NULL,
71+
"LastAccessed" TEXT NULL,
72+
"UserSsoLifetime" INTEGER NULL,
73+
"UserCodeType" TEXT NULL,
74+
"DeviceCodeLifetime" INTEGER NOT NULL,
75+
"NonEditable" INTEGER NOT NULL
76+
);
77+
78+
CREATE TABLE "IdentityResources" (
79+
"Id" INTEGER NOT NULL CONSTRAINT "PK_IdentityResources" PRIMARY KEY AUTOINCREMENT,
80+
"Enabled" INTEGER NOT NULL,
81+
"Name" TEXT NOT NULL,
82+
"DisplayName" TEXT NULL,
83+
"Description" TEXT NULL,
84+
"Required" INTEGER NOT NULL,
85+
"Emphasize" INTEGER NOT NULL,
86+
"ShowInDiscoveryDocument" INTEGER NOT NULL,
87+
"Created" TEXT NOT NULL,
88+
"Updated" TEXT NULL,
89+
"NonEditable" INTEGER NOT NULL
90+
);
91+
92+
CREATE TABLE "ApiResourceClaims" (
93+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiResourceClaims" PRIMARY KEY AUTOINCREMENT,
94+
"Type" TEXT NOT NULL,
95+
"ApiResourceId" INTEGER NOT NULL,
96+
CONSTRAINT "FK_ApiResourceClaims_ApiResources_ApiResourceId" FOREIGN KEY ("ApiResourceId") REFERENCES "ApiResources" ("Id") ON DELETE CASCADE
97+
);
98+
99+
CREATE TABLE "ApiResourceProperties" (
100+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiResourceProperties" PRIMARY KEY AUTOINCREMENT,
101+
"Key" TEXT NOT NULL,
102+
"Value" TEXT NOT NULL,
103+
"ApiResourceId" INTEGER NOT NULL,
104+
CONSTRAINT "FK_ApiResourceProperties_ApiResources_ApiResourceId" FOREIGN KEY ("ApiResourceId") REFERENCES "ApiResources" ("Id") ON DELETE CASCADE
105+
);
106+
107+
CREATE TABLE "ApiResourceScopes" (
108+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiResourceScopes" PRIMARY KEY AUTOINCREMENT,
109+
"Scope" TEXT NOT NULL,
110+
"ApiResourceId" INTEGER NOT NULL,
111+
CONSTRAINT "FK_ApiResourceScopes_ApiResources_ApiResourceId" FOREIGN KEY ("ApiResourceId") REFERENCES "ApiResources" ("Id") ON DELETE CASCADE
112+
);
113+
114+
CREATE TABLE "ApiResourceSecrets" (
115+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiResourceSecrets" PRIMARY KEY AUTOINCREMENT,
116+
"Description" TEXT NULL,
117+
"Value" TEXT NOT NULL,
118+
"Expiration" TEXT NULL,
119+
"Type" TEXT NOT NULL,
120+
"Created" TEXT NOT NULL,
121+
"ApiResourceId" INTEGER NOT NULL,
122+
CONSTRAINT "FK_ApiResourceSecrets_ApiResources_ApiResourceId" FOREIGN KEY ("ApiResourceId") REFERENCES "ApiResources" ("Id") ON DELETE CASCADE
123+
);
124+
125+
CREATE TABLE "ApiScopeClaims" (
126+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiScopeClaims" PRIMARY KEY AUTOINCREMENT,
127+
"Type" TEXT NOT NULL,
128+
"ScopeId" INTEGER NOT NULL,
129+
CONSTRAINT "FK_ApiScopeClaims_ApiScopes_ScopeId" FOREIGN KEY ("ScopeId") REFERENCES "ApiScopes" ("Id") ON DELETE CASCADE
130+
);
131+
132+
CREATE TABLE "ApiScopeProperties" (
133+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ApiScopeProperties" PRIMARY KEY AUTOINCREMENT,
134+
"Key" TEXT NOT NULL,
135+
"Value" TEXT NOT NULL,
136+
"ScopeId" INTEGER NOT NULL,
137+
CONSTRAINT "FK_ApiScopeProperties_ApiScopes_ScopeId" FOREIGN KEY ("ScopeId") REFERENCES "ApiScopes" ("Id") ON DELETE CASCADE
138+
);
139+
140+
CREATE TABLE "ClientClaims" (
141+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientClaims" PRIMARY KEY AUTOINCREMENT,
142+
"Type" TEXT NOT NULL,
143+
"Value" TEXT NOT NULL,
144+
"ClientId" INTEGER NOT NULL,
145+
CONSTRAINT "FK_ClientClaims_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
146+
);
147+
148+
CREATE TABLE "ClientCorsOrigins" (
149+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientCorsOrigins" PRIMARY KEY AUTOINCREMENT,
150+
"Origin" TEXT NOT NULL,
151+
"ClientId" INTEGER NOT NULL,
152+
CONSTRAINT "FK_ClientCorsOrigins_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
153+
);
154+
155+
CREATE TABLE "ClientGrantTypes" (
156+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientGrantTypes" PRIMARY KEY AUTOINCREMENT,
157+
"GrantType" TEXT NOT NULL,
158+
"ClientId" INTEGER NOT NULL,
159+
CONSTRAINT "FK_ClientGrantTypes_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
160+
);
161+
162+
CREATE TABLE "ClientIdPRestrictions" (
163+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientIdPRestrictions" PRIMARY KEY AUTOINCREMENT,
164+
"Provider" TEXT NOT NULL,
165+
"ClientId" INTEGER NOT NULL,
166+
CONSTRAINT "FK_ClientIdPRestrictions_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
167+
);
168+
169+
CREATE TABLE "ClientPostLogoutRedirectUris" (
170+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientPostLogoutRedirectUris" PRIMARY KEY AUTOINCREMENT,
171+
"PostLogoutRedirectUri" TEXT NOT NULL,
172+
"ClientId" INTEGER NOT NULL,
173+
CONSTRAINT "FK_ClientPostLogoutRedirectUris_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
174+
);
175+
176+
CREATE TABLE "ClientProperties" (
177+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientProperties" PRIMARY KEY AUTOINCREMENT,
178+
"Key" TEXT NOT NULL,
179+
"Value" TEXT NOT NULL,
180+
"ClientId" INTEGER NOT NULL,
181+
CONSTRAINT "FK_ClientProperties_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
182+
);
183+
184+
CREATE TABLE "ClientRedirectUris" (
185+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientRedirectUris" PRIMARY KEY AUTOINCREMENT,
186+
"RedirectUri" TEXT NOT NULL,
187+
"ClientId" INTEGER NOT NULL,
188+
CONSTRAINT "FK_ClientRedirectUris_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
189+
);
190+
191+
CREATE TABLE "ClientScopes" (
192+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientScopes" PRIMARY KEY AUTOINCREMENT,
193+
"Scope" TEXT NOT NULL,
194+
"ClientId" INTEGER NOT NULL,
195+
CONSTRAINT "FK_ClientScopes_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
196+
);
197+
198+
CREATE TABLE "ClientSecrets" (
199+
"Id" INTEGER NOT NULL CONSTRAINT "PK_ClientSecrets" PRIMARY KEY AUTOINCREMENT,
200+
"Description" TEXT NULL,
201+
"Value" TEXT NOT NULL,
202+
"Expiration" TEXT NULL,
203+
"Type" TEXT NOT NULL,
204+
"Created" TEXT NOT NULL,
205+
"ClientId" INTEGER NOT NULL,
206+
CONSTRAINT "FK_ClientSecrets_Clients_ClientId" FOREIGN KEY ("ClientId") REFERENCES "Clients" ("Id") ON DELETE CASCADE
207+
);
208+
209+
CREATE TABLE "IdentityResourceClaims" (
210+
"Id" INTEGER NOT NULL CONSTRAINT "PK_IdentityResourceClaims" PRIMARY KEY AUTOINCREMENT,
211+
"Type" TEXT NOT NULL,
212+
"IdentityResourceId" INTEGER NOT NULL,
213+
CONSTRAINT "FK_IdentityResourceClaims_IdentityResources_IdentityResourceId" FOREIGN KEY ("IdentityResourceId") REFERENCES "IdentityResources" ("Id") ON DELETE CASCADE
214+
);
215+
216+
CREATE TABLE "IdentityResourceProperties" (
217+
"Id" INTEGER NOT NULL CONSTRAINT "PK_IdentityResourceProperties" PRIMARY KEY AUTOINCREMENT,
218+
"Key" TEXT NOT NULL,
219+
"Value" TEXT NOT NULL,
220+
"IdentityResourceId" INTEGER NOT NULL,
221+
CONSTRAINT "FK_IdentityResourceProperties_IdentityResources_IdentityResourceId" FOREIGN KEY ("IdentityResourceId") REFERENCES "IdentityResources" ("Id") ON DELETE CASCADE
222+
);
223+
224+
CREATE INDEX "IX_ApiResourceClaims_ApiResourceId" ON "ApiResourceClaims" ("ApiResourceId");
225+
226+
CREATE INDEX "IX_ApiResourceProperties_ApiResourceId" ON "ApiResourceProperties" ("ApiResourceId");
227+
228+
CREATE UNIQUE INDEX "IX_ApiResources_Name" ON "ApiResources" ("Name");
229+
230+
CREATE INDEX "IX_ApiResourceScopes_ApiResourceId" ON "ApiResourceScopes" ("ApiResourceId");
231+
232+
CREATE INDEX "IX_ApiResourceSecrets_ApiResourceId" ON "ApiResourceSecrets" ("ApiResourceId");
233+
234+
CREATE INDEX "IX_ApiScopeClaims_ScopeId" ON "ApiScopeClaims" ("ScopeId");
235+
236+
CREATE INDEX "IX_ApiScopeProperties_ScopeId" ON "ApiScopeProperties" ("ScopeId");
237+
238+
CREATE UNIQUE INDEX "IX_ApiScopes_Name" ON "ApiScopes" ("Name");
239+
240+
CREATE INDEX "IX_ClientClaims_ClientId" ON "ClientClaims" ("ClientId");
241+
242+
CREATE INDEX "IX_ClientCorsOrigins_ClientId" ON "ClientCorsOrigins" ("ClientId");
243+
244+
CREATE INDEX "IX_ClientGrantTypes_ClientId" ON "ClientGrantTypes" ("ClientId");
245+
246+
CREATE INDEX "IX_ClientIdPRestrictions_ClientId" ON "ClientIdPRestrictions" ("ClientId");
247+
248+
CREATE INDEX "IX_ClientPostLogoutRedirectUris_ClientId" ON "ClientPostLogoutRedirectUris" ("ClientId");
249+
250+
CREATE INDEX "IX_ClientProperties_ClientId" ON "ClientProperties" ("ClientId");
251+
252+
CREATE INDEX "IX_ClientRedirectUris_ClientId" ON "ClientRedirectUris" ("ClientId");
253+
254+
CREATE UNIQUE INDEX "IX_Clients_ClientId" ON "Clients" ("ClientId");
255+
256+
CREATE INDEX "IX_ClientScopes_ClientId" ON "ClientScopes" ("ClientId");
257+
258+
CREATE INDEX "IX_ClientSecrets_ClientId" ON "ClientSecrets" ("ClientId");
259+
260+
CREATE INDEX "IX_IdentityResourceClaims_IdentityResourceId" ON "IdentityResourceClaims" ("IdentityResourceId");
261+
262+
CREATE INDEX "IX_IdentityResourceProperties_IdentityResourceId" ON "IdentityResourceProperties" ("IdentityResourceId");
263+
264+
CREATE UNIQUE INDEX "IX_IdentityResources_Name" ON "IdentityResources" ("Name");
265+
266+
INSERT INTO "__EFMigrationsHistory" ("MigrationId", "ProductVersion")
267+
VALUES ('20200624171023_Config', '3.1.0');
268+

0 commit comments

Comments
 (0)