gpt4 book ai didi

c# - Azure Active Directory 回复 URL 未按预期工作

转载 作者:IT王子 更新时间:2023-10-29 04:31:02 28 4
gpt4 key购买 nike

我在 Azure Active Directory 网站配置回复 URL 中指定了两个 URL。一种是在我运行本地代码时重定向到我的本地主机环境,另一种是在我运行产品网站时重定向到我的 Azure 托管网站。但Azure Active Directory似乎忽略了该设置。它仅使用一个或另一个 URL,但不会同时使用两者。我看到了一个描述问题和可能的解决方案的链接,但它对我不起作用。链接为:

http://samritchie.net/2013/07/17/azure-ad-single-sign-on-with-multiple-environments-reply-urls/

如何设置 Azure Active Directory 以重定向到适当的环境?

最佳答案

您没有提供有关实现的详细信息,但这里有一个适用于任何情况的解决方案。

您可以使用 WIF 配置 - 这完全是 web.cofing 中的配置,或者您可以使用 OWIN,其中配置位于 Config.Auth.cs 文件中。无论哪种方式,Azure AD 的 STS 将仅使用默认回复 URI,无论调用来自何处。您必须显式设置 ReplyUrl 来指示 Azure AD 将用户返回到注册回复 URL 之一。

WIF 解决方案

当您使用 WIF 时,您的 Web 配置包含以下部分:

  <system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="true" />
<wsFederation passiveRedirectEnabled="true"
issuer="https://login.windows.net/yourtenant.com/wsfed"
realm="https://yourtenant.com/WebSingleTenant"
requireHttps="true" />
</federationConfiguration>
</system.identityModel.services>

这有点不完整!您可以向 wsFederation 标记添加回复,以指示 Azure AD 使用新的回复 URL:

  <wsFederation passiveRedirectEnabled="true" 
issuer="https://login.windows.net/yourtenant.com/wsfed"
realm="https://yourtenant.com/WebSingleTenant"
reply="http://any_registered_url/"
requireHttps="true" />

请注意,此处您只能使用已注册回复网址。

要修改回复属性,您可以安全地使用 web.config 转换,就像处理所有其他部署特定应用程序设置和连接字符串一样。

OWIN解决方案

当您使用 OWIN 时,您将拥有 Startup.Auth.cs 文件,或者您的身份验证配置将直接放入您的 Startup.cs 文件中。它看起来像下面这样:

    public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.
AuthenticationType);

app.UseCookieAuthentication(new CookieAuthenticationOptions());

app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
}

注意 OpenIdConnect 身份验证的配置设置。您可以添加 RedirectUri 属性来指示将用户重定向到的位置:

        app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = "any_registered_redirect_uri"
});

您可以将 RedirectUri 分配给 Web.Config 文件中的设置,您也可以使用 Web.Config 转换来处理该设置。

关于c# - Azure Active Directory 回复 URL 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384903/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com