Я использую. net базовую аутентификацию Identity server4 для моего vue js клиентского приложения. У меня есть поддержка мультитенанта. Я использую библиотеку сценариев oid c client java на стороне клиента для аутентификации.
Конфигурация на стороне клиента будет такой
authority: 'http://identity.identityserver.com/',
"redirect_uri": "http://app.clientapp.com/callback",
"client_id": "app1",
"grant_type": "authorization_code",
"client_secret": "secret_code",
"response_type": "code",
"scope": "openid profile web.api",
"post_logout_redirect_uri": "http://app.clientapp.com/logoutSuccess",
Конфигурация сервера идентификации будет такой
new Client
{
ClientId = "app1",
ClientName = "Vue JS APP",
ClientSecrets = new List<Secret> { new Secret("secret_code") },
AllowedGrantTypes = GrantTypes.Code,
AllowAccessTokensViaBrowser = true,
AlwaysIncludeUserClaimsInIdToken = true,
AlwaysSendClientClaims = true,
RedirectUris = { "http://app.clientapp.com/callback" },
RequireConsent = false,
PostLogoutRedirectUris = { "http://app.clientapp.com/callback/logoutSuccess" },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"web.api",
},
},
Это работает, как и ожидалось, без каких-либо проблем. Он перенаправляет на сервер идентификации, появляется логин windows, и после ввода учетных данных он успешно перенаправляется на http://app.clientapp.com/callback.
Мое требование основано на логине пользователя , я должен перенаправить пользователя на его поддомен, ie поддерживает мультитенант. Например, если пользователь "user1" tenant1, даже если URL-адрес обратного вызова настроен как http://app.clientapp.com/callback, при успешном перенаправлении пользователь должен перенаправить на http://tenant1.clientapp.com/callback . Я сделал необходимые изменения на сервере идентификации, чтобы переопределить это с помощью IRedirectUriValidator. И он перенаправляет обратно http://tenant1.clientapp.com/callback. Но проблема в том, что oid c -клиент на стороне клиента выдает сообщение «В хранилище не найдено подходящего состояния».
Может ли кто-нибудь помочь в этом вопросе.
Заранее спасибо.