2016-11-28 2 views
0

У меня есть приложение MVC на основе Owin, которое использует мой веб-api для обеспечения множества функций. В настоящий момент пользователь должен зайти на оба из них отдельно (используя вызовы ajax, на странице входа я делаю логин для веб-api и получаю также токен), но оба используют одну и ту же таблицу, поэтому есть только одно место для хранить информацию о пользователе.Как использовать учетные данные одного пользователя в разных связанных с Owin приложениях MVC и веб-API?

К сожалению, другие приложения MVC используют отдельные имя пользователя и пароли и не используют упомянутый api. Как и сейчас, я должен создать новое приложение MVC, которое снова является тем же самым доменом. Я ищу способ использовать одно имя пользователя и пароль (управляемый одним основным приложением MVC) по любой причине, в которой это необходимо, то есть все приложения MVC и веб-API используют одно и то же имя пользователя и пароль, и поэтому, например, я могу использовать атрибут [Authorize] или роли ... во всех них.

Есть ли известное решение для этого? Соответствует ли создание сервера авторизации OAuth этой проблеме?

+0

извините, но почему косяк каждое приложение называть вас веб-интерфейс для целей аутентификации/авторизации, а затем делать свое дело? – CodingYoshi

+0

@CodingYoshi Они, очевидно, могут, но вопрос в том, как все они должны быть авторизованы с одинаковыми учетными данными? – mok

+0

Проверьте это https://github.com/WinLwinOoNet/AspNetMvcActiveDirectoryOwin. Вы можете настроить его, я уверен, что он вызывает вашу базу данных вместо AD. – CodingYoshi

ответ

0

Внедрение единого входа с использованием OpenID Connect поверх OAuth2 соответствует вашим требованиям. checkout identityServer3 или identityServer4, если вы используете .net core.

В основном вам необходимо настроить общий полномочный орган STS, и все ваши приложения будут использовать этот полномочия для проверки запросов с использованием промежуточного программного обеспечения OWIN для проверки действительности маркера.

При первом входе в систему, орган STS выдаст токен для пользователя, и вам необходимо будет управлять через ваш внешний/конечный код, повторно используя токен при навигации по нескольким приложениям/доменам.

C# ASP.NET Single Sign-On Implementation

+1

Спасибо, на самом деле IdentityServer3 - это именно то, что мне нужно. – mok

Смежные вопросы