[JAVA] Was ist Schlüsselumhang?

Einführung

Diesmal schreibt plötzlich ein freiwilliges Mitglied von NRI OpenStandia einen Adventskalender für Keycloak. In den letzten 25 Tagen möchte ich Ihnen etwas über die Funktionen von Keycloak erzählen, was Sie verstehen können, wenn Sie es tatsächlich berühren, und über die Bemühungen von Keycloak bei NRI OpenStandia.

Warum Schlüsselumhang?

Keycloak ist eine Open-Source-Software zur Verwaltung des Identitätszugriffs. Es realisiert Single Sign-On und API-Zugriffsauthentifizierungs- / Autorisierungskontrolle und ist einer der Nachzügler in diesem Bereich. Die Community-basierte Entwicklung ist derzeit im Gange und gilt als eine der dynamischsten Software in diesem Bereich. Das Technologie-Radar von Thoutht Works, eine bekannte Quelle für Technologietrends, hat sich im März (März 2017) erstmals einen Namen gemacht. In der neuesten Version hat sich die Bewertung neulich von ASSESS zu TRIAL geändert und erhält immer mehr Aufmerksamkeit. https://www.thoughtworks.com/radar/platforms/keycloak image.png

Wie hoch ist die Aufmerksamkeit in der Welt und in Japan?

Als Referenz habe ich mir die Aufmerksamkeitsstufe der letzten 5 Jahre bei Google Trends angesehen. (Im Vergleich zu OpenAM, das kürzlich auf kommerzielles Handling umgestellt wurde)

■ Öffnen Sie AM v.s. Keycloak weltweit, 5-Jahres-Version WS000034_枠.jpg

■ Öffnen Sie AM v.s. Keycloak Japan, 5-Jahres-Version WS000035_枠.jpg

Während es weltweite Aufmerksamkeit erlangt, scheint es, dass es in Japan noch nicht weit verbreitet ist. NRI hofft auch, zur Aufregung von Keycloak in Japan beitragen zu können.

: point_up_2: NRI behandelt ForgeRock Open AM weiterhin wie zuvor. ForgeRock ist ein unbestrittener Marktführer auf diesem Gebiet mit einer herausragenden Funktion und Erfolgsbilanz. Wir glauben, dass es notwendig ist, sie gemäß den Anforderungen des Kunden richtig zu verwenden.

Bemühungen anderer Unternehmen

Hitachi ist berühmt als Unternehmen, das Informationen zu Keycloak in Japan verbreitet. Weitere Informationen finden Sie im @ IT-Artikel unten. http://www.atmarkit.co.jp/ait/articles/1708/31/news011.html

Funktionen von Keycloak

Funktion in Server Admin (japanische Version) des Keycloak-Dokuments Da es eine Beschreibung über gibt, werde ich von dort zitieren.

Ich denke, ich kann einige Details in diesem Keycloak by OpenStandia Adventskalender 2017 vorstellen. Bitte freuen Sie sich darauf!

Keycloak Lizenz

Keycloak wird unter der Apache 2.0-Lizenz vertrieben. Sie können den Quellcode frei ändern und veröffentlichen, sofern die Nutzungslizenz eindeutig angegeben ist. Ich denke, es ist einfach, ihn zu verwenden, indem Sie ihn in Ihr eigenes Produkt integrieren.

Funktionsvergleich mit OpenAM

Vergleichen wir es mit OpenAM, einem repräsentativen Produkt von SSO, mit einer etwas detaillierteren Funktion.

Kategorie Funktion Keycloak OpenAM
Authentifizierung 多要素Authentifizierung
OTP
Risikobasierte Zertifizierung
Desktop-SSO
Externe IdP-Authentifizierung
Proxy-Authentifizierung ○※1
Genehmigung Zugriffssteuerung für Benutzerattribute △※2
Rollenbasierte Zugriffskontrolle △※2
Andere Zugriffskontrolle (URL, IP-Adresse, Zeitzone usw.) △※2
Selbstbedienung Kontoregistrierung
Passwort zurücksetzen
Benutzerattributverwaltung
Agent/Client-Adapter Unterstützte Plattformen Wenige Viele
Andere Unterstützung für Standardprotokolle(SAML2.0/OIDC1.0/OAuth2.0)
Unterstützung für ältere Standardprotokolle(SAML1.x/WS-Föderation etc.)
Codebasis klein Enorm
öffnen/geschlossen öffnen バージョン13系まではöffnen、以降は最新版はgeschlossen

Wenn man es so betrachtet, ist OpenAM in Bezug auf die Funktionalität mit ○ überwältigend. Um ehrlich zu sein, ist es OpenAM in Bezug auf die Funktionalität immer noch unterlegen, aber ich denke, es ist einfach zu warten, da die Codebasis klein ist, da es sich um neue Software mit wenig früheren Fesseln handelt.

Leider wurde es Ende letzten Jahres nach Version 13 von OpenAM geschlossen (die neueste Version wird etwa zwei Jahre nach ihrer Veröffentlichung als OSS veröffentlicht). Wenn es um ** OSS ** SSO-Produkte geht, denke ich, dass Keycloak in Zukunft ein starker Kandidat sein wird. Tatsächlich läuft Keycloak in unserem Unternehmen bereits in der Produktion, aber es funktioniert sehr stabil: smile:

Übrigens hat unser @wadahiro neulich auf der [2. Studiensitzung der OSS Security Technology Association einen Anwendungsfall angekündigt. Bitte beziehen Sie sich auf dieses Material.

Wichtige Umhangmerkmale

In Keycloak wird zusätzlich zum Haupttext SAML2.0 / OAuth2.0 / OIDC-Authentifizierungs- / Autorisierungsserver ** Clientadapter ** verteilt. Der Clientadapter entspricht einem Agenten in OpenAM und wird verwendet, indem er in eine Anwendung oder einen Anwendungsserver integriert wird, die dem SSO-Schutz unterliegen. Es ist die sogenannte Agentenmethode, die oft als SSO-Methode bezeichnet wird. Der Clientadapter kommuniziert mit dem Keycloak-Server unter Verwendung des Standardprotokolls anstelle der Anwendung und realisiert SSO.

Es gibt zwei große Client-Adapter, einen für OpenID Connect und einen für SAML 2.0. Unten finden Sie eine Liste der unterstützten Plattformen und ihrer Versionen (ab Keycloak 3.4.0.Final).

Für OpenID Connect

Unterstützte Plattformen Entsprechende Version
Keycloak Proxy -
WildFly 10, 9, 8
JBoss EAP 7, 6
JBoss AS 7.1
JBoss Fuse 6.2, 6.3
JavaScript -
Jetty 9.4, 9.3, 9.2, 9.1, 8.1
Tomcat 8, 7, 6

Für SAML 2.0

Unterstützte Plattformen Entsprechende Version
WildFly 10, 9
JBoss EAP 7, 6
JBoss AS 7.1
Jetty 9.4, 9.3, 9.2, 8.1
Tomcat 8, 7, 6

Einer der etwas spezielleren Adapter ist der Keycloak Proxy. Dies ist ein Reverse-Proxy, der unabhängig arbeitet und SSO vom Typ Reverse-Proxy ausführt. Die Details werden am 7. Tag von @yagiaoskywalker geschrieben. Bitte lesen Sie das auch.

Außerdem möchte ich mit Keycloak andere SSO-Anwendungen als die oben genannten unterstützten Plattformen! Mach dir zu diesem Zeitpunkt keine Sorgen. Keycloak unterstützt Standardprotokolle (oder kann nur sprechen). Wenn Ihre Anwendung also SAML 2.0 oder OpenID Connect unterstützt, können Sie problemlos SSO ausführen. Wenn es sich um eine Paketsoftware oder einen Cloud-Dienst eines bekannten Ortes handelt, gibt es meiner Meinung nach viele Orte, die SAML 2.0 oder OpenID Connect unterstützen. Selbst für Scratch-Entwicklungsanwendungen sollten moderne Frameworks und Bibliotheken SAML 2.0 oder OpenID Connect relativ einfach unterstützen können.

Wenn es jedoch um die Unterstützung vorhandener Anwendungen geht, gibt es viele Fälle, in denen Sie den Umfang der Änderungen verringern möchten, indem Sie den Umfang der Auswirkungen verringern. In einem solchen Fall kann eine SSO-Methode vom Reverse-Proxy-Typ, die SSO durch Einrichten eines Reverse-Proxy-Servers vor der Anwendung ausführt, besser sein. In diesem Fall kann SSO unterstützt werden, wenn die Anwendung geringfügig geändert wird, um sich mit der im HTTP-Header der Anforderung verknüpften Benutzer-ID zu authentifizieren.

Zusätzlich zum von Keycloak bereitgestellten Keycloak-Proxy gibt es mehrere Proxyserver, die SAML2.0 / OpenID Connect in OSS unterstützen, um SSO vom Typ Reverse Proxy zu realisieren. Es gibt mod_auth_openidc für Apache als typisches, das wir oft verwenden, aber @yagiaoskywalker wird es auch am 8. Tag schreiben. Bitte bleiben Sie dran!

Adventskalender Mitglieder schreiben

Abschließend möchte ich die Mitglieder vorstellen, die in den letzten 25 Tagen den Adventskalender schreiben (planen) werden. Auf Qiita gibt es Leute, die nur mit dem Handle-Namen arbeiten wollen, also werden wir ihn hier basierend auf dem Handle-Namen vorstellen!

Name behandeln Vorstellen
@daian183 Ich habe kürzlich den externen Vertrieb und die internen Mitglieder von Keycloak usw. verwaltet.
@wadahiro Öffnen Sie Standias stolzen technischen Evangelisten(Ich mag alle Richtungen)
@tamura__246 Öffnen Sie Standias stolzen technischen Evangelisten(Ich mag OpenAM)
@kabao Öffnen Sie Standias stolzen technischen Evangelisten(DB Liebhaber)
@mamomamo Eine junge Führungskraft, die sowohl in der Unterstützung als auch in der SI aktiv ist
@izey0306 Junge Mitglieder, die sowohl im Support als auch im SI aktiv sind
@yoonis SSO/IDM-Projekterfahrung, Keycloak-Überprüfung(In unserem Unternehmen)Hauptmitglieder von
@naokiiiii SSO/IDM-Projekterfahrung, Keycloak-Überprüfung(In unserem Unternehmen)Führender Anführer
@rawr Eine erstaunliche Person, die alles schnell erledigen kann, während sie sich von der Bewerbung bis zur Basis beschwert
@katakura__pro SI durchgeführt von OpenStandia/Unterstützung/Ein Leiter, der eine Vielzahl von Aufgaben wie Wartung erledigt
@masuo3 Ingenieure und Führungskräfte, die unabhängig vom Produkt alles können
@yagiaoskywalker OpenStandias stolzer Support-Handwerker, von SSO-bezogenen Produkten bis hin zu kürzlich IDM-bezogenen Produkten
@rkato Lassen Sie sich von der Sapporo-Einheit von OpenStandia einen Artikel von Sapporo schreiben

Dieses Mal werde ich Artikel hauptsächlich für die Mitglieder von NRI OpenStandia schreiben, aber Hitachi wird auch teilnehmen! Es wird voraussichtlich um den 20. Tag erscheinen, also freuen Sie sich bitte darauf.

Na dann, danke für 25 Tage!

Recommended Posts

Was ist Schlüsselumhang?
Was ist Cubby?
Was ist java
Was ist Maven?
Was ist Jackson?
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
Was ist params
Was ist SLF4J?
Was ist Fassade? ??
Was ist Java <>?
Was ist Gradle?
Was ist POJO?
Was ist java
Was ist centOS?
Was ist RubyGem?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?
Was ist Maven Assembly?
Was ist Docker-Compose?
Was ist ein Konstruktor?
Was ist vue cli
Was ist eine Schnittstelle?
Was ist Rubys Selbst?
Was ist harte Codierung?
Was ist ein Stream?
Was ist Rubys attr_accessor?
Was ist Java-Kapselung?
Was ist die Erlaubnis verweigert?
Was ist Instanzsteuerung?
Was ist ein Initialisierer?
Was ist Spring Tools 4?
Was ist ein Operator?
Was ist Objektorientierung?
Was ist Guavas @VisibleForTesting?
Was ist ein MVC-Modell?
Was ist eine Anmerkung?
Was ist Java-Technologie?
Was ist Java API-Java?
Was ist @ (Instanzvariable)?
Was ist Gradles Artefakt?
Was ist JPA-Prüfung?
[Java] Was ist flatMap?
Was ist ein Servlet?
Was ist Webentwicklung?
[Java] Was ist ArrayList?
Was ist eigentlich objektorientiert?
Was ist HttpSession session = request.getSession ();
Was ist Java Assertion? Zusammenfassung.