C#ベースのMVCアプリケーション内での認証にIdentity Server 4を使用することを検討しています。有効なユーザーのソースとしてAzure ADに保存されているアカウントを使用したいのですが、ドキュメントではGoogleとOpenIDのみを参照しているようで、Azureについてのみ言及しています。
Identity Server 4でAzure ADを使用するコンテキストでAzure ADを使用する方法に関する優れたドキュメントやチュートリアルを知っている人はいますか?
たとえば、IdentityServerへのサインインを使用するのと同じように、IdentityServerからAzure ADへのサインインを使用できます。 JavascriptまたはMVCアプリ。
最近これを行いました。あなたがする必要があるのは、次のようにOpenIdConnectオプションをAzure Adに登録することだけです。
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
});
}
これについての詳細はこちら: https://docs.Microsoft.com/en-us/Azure/active-directory/develop/active-directory-devquickstarts-webapp-dotnet
次に、ログインアクションでChallengeAsyncメソッドを呼び出す必要があります。
var authenticationProperties = new AuthenticationProperties { RedirectUri = "your redirect uri" };
await HttpContext.Authentication.ChallengeAsync(your policy, authenticationProperties);
次に、コールバックメソッドをGETメソッドとして提供し、IdentityServerサンプルで提供される外部ログインサンプルに従います。 https://github.com/IdentityServer/IdentityServer4.Samples/blob/dev/Quickstarts/4_ImplicitFlowAuthenticationWithExternal/src/QuickstartIdentityServer/ Quickstart/Account/AccountController.cs
github上のAzure ADのサンプル があり、 IdentityServerサンプル で提供される外部ログインサンプルから分岐しています。
サンプルは既知の問題も修正しました "ミドルウェアによって生成された状態パラメーターはAzure AD#978には大きすぎます"