Как добавить собственные метаданные для Kentor idprovider?

Я использую проект Kentor.AuthService.Idp в качестве отправной точки.

Поставщик услуг с поддержкой SAML, к которому я пытаюсь войти, требует, чтобы следующие атрибуты были частью файла метаданных:

идентификатор входа, идентификатор партнера, платформа, адрес электронной почты пользователя

Как добавить их в существующие метаданные или создать новые метаданные, которые включают их?

В документации поставщика услуг конкретно говорится:

список атрибутов должен содержаться в файле метаданных и в сгенерированных вами утверждениях

Удовлетворяет ли включение этих атрибутов в метаданные требованию поставщика услуг или же включение этих атрибутов в утверждение является совершенно иной задачей, чем включение их в метаданные?

2 ответа

Это две разные вещи.

Похоже, они хотят, чтобы вы указали список поддерживаемых атрибутов и метаданных. Классы метаданных System.IdentityModel, используемые AuthServices, поддерживают это, но вам придется добавить их в себя.

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

Основываясь на ответе Андерса, я придумал следующий код.

Атрибуты, поддерживаемые метаданными

var descriptor = new IdentityProviderSingleSignOnDescriptor();
descriptor.SupportedAttributes.Add(new Saml2Attribute("platform", "desktop"));
descriptor.SupportedAttributes.Add(new Saml2Attribute("partnerid", "partner123"));
descriptor.SupportedAttributes.Add(new Saml2Attribute("login-id", "user9"));
descriptor.SupportedAttributes.Add(new Saml2Attribute("useremail", "donotreply@domain.com"));

Атрибуты сгенерированных утверждений

var claims = new List<Claim>();
claims.Add(new Claim("platform", "desktop"));
claims.Add(new Claim("partnerid", "partner123"));
claims.Add(new Claim("login-id", "user9"));
claims.Add(new Claim("useremail", "noreply@domain.com"));
var identity = new ClaimsIdentity(claims);

Я не уверен, как добавить претензии к утверждению.

Другие вопросы по тегам