Code Monkey home page Code Monkey logo

keycloak-growi's Introduction

KeycloakとGrowiの連携を自動化

要約

DockerでKeycloakとGrowiを立ち上げ、SAML認証のお互いの設定をスクリプトで行う。

KeycloakとGrowiの初期設定

paramas.jsonに初期設定を書き込んでください。

python-app/にあるsetjson.pyを実行することでgrowi, keycloakの初期設定やSAML設定に関する情報をjsonファイルに自動的に書き込んでくれます。

{
    "realmName": "test04",
    "keycloakUsername": "ssouser",
    "keycloakPassword": "ssopass",
    "keycloakUrl": "https://keycloak_mima.com",
    "growiUrl": "https://growimima.com",
    "growiUsername": "username",
    "growiName": "name",
    "growiEmail": "[email protected]",
    "growiPassword": "password"
}

keycloakに関する設定

  • realmName

にkeycloakに作成するRealmの名前を設定してください。

  • keycloakUsername
  • keucloakPassword

にそれぞれSAML認証のためのusernameとpasswordをそれぞれ設定してください。

  • keycloakUrl

にkeycloakのurlを設定してください。

growiに関する設定

  • growiUrl

にgrowiのurlを設定してください。

  • growiUsername
  • growiName
  • growiEmail
  • growiPassword

ではgrowiのアカウントのusername, name, emailアドレス, passwordをそれぞれ設定してください。

pythonの設定と実行方法

pythonはDockerの公式イメージのpython3を使用しました。

python-app/Dockerfileでpython3をコンテナ内で立ち上げ、requirements.txtで必要ないくつかのpythonのライブラリをインストールしています。

ターミナルでコンテナを立ち上げて、pythonが立ち上がっているコンテナ(ここではpython-app)へdocker-compose exec python-app bashで入って以下のようにpythonを実行してください。

docker-compose up -d
docker-compose exec python-app bash

python setjson.py
python setKeycloak.py 
python setGrowi.py

注意

GrowiでSAMLの設定をする際に、Keycloakのrealmに関するX.509証明書が必要になるので先に、KeycloakのSAML設定を行ってください。(python setKeycloak.pyをおこなってから、python setGrowi.pyをおこなってください。)

setKeycloak.py

  • setKeycloak.pyのkeycloak_urlはdocker-compose.ymlでkeycloakを立ち上げているサービス名、ポート番号で設定してください。(ここでは、サービス名は'keyclaok', ポート番号は'8080')
  • create_realm(), create_client(), create_users()関数でrealm, client, userを設定しています。 また、get_cert(), write_realm_to_growijson(realmName)でGrowiのSAML認証の設定に必要な設定をgrowi/下のjsonファイルに書き込むので、先にこちらを実行してください。

setGrowi.py

  • setGrowi.pyでも同じように、以下のurlはdocker-compose.ymlでgrowiを立ち上げているサービス名、ポート番号で設定してください(ここでは、サービス名は'app', ポート番号は'3000')
  • 初めてsetGrowi.pyを実行する際にはログインをするset_login()を実行する必要はありません。set_install()で初期設定が行われます。2回目からはset_install()ではなくset_login()でログインしてください。

参考

KeycloakとGrowiの設定は次の記事を参考にさせていただきました。シングルサインオンサービスKeycloakとWikiシステムGrowiを連携する

ありがとうございます。

keycloak-growi's People

Watchers

kaisei mima avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.