/ / Von IdP initiierter Datenfluss - Identifizieren Sie das Okta-Konto - Okta, Kentor-Authentifizierungsdienste

IdP-gestarteter Fluss - Identifiziere Okta Account - Okta, Kentor-Authservices

Ich habe eine MVC - Anwendung (.Net Framework 4.5) die seit drei Jahren dort ist und den Formularauthentifizierungsmechanismus verwendet. Diese Anwendung bietet verschiedene Konten wie Persönlich, Werbegeschenk, Unternehmen usw. Für ein Unternehmenskonto bearbeiten wir alles in derselben Anwendung. Das heißt Angenommen, ein Unternehmen mit dem Namen "xyz" hat mit der Anwendung ein Unternehmenskonto erstellt. Dann geben wir eine benutzerdefinierte URL wie "https://application/xyz/login”Und anhand der URL identifizieren wir dasUnternehmen. Ich weiß nicht genau, warum sie so implementiert wurden, da ich gesehen habe, dass Anwendungen mit Unternehmenskonten als Unterdomänen erstellt wurden (z. https://xyz.okta.com). Nun bat der Client, Okta in diese Anwendung zu integrieren. Also habe ich in Okta nachgesehen und festgestellt, dass SAML der richtige Weg ist und bei KentorIT Authservices gelandet ist. Anfangs konnte ich dies in eine MVC-Beispielanwendung integrieren, und der Authentifizierungsteil funktionierte einwandfrei. Mit einer Grundidee zu SSO habe ich begonnen, Kentor-Authentifizierungsservices in meine Anwendung zu integrieren. Die Herausforderungen, die ich bei dieser Implementierung festgestellt habe, sind:

1) Für Enterprise-Konten Okta-KonfigurationDie Einstellungen sind für jedes Unternehmen unterschiedlich und bei meiner aktuellen Anwendungsimplementierung ist es nicht möglich, sie in der web.config festzulegen. Also habe ich versucht, es aus dem Code zu setzen, und ich konnte diese Einstellungen integrieren, indem ich sie ersetzte Configuration.Options.FromConfiguration;. Ich plane, alle konfigurationsbezogenen Daten zu speichernDinge (Single Sign-On-URL, Zielgruppen-URI, Aussteller des Identitätsanbieters "usw.) in der Datenbank, damit ich die gewünschten Informationen erhalten kann, und ich gehe davon aus, dass die Aussteller-ID des Identitätsanbieters für jedes Okta-Konto eindeutig ist Wenn der Benutzer versucht, auf die Anwendung zuzugreifen, wird ein von IdP initiierter Flow zur Aktionsmethode AuthServicesAcs umgeleitet, und von dort aus versuche ich, die Konfigurationseinstellungen zu lesen (wie Identity Provider Issuer)? Zur Zeit habe ich die "Aussteller des Identitätsanbieters"Wert (und ich denke, der sollte einzigartig sein fürokta account) in das Feld Default RelayState unter der Registerkarte General SAML settings (Allgemeine SAML-Einstellungen) und ich konnte es von den AuthServicesAcs-Aktionsmethoden abrufen. Scheint es eine gute Idee zu sein? Bitte um Rat.

2) Die Enterprise-Konten sind begrenzt aufdie Anzahl der Lizenzen (sagen wir 50). Angenommen, wenn der Enterprise Okta-Administrator absichtlich 55 Benutzer hinzugefügt hat, können alle diese Benutzer die Anwendung basierend auf den Standardeinstellungen erfolgreich authentifizieren. Gibt es eine Möglichkeit, mit diesem Szenario umzugehen? Muss ich die Liste der Benutzer aufzeichnen, die unter ein bestimmtes Unternehmenskonto fielen?

3) Aus den Unterlagen verstehe ich, dass KentorDer Authentifizierungsdienst dient nur zur Authentifizierung und der Autorisierungsteil muss von der Anwendung selbst ausgeführt werden. Die aktuelle Anwendungsimplementierung besteht aus einem benutzerdefinierten Berechtigungsattribut, das nach in der Datenbank gespeicherten Benutzerberechtigungen sucht. Das sollte so sein, wie es ist, und wir müssen die Autorisierung basierend auf Datenbankberechtigungen durchführen. Recht?

Erwarten Sie Ihre wertvollen Vorschläge und korrigieren Sie mich bitte, wenn ich mich irre. Vielen Dank im Voraus.

Antworten:

4 für die Antwort № 1
  1. Verwenden Sie den RelayState nicht für vertrauliche Datenes sei denn, Sie signieren es kryptografisch. Bei Verwendung der POST-Bindung ist sie nicht durch eine Signatur geschützt, sodass der Benutzer sie manipulieren kann. Um die ausstellende IDP zu ermitteln, überprüfen Sie stattdessen das Feld für den Aussteller eines von AuthServices generierten Anspruchs.

  2. Ja.

  3. Ja, das ist die ganze Idee bei Kentor.AuthServies: Die SAML2-Authentifizierung in das Sicherheitsmodell von .NET einbinden, damit Sie jedes aktuelle / herkömmliche Autorisierungssetup verwenden können.