|
1 | 1 | <h1id="aspnetcoreidentityseries">ASP.NET Core Identity Series</h1> |
2 | 2 |
|
3 | | -<p><imgsrc="https://chsakell.files.wordpress.com/2018/04/aspnet-core-identity-13.png"alt="ASP.NET Core Identity Series"/></p> |
| 3 | +<h2id="themostcompleteguideforaspnetcoreidentity">The most complete guide for ASP.NET Core Identity</h2> |
| 4 | + |
| 5 | +<p><imgclass="img-responsive"src="https://chsakell.files.wordpress.com/2018/04/aspnet-core-identity-13.png"alt="ASP.NET Core Identity Series"/></p> |
| 6 | + |
| 7 | +<p> |
| 8 | + |
| 9 | +</p> |
4 | 10 |
|
5 | 11 | <h2id="part1gettingstartedhttpchsakellcom20180428aspnetcoreidentityseriesgettingstarted">Part 1 -<ahref="http://chsakell.com/2018/04/28/asp-net-core-identity-series-getting-started">Getting Started</a></h2> |
6 | 12 |
|
@@ -50,18 +56,77 @@ <h2 id="part3deepdiveinauthorizationhttpswpmep3mrwu1ik">Part 3 - <a href="https: |
50 | 56 | <li>Associated repository branch:<ahref="https://github.com/chsakell/aspnet-core-identity/tree/authorization">authorization</a></li> |
51 | 57 | </ul> |
52 | 58 |
|
53 | | -<h2id="part4oauth20openidconnectidentityserverhttpswpmep3mrwu1ik">Part 4 -<ahref="https://wp.me/p3mRWu-1ik">OAuth 2.0, OpenID Connect & IdentityServer</a></h2> |
| 59 | +<h2id="part4oauth20openidconnectidentityserverhttpswpmep3mrwu1ag">Part 4 -<ahref="https://wp.me/p3mRWu-1Ag">OAuth 2.0, OpenID Connect & IdentityServer</a></h2> |
54 | 60 |
|
55 | 61 | <ul> |
56 | | -<li>Explain how<code>OAuth 2.0</code> works<em>(terminology, grant types, tokens, flows)</em></li> |
| 62 | +<li>Explain how<code>OAuth 2.0</code> works<em>(terminology, grant types, tokens)</em></li> |
57 | 63 |
|
58 | | -<li>Explain how<code>OpenID Connect</code> works<em>(terminology,grant types,tokens, flows)</em></li> |
| 64 | +<li>Explain how<code>OpenID Connect</code> works<em>(terminology, tokens, flows)</em></li> |
59 | 65 |
|
60 | 66 | <li>Learn how to use<code>IdentityServer</code> for integrating<code>OAuth 2.0</code> and<code>OpenID Connect</code></li> |
61 | 67 |
|
62 | 68 | <li>Associated repository branch:<ahref="https://github.com/chsakell/aspnet-core-identity/tree/identity-server">identity-server</a></li> |
63 | 69 | </ul> |
64 | 70 |
|
| 71 | +<h2id="part5externalproviderauthenticationregistrationstrategyhttpswpmep3mrwu1kq">Part 5 -<ahref="https://wp.me/p3mRWu-1Kq">External provider authentication & registration strategy</a></h2> |
| 72 | + |
| 73 | +<ul> |
| 74 | +<li> |
| 75 | + Step by step guides for enabling external provider authentication |
| 76 | + |
| 77 | + |
| 78 | +<ul> |
| 79 | +<li><ahref="https://wp.me/p3mRWu-1Kq#google">Google authentication</a></li> |
| 80 | + |
| 81 | +<li><ahref="https://wp.me/p3mRWu-1Kq#facebook">Facebook authentication</a></li> |
| 82 | + |
| 83 | +<li><ahref="https://wp.me/p3mRWu-1Kq#twitter">Twitter authentication</a></li> |
| 84 | + |
| 85 | +<li><ahref="https://wp.me/p3mRWu-1Kq#microsoft">Microsoft authentication</a></li> |
| 86 | + |
| 87 | +<li><ahref="https://wp.me/p3mRWu-1Kq#github">GitHub authentication</a></li> |
| 88 | + |
| 89 | +<li><ahref="https://wp.me/p3mRWu-1Kq#linkedin">LinkedIn authentication</a></li> |
| 90 | + |
| 91 | +<li><ahref="https://wp.me/p3mRWu-1Kq#dropbox">DropBox authentication</a></li> |
| 92 | +</ul> |
| 93 | +</li> |
| 94 | + |
| 95 | +<li>Implement an external provider<ahref="https://wp.me/p3mRWu-1Kq#registration-strategy">registration strategy</a></li> |
| 96 | + |
| 97 | +<li>Associated repository branch:<ahref="https://github.com/chsakell/aspnet-core-identity/tree/external-authentication">external-authentication</a></li> |
| 98 | +</ul> |
| 99 | + |
| 100 | +<h2id="part6twofactorauthenticationhttpswpmep3mrwu1pe">Part 6 -<ahref="https://wp.me/p3mRWu-1Pe">Two Factor Authentication</a></h2> |
| 101 | + |
| 102 | +<ul> |
| 103 | +<li> |
| 104 | + Implement all Two Factor Authentication related tasks: |
| 105 | + |
| 106 | + |
| 107 | +<ul> |
| 108 | +<li>Enable/Disable 2FA</li> |
| 109 | + |
| 110 | +<li>Generate/Reset recovery tokens</li> |
| 111 | + |
| 112 | +<li>Reset authenticator app</li> |
| 113 | +</ul> |
| 114 | +</li> |
| 115 | + |
| 116 | +<li>Explore the 2FA code and database schema</li> |
| 117 | + |
| 118 | +<li> |
| 119 | + Enhance the security level of 2FA by overriding the default implementation |
| 120 | + |
| 121 | + |
| 122 | +<ul> |
| 123 | +<li>Encrypt authenticator key</li> |
| 124 | + |
| 125 | +<li>Encrypt recovery tokens</li> |
| 126 | +</ul> |
| 127 | +</li> |
| 128 | +</ul> |
| 129 | + |
65 | 130 | <blockquote> |
66 | 131 | <p>To be continued..</p> |
67 | 132 | </blockquote> |
@@ -89,44 +154,32 @@ <h2 id="installationinstructions">Installation instructions</h2> |
89 | 154 | </li> |
90 | 155 |
|
91 | 156 | <li> |
92 | | -<strong>Create the<em>AspNetCoreIdentityDb</em> database</strong> |
| 157 | +<strong>Create the<em>AspNetCoreIdentityDb</em> database</strong><em>(skip if you want to run with In memory DB)</em> |
93 | 158 |
|
94 | 159 |
|
95 | 160 | <ul> |
96 | 161 | <li><code>cd ./AspNetCoreIdentity</code> where the AspNetCoreIdentity.csproj exist</li> |
97 | 162 |
|
98 | | -<li><code>Add-Migration initial_migration</code><em>(optional if already exists)</em></li> |
| 163 | +<li><code>Add-Migration initial_migration</code>or<code>dotnet ef migrations add initial_migration</code></li> |
99 | 164 |
|
100 | | -<li><code>Update-Database</code></li> |
| 165 | +<li><code>Update-Database</code> or<code>dotnet ef database update</code></li> |
101 | 166 | </ul> |
102 | 167 | </li> |
103 | 168 |
|
104 | 169 | <li> |
105 | | -<strong>Create the<em>IdentityServerDb</em> database</strong> |
| 170 | +<strong>Create the<em>IdentityServerDb</em> database</strong><em>(skip if you want to run with In memory DB)</em> |
106 | 171 |
|
107 | 172 |
|
108 | 173 | <ul> |
109 | | -<li><code>cd ./IdentityServer</code> where the IdentityServer.csproj exist</li> |
110 | | - |
111 | | -<li><code>Add-Migration InitialIdentityServerPersistedGrantDbMigration -c PersistedGrantDbContext -o Data/Migrations/IdentityServer/PersistedGrantDb</code><em>(optional if already exists)</em></li> |
112 | | - |
113 | | -<li><code>Add-Migration InitialIdentityServerConfigurationDbMigration -c ConfigurationDbContext -o Data/Migrations/IdentityServer/ConfigurationDb</code><em>(optional if already exists)</em></li> |
114 | | - |
115 | | -<li><code>Add-Migration InitialIdentityServerConfigurationDbMigration -c ApplicationDbContext -o Data/Migrations</code><em>(optional if already exists)</em></li> |
116 | | - |
117 | | -<li><code>Update-Database -Context ApplicationDbContext</code></li> |
118 | | - |
119 | | -<li><code>Update-Database -Context PersistedGrantDbContext</code></li> |
120 | | - |
121 | | -<li><code>Update-Database -Context ConfigurationDbContext</code></li> |
| 174 | +<li>Follow the<ahref="https://github.com/chsakell/aspnet-core-identity/blob/master/IdentityServer/Data/Migrations/instructions.md">instructions</a></li> |
122 | 175 | </ul> |
123 | 176 | </li> |
124 | 177 | </ol> |
125 | 178 |
|
126 | 179 | <blockquote> |
127 | | -<p>In case you don't want to use a real SQL Server Database when running the<code>AspNetCoreIdentity</code> project, simply set<strong>InMemoryProvider: true</strong> in the<em>appsettings.json</em></p> |
| 180 | +<p>In case you don't want to use a real SQL Server Database when running the<code>AspNetCoreIdentity</code> project, simply set<strong>InMemoryProvider: true</strong> in the<em>appsettings.json</em>. This option will use in memory database</p> |
128 | 181 |
|
129 | | -<p>In case you don't want to use a real SQL Server Database when running the<code>IdentityServer</code> project simply set<strong>UseInMemoryStores: true</strong> in the relative<em>appsettings.json</em></p> |
| 182 | +<p>In case you don't want to use a real SQL Server Database when running the<code>IdentityServer</code> project simply set<strong>UseInMemoryStores: true</strong> in the relative<em>appsettings.json</em> This option will use in memory database</p> |
130 | 183 | </blockquote> |
131 | 184 |
|
132 | 185 | <h3style="font-weight:normal;">Follow chsakell's Blog</h3> |
|