Skip to content

symdon-info/symdon-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

起動方法

Middleware

docker-compose up

Application

foreman start

構成図

+-------+
|browser|
+---+---+
    |
    |
    |      +--------------------------+
    |      | react-script dev server  |
    |      |                          |
    |      |    +--------------+      |
    +-----------|keycloak-react|      |
    |      |    +--------------+      |
    |      +--------------------------+
    |
    |       +-----------------+
    |       |docker-compose   |
    |       |                 |
    |       |   +--------+    |
    +-----------|keycloak|    |
    |       |   +--------+    |
    |       +-----------------+
    |
    |       +----------------+
    +-------|server.py(flask)|
            +----------------+

シーケンス図

+-------+               +--------------+             +--------+          +----------+
|browser|               |keycloak-react|             |keycloak|          |server.py |
+-------+               +--------------+             +--------+          +----------+
    |                          |                         |                   |
    |     GET                  |                         |                   |
    |------------------------->|                         |                   |
    |                          |                         |                   |
    |     Response             |                         |                   |
    |     ページの返却         |                         |                   |
    |<-------------------------|                         |                   |
    |                          |                         |                   |
    |--------+                 |                         |                   |
    |        | ログイン開始    |                         |                   |
    |<-------+                 |                         |                   |
    |                          |                         |                   |
    |     GET                  |                         |                   |
    |--------------------------------------------------->|                   |
    |                          |                         |                   |
    |    Response              |                         |                   |
    |<---------------------------------------------------|                   |
    |                          |                         |                   |
    |    POST                  |                         |                   |
    |--------------------------------------------------->|                   |
    |                          |                         |                   |
    |       Redirect           |                         |                   |
    |        - state           |                         |                   |
    |        - code            |                         |                   |
    |<---------------------------------------------------|                   |
    |                          |                         |                   |
    |  GET                     |                         |                   |
    |------------------------->|                         |                   |
    |                          |                         |                   |
    |     Response             |                         |                   |
    |<-------------------------|                         |                   |
    |                          |                         |                   |
    |  POST                    |                         |                   |
    |      get token           |                         |                   |
    |--------------------------------------------------->|                   |
    |                          |                         |                   |
    |  Response                |                         |                   |
    |     token                |                         |                   |
    |<---------------------------------------------------|                   |
    |                          |                         |                   |
    |  GET /userinfo           |                         |                   |
    |  Authorization: Bearer   |                         |                   |
    |--------------------------------------------------->|                   |
    |                          |                         |                   |
    |  Response:               |                         |                   |
    |<---------------------------------------------------|                   |
    |                          |                         |                   |
    |  GET                     |                         |                   |
    |  Authorization: Bearer   |                         |                   |
    |----------------------------------------------------------------------->|
    |                          |                         |                   |
    |                          |                         |                   |
    |                          |                         |  GET              |
    |                          |                         |<------------------|
    |                          |                         |                   |
    |                          |                         |                   |
    |                          |                         |  Response         |
    |                          |                         |------------------>|
    |                          |                         |                   |
    |                          |                         |                   |
    |  Response                |                         |                   |
    |<-----------------------------------------------------------------------|
    |                          |                         |                   |
    |                          |                         |                   |
    |                          |                         |                   |

Tasks

KeycloakとReactの認証の仕組みを実装する

簡単にするために、デフォルトのSSLモードである「外部リクエスト」のままにします。つまり、プライベートIPアドレス(localhost、127.0.0.1、192.168.xxなど)を使用している限り、KeycloakはHTTPを介して実行できますが、他のアドレスでの非HTTPS接続は拒否されます。

http://localhost:8080 /auth/realms/MyDemo/account

クライアントのパブリックアクセスタイプを選択したため(したがって、誰でもログインプロセスの開始を要求できます)、これは特に重要です。実際のアプリでは、このパターンをできるだけ制限する必要があります。そうしないと、システムをフィッシング攻撃にさらす可能性があります。ただし、開発目的では、デフォルトのままにしておくことができます。
Access TypeDescription
bearer-onlyリクエストに含まれるベアラートークンのみに依存し、自分でログインを開始しないサービス用です。これは通常、バックエンドを保護するために使用されます
confidentialログインプロセスを開始するためにシークレットを提供する必要がある。
publicフロントベースのブラウザーアプリで秘密を隠す実際の方法がない場合これを固執する必要がある
{
  "realm": "MyDemo",
  "auth-server-url": "http://host.docker.internal:8080/auth",
  "ssl-required": "external",
  "resource": "my-react-client",
  "public-client": true,
  "confidential-port": 0
}
GET http://localhost:8080/auth/realms/MyDemo/protocol/openid-connect/userinfo
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJVOHNSQjExRG90Nkh1VXBtYm9ZR2hVWE1Ed3pEUmgtbEd6RmYxWnZaNERrIn0.eyJqdGkiOiI0ZDgyNTc4Yy1iMDczLTRhOTktOTZlNy05ZWM3YmUxNjIyZDIiLCJleHAiOjE1OTY5NzkwMDksIm5iZiI6MCwiaWF0IjoxNTk2OTc4NzA5LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvTXlEZW1vIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjBlOTBmZDMwLTE5MDAtNGY3Ni04Y2Q5LWIyMDg5ZTQyNGRlNCIsInR5cCI6IkJlYXJlciIsImF6cCI6Im15LXJlYWN0LWNsaWVudCIsIm5vbmNlIjoiYWI1ZmYzYzAtYzg1Yi00MzQ2LTgxNWYtZDQ3ZDJlMjgyZjA5IiwiYXV0aF90aW1lIjoxNTk2OTc3ODEzLCJzZXNzaW9uX3N0YXRlIjoiYmI4YzQ0NjYtMTMxMC00MjFiLWJmZmMtYWZkODY5ZmUyMThhIiwiYWNyIjoiMCIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjMwMDAiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJqb2huIn0.LVAOFVzS5g84uTw39ixKYL1rPPwkarU68XB3RtaMgCWcak1DrUu0HXTFYZDzmUk7uxETbRcLJ2wCdiEB6o86PDEVvyPL43CW-EbSu-Mlcfp1Wkn61u5Hi6jPcQVXBG-tVISTKBCoatewAYym-cGeHBazOna15yso78saNMdkilYEe2FX2IBvgLN3CjS3VWks71Alm2sDP1zji0kCrC_Ds5MQk7qUoIXib-P8ykHsz8EIS5PUmMNmfBMOUSNfwfA3UVElE27-oFeYBYZ9M7N016oTsGuEVpCRX05OYzrNW5qu30P84QcTX93cHlKr1MXK-ibDv6a584PBnAiIhKVPgg

READMEをまとめる

  • [X] 起動方法
  • [X] 構成図
  • [X] シーケンス図

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published