Yonathan1111 Ответов: 2

Авторизация конечной точки nodejs с помощью identityserver4


Дорогие Все,

Я запутался в том, как авторизовать свой сервис node-app с помощью identity-server4, это прямолинейно в среде dotnet, но немного запутанно здесь, в node. Я хотел обезопасить все свои сервисы(не должны иметь значения платформы..), используя Identity-Server4.

Пожалуйста, подскажите мне, как добиться этого в NodeJs..следующий фрагмент кода написан на c# dotnet мне нужен его счетчик соответствия для узла?



С уважением

Что я уже пробовал:

услуги.AddMvcCore ()
.AddAuthorization ()
.AddJsonFormatters ();

услуги.AddAuthentication ("Предъявитель")
.AddIdentityServerAuthentication (параметры =&ГТ; {
опции.Авторитет = "http://localhost:5000/";
опции.RequireHttpsMetadata = ложь;
опции.ApiName = "api1";
});

2 Ответов

Рейтинг:
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-ресурс на сервере идентификации, чтобы они могли защитить свою конечную точку, когда клиентские приложения пытаются получить к ним доступ.

пожалуйста, поправьте меня, если я упущу эту концепцию здесь..большое спасибо