4

Keycloak 認証を Play2 プロジェクトに統合したいと考えています。この時点までに私がしたことは次のとおりです。

  • Keycloak: keycloak-1.6.1.Final.zip をダウンロードし、解凍して実行し、テスト領域といくつかのロールを作成してセットアップしました
  • サンプルの js-console ( https://github.com/keycloak/keycloak/tree/master/examples/js-console )をダウンロードして構成し、実行しました。
  • ユーザーを作成し、js-console でログインできました。ユーザーは期待どおりにキークローク管理に表示されます
  • バックエンドも保護したいと思います。これは Maven ビルドの Play2 プロジェクトです (play2-maven-plugin を使用: https://code.google.com/p/play2-maven-plugin/ ) 。
  • バックエンドは REST API を発行します。これらの呼び出しは、複数のロールを持つ認証済みユーザーのみが利用できる必要があります。

この時点まで、これを行うための解決策を見つけることができませんでした。ユーザーとロールに適用する必要がある制限を宣言的に表現できる Deadbolt に出会いましたが、Play2 で使用する keycloak 用のアダプターを見つけることができませんでした。

似たようなことをした人はいますか?解決策は、コアKeycloakメソッドを構成してから呼び出すことにより、カスタムアダプターを作成することだと思います。

この「Keycloak Standalone Adapter」の作成について考えている人はいますか?

4

2 に答える 2

5

これらの 2 つのブログ エントリが役に立ちました。

  1. Keycloakによるユーザー認証

    KeyCloakakka-http

    https://blog.scalac.io/user-authentication-with-keycloak-part1.html

    https://blog.scalac.io/user-authentication-with-keycloak-part2.html

  2. Scala と Play フレームワークを使用して API を構築し、保護する

    Auth0play framework

    https://auth0.com/blog/build-and-secure-a-scala-play-framework-api/

于 2019-03-29T09:48:47.187 に答える
0

使用する認証メカニズム (openid-connect または SAML) によって異なります。私が取り組んでいたアプリケーションでは、openid-connect を選択しました。現時点で、このプロトコルをサポートする唯一の play2 ライブラリはhttps://github.com/pac4j/play-pac4jです。注意が必要な部分は、キークロークがプレイ サーバーに送り返すトークン内の情報をエンコードする方法を理解することでした。Base64エンコーディングを行うことでそれを行います。ユーザー情報を抽出するために、keycloak-js-adapter からアルゴリズムを変換しました。その後、セキュリティ トレイトを使用するか、承認されたユーザー情報を含むカスタム リクエスト ラッパーを作成できます。

于 2015-12-25T19:23:48.880 に答える