У меня есть одностраничное приложение, которое взаимодействует с веб-API, который я пытаюсь защитить с помощью Azure Active Directory.Я делал это перед использованием локальной базы данных SQL с локальными учетными записями и OAuth2, но я никогда не делал этого с Azure Active Directory.
Я создал новый проект веб-API MVC в Visual Studio 2017 и установил проверку подлинностичасть в «Облако - Единая Организация» и введен в соответствующий домен.API заставил меня войти в процессе создания.Предоставленная мной информация для входа была введена в файл Web.Config.
<appSettings>
<add key="ida:Tenant" value="domain.net" />
<add key="ida:Audience" value="domain.net/WebAPI" />
<add key="ida:ClientID" value="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
<add key="ida:Password" value="XXXXXXXXXXXXXXXXXXXXXXXXXXX" />
</appSettings>
Затем в новом файле Startup.Auth.cs у меня есть следующее:
public partial class Startup
{
// For more information on configuring authentication, please visit https://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
TokenValidationParameters = new TokenValidationParameters {
ValidAudience = ConfigurationManager.AppSettings["ida:Audience"]
},
});
}
}
Не знаюЯ не вижу пути, по которому я могу позвонить туда, чтобы инициировать вход в систему.В моем исходном проекте это был путь / Token, который показан ниже из моего исходного файла Startup.Auth.cs.
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromHours(12),
RefreshTokenProvider = new ApplicationRefreshTokenProvider(),
};
В моем исходном проекте для инициализации входа в систему я использовал бы / Token вВызовите Ajax и передайте имя пользователя и пароль.
$.ajax({
url: url.getURL() + '/token',
method: 'POST',
data: {
username: username,
password: password,
grant_type: 'password'
},
Как инициировать вход в систему в новом веб-API, использующем Azure Active Directory?Я не вижу пути / токена или чего-либо подобного в файле Startup.Auth.cs.Это то, что я должен добавить, или в настройках проекта автоматически используются учетные данные, которые я ввел при первом создании проекта?