Рейтинг:
12
Yonathan1111
Мое решение вышло простым!
Что я сделал, так это подготовил конечную точку от IdentityServer, в которой маркеры проверяются.
Затем я написал простую библиотеку nodjes, на которую ссылается служба nodejs и использует ее для отправки токена и проверки его подлинности сервером IdentityServer.
Служба nodejs, когда приходит запрос, проверяет заголовок и извлекает маркер.
Сделав это, я включил авторизацию для конечных точек, которые должны быть защищены.
С уважением
Рейтинг:
0
Christian Graus
Это настройка авторизации по .Объем сердечника. Это имеет мало общего с сервером идентификации.
.AddIdentityServerAuthentication (options => {
options.Authority = "http://localhost:5000/";
options.RequireHttpsMetadata = false;
options.ApiName = "api1";
});
Эта строка вызывает промежуточное программное обеспечение, предоставляемое IdentityServer.
Я погуглил и нашел вот это
Сертифицированный OpenID Реализации Подключения – OpenID[
^]
Yonathan1111
дорогой Кристиан, могу ли я зарегистрировать свое node-приложение на identityserver
когда он стартует?
Christian Graus
Ваш код использует библиотеку C# для использования сервера идентификации. Я связался с библиотекой узлов, чтобы использовать identity server. Вам нужно будет прочитать документы, чтобы увидеть, как его использовать
Yonathan1111
отлично! тогда я смогу достичь того, чего хочу ... большое спасибо
Christian Graus
удачи вам!!
Yonathan1111
Дорогой Кристиан,
Я выполнил половину задания, и это было мотивирующе, чтобы увидеть значения..здесь ниже я приложил кусок кода..Теперь я каким-то образом сложен, пожалуйста, дайте мне некоторые подсказки, как я могу действовать..
const { Issuer } = require('openid-client');
Эмитент.discover('http://localhost:9011/') // => обещание
.then(функция (hisabIssuer) {
консоли.журнала('обнаружен эмитента, %ы %о', hisabIssuer.эмитента, hisabIssuer.метаданные);
const client = новый hisabIssuer.Клиент({
client_id: 'zELcpfANLqY7Oqas',
client_secret: 'TQV5U29k1gHibH5bx1layBo0OSAvAbRT3uyw3ewrsybb5swxjvfwua1bs8lqzxg/0v9wruMcrGadany3'
}); // => клиент
клиента.authorizationUrl({
redirect_uri: 'http://localhost:9011/connect/authorize',
область применения: 'api1',
}); // => String (URL)
});
вопрос, который у меня есть, заключается в том, как я могу зарегистрировать свое клиентское приложение в приложении nodejs, чтобы оно могло получить доступ к определенному endpoint..in другими словами, как я могу авторизовать конечную точку в приложении nodejs, поскольку вся аутентификация и авторизация обрабатываются identityserver, как вы можете видеть из кода..заранее спасибо..?
Christian Graus
Если вы войдете в Azure AD, то получите обратно токен. Чтобы добавить аутентификацию к вашим конечным точкам, вам нужно передать и проверить маркер в вашем внутреннем коде. Таким образом, Вы делаете это в своем коде C#, а не в своем интерфейсном коде. Почему вы используете nodejs и C#?
Yonathan1111
Таким образом, в моем случае у меня есть identity-server4, который отвечает как за аутентификацию, так и за авторизацию..архитектура здесь у меня есть микросервисы, некоторые из них разрабатываются с использованием nodejs, а некоторые-нет .netcore..so мне нужно было обезопасить всю систему с помощью identity-server4, что является конечной целью.
Я добился этого для сервисов .netcore, и следующая задача-обеспечить безопасность сервисов nodejs..вот почему он швы его перепутал..
токены управляются сервером идентификации, и, насколько мне известно, другие службы должны регистрироваться как api-ресурс на сервере идентификации, чтобы они могли защитить свою конечную точку, когда клиентские приложения пытаются получить к ним доступ.
пожалуйста, поправьте меня, если я упущу эту концепцию здесь..большое спасибо