Nie podajecie szczegółów na temat swojej implementacji, ale tutaj jest rozwiązanie dla każdego przypadku.
Możesz używać konfiguracji WIF - która jest w pełni konfiguracją w twoim web.cofing, lub możesz używać OWIN, gdzie konfiguracja jest w twoim pliku Config.Auth.cs. W każdym razie STS Azure AD użyje tylko domyślnego URI odpowiedzi, niezależnie od tego, skąd pochodzą połączenia. Musisz jawnie ustawić opcję ReplyUrl, aby poinstruować usługę Azure AD, aby zwróciła użytkownika z powrotem na jeden z adresów URL odpowiedzi zarejestrowanych pod numerem.
rozwiązanie WIF
Podczas korzystania WIF, twój config internetowa zawiera następujące części:
<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>
który jest nieco incomplere! Można dodać reply
do znacznika wsFederation
pouczyć Azure AD na nowy post URL:
<wsFederation passiveRedirectEnabled="true"
issuer="https://login.windows.net/yourtenant.com/wsfed"
realm="https://yourtenant.com/WebSingleTenant"
reply="http://any_registered_url/"
requireHttps="true" />
Zauważ, że tutaj można korzystać tylko z zarejestrowanych odpowiedź adresy URL.
Aby zmodyfikować atrybut odpowiedzi, można bezpiecznie używać transformacji web.config tak samo jak we wszystkich innych ustawieniach aplikacji i łańcuchu połączenia.
OWIN Rozwiązanie
Podczas korzystania OWIN, trzeba Startup.Auth.cs
plik lub konfiguracja uwierzytelniania będzie bezpośrednio do pliku Startup.cs
. Wyglądałoby to mniej więcej tak:
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.
AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
}
Zapisz ustawienia konfiguracji dla uwierzytelniania OpenIdConnect. Można dodać obiekt RedirectUri
polecić gdzie przekierować użytkownika do:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = "any_registered_redirect_uri"
});
można przypisać RedirectUri do ustawienia w pliku web.config, który również będzie można obsługiwać za pomocą przekształceń web.config.
Czy używasz OWIN do uwierzytelniania? – Aram
Nie jestem pewien, jaka jest twoja dokładna konfiguracja, dodanie konkretnej odpowiedzi do transformacji web.config pomogło. Zobacz fragment kodu konfiguracji na końcu artykułu http://do4urka.com/partial-authentication-with-azure-active-directory-with-ws-federation-in-an-mvc-application/ – DivineOps