web-dev-qa-db-ja.com

Identityserver 4およびAzure AD

C#ベースのMVCアプリケーション内での認証にIdentity Server 4を使用することを検討しています。有効なユーザーのソースとしてAzure ADに保存されているアカウントを使用したいのですが、ドキュメントではGoogleとOpenIDのみを参照しているようで、Azureについてのみ言及しています。

Identity Server 4でAzure ADを使用するコンテキストでAzure ADを使用する方法に関する優れたドキュメントやチュートリアルを知っている人はいますか?

24
PatrickA

たとえば、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

13
Espen Medbø

github上のAzure ADのサンプル があり、 IdentityServerサンプル で提供される外部ログインサンプルから分岐しています。

サンプルは既知の問題も修正しました "ミドルウェアによって生成された状態パラメーターはAzure AD#978には大きすぎます"

7