【问题标题】:aspnet mvc authenticate users using OAUTH2 custom provideraspnet mvc 使用 OAUTH2 自定义提供程序对用户进行身份验证
【发布时间】:2016-09-22 21:16:47
【问题描述】:

我有一个 MVC 应用程序,它使用本地 AD 对用户进行身份验证并获取他们的角色以设置对应用程序的权限。现在我有一个新要求,我将使用外部 AD 来验证用户,而不是本地的。因此,我的应用程序会将用户重定向到客户端的登录页面,用户将输入将在其 AD 上验证的用户名和密码,然后使用令牌重定向回我的应用程序。我需要获取此令牌并再次发布到客户端点以获取 JWT 令牌。

问题是我找不到类似的好例子。我正在尝试使用 Open Id:

        app.UseOpenIdConnectAuthentication(new 

OpenIdConnectAuthenticationOptions {
                ClientId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                Authority = "https://xx.xxxxxxxxx.xxx/adfs/oauth2/authorize",
                RedirectUri = "http://localhost:27100/token",
                ResponseType = "code",
                Scope = "openid email",
                Resource = "xxxxxxxx",
                UseTokenLifetime = false,
                SignInAsAuthenticationType = "Cookies",
            });

但我收到以下错误:

无法创建以从以下位置获取配置: 'https://xx.xxxxxxxxx.xxx/adfs/oauth2/authorize/.well-known/openid-configuration

如果我在本地浏览器上打开完整的 URL,我可以看到客户 AD 的登录页面。我不确定 OpenIdAuthentication 是否适合这种情况,我正在尝试这个,因为它具有我需要设置的所有属性。还有其他方法可以实现吗?

【问题讨论】:

    标签: asp.net-mvc jwt adfs asp.net-4.5 oauth2


    【解决方案1】:
    【解决方案2】:

    .well-know/openid-configuration 端点应该解析为如下所示:

    您可能只需将Authority 属性更新为这些值之一(取决于 STS 的运行位置):

    【讨论】:

    • 两个 URL 都将我重定向到登录页面。似乎它在重定向之前设置了一个cookie。我已向客户发送了一封电子邮件,要求提供该端点。
    • 我不确定是否应该使用 OpenId 或者是否有任何其他方式
    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多