The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.
このページを編集

.propertiesファイルと共にSecurityを使用

Quarkusでは、開発およびテストを目的としたプロパティファイルベースの認証がサポートされています。現時点では、平文およびMD5ハッシュ化されたパスワードのみが使用され、プロパティファイルは一般に制限が多い為、この認証を本番環境で使用することは推奨されていません。

以下をビルドファイルに追加してください:

pom.xml
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-elytron-security-properties-file</artifactId>
</dependency>
build.gradle
implementation("io.quarkus:quarkus-elytron-security-properties-file")

設定

elytron-security-properties-fileエクステンションは現在、認証と認可の情報を保存するための2つの異なるレルムをサポートしています。どちらもこの情報をプロパティファイルで保存することをサポートしています。

以下のセクションでは、具体的な設定プロパティの詳細を説明します。

ビルド時に固定される構成プロパティ - 他のすべての構成プロパティは実行時にオーバーライド可能

Configuration property

タイプ

デフォルト

quarkus.security.users.embedded.plain-text

If the properties are stored in plain text. If this is false (the default) then it is expected that the passwords are of the form HEX( MD5( username ":" realm ":" password ) )

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_PLAIN_TEXT

Show more

ブーリアン

false

quarkus.security.users.embedded.algorithm

Determine which algorithm to use.

This property is ignored if plainText is true.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ALGORITHM

Show more

digest-md5, digest-sha, digest-sha-256, digest-sha-384, digest-sha-512, digest-sha-512-256

digest-md5

quarkus.security.users.embedded.users."users"

The realm users user1=password\nuser2=password2…​ mapping. See Embedded Users.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_USERS__USERS_

Show more

Map<String,String>

none

quarkus.security.users.embedded.roles."roles"

The realm roles user1=role1,role2,…​\nuser2=role1,role2,…​ mapping See Embedded Roles.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ROLES__ROLES_

Show more

Map<String,String>

none

Property Files Realm Configuration

タイプ

デフォルト

quarkus.security.users.file.realm-name

The realm name. This is used when generating a hashed password

Environment variable: QUARKUS_SECURITY_USERS_FILE_REALM_NAME

Show more

string

Quarkus

quarkus.security.users.file.enabled

Determine whether security via the file realm is enabled.

Environment variable: QUARKUS_SECURITY_USERS_FILE_ENABLED

Show more

ブーリアン

false

quarkus.security.users.file.plain-text

If the properties are stored in plain text. If this is false (the default) then it is expected that the passwords are of the form HEX( MD5( username ":" realm ":" password ) )

Environment variable: QUARKUS_SECURITY_USERS_FILE_PLAIN_TEXT

Show more

ブーリアン

false

quarkus.security.users.file.users

Classpath resource name of properties file containing user to password mappings. See Users.properties.

Environment variable: QUARKUS_SECURITY_USERS_FILE_USERS

Show more

string

users.properties

quarkus.security.users.file.roles

Classpath resource name of properties file containing user to role mappings. See Roles.properties.

Environment variable: QUARKUS_SECURITY_USERS_FILE_ROLES

Show more

string

roles.properties

Embedded Realm Configuration

タイプ

デフォルト

quarkus.security.users.embedded.realm-name

The realm name. This is used when generating a hashed password

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_REALM_NAME

Show more

string

Quarkus

quarkus.security.users.embedded.enabled

Determine whether security via the embedded realm is enabled.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ENABLED

Show more

ブーリアン

false

プロパティーファイルレルム設定

プロパティファイルレルムは、プロパティファイルの組み合わせにより、ユーザーをパスワードに、ユーザーをロールにマッピングすることをサポートしています。これらは、 quarkus.security.users.file で始まるプロパティで設定されます。

プロパティファイルレルム用の application.properties ファイルセクションの例
quarkus.security.users.file.enabled=true
quarkus.security.users.file.users=test-users.properties
quarkus.security.users.file.roles=test-roles.properties
quarkus.security.users.file.realm-name=MyRealm
quarkus.security.users.file.plain-text=true

Users.properties

quarkus.security.users.file.users 設定プロパティは、ユーザーとパスワードのマッピングを1行に1つずつ記述したプロパティファイルであるクラスパスリソースを指定します。

次の test-users.properties の例 はそのフォーマットを示しています:

test-users.properties の例
scott=jb0ss (1)
jdoe=p4ssw0rd (2)
stuart=test
noadmin=n0Adm1n
1 ユーザー scott のパスワードは jb0ss と定義されています。
2 ユーザー jdoe のパスワードは p4ssw0rd と定義されています。

このファイルでは、ユーザー名とパスワードがプレーンテキストで保存されていますが、これは推奨されません。設定でプレーンテキストをfalseに設定(または省略)した場合、パスワードは MD5 ( username : realm : password ) という形式で保存する必要があります。これは、コマンドラインから echo -n scott:MyRealm:jb0ss | md5 というコマンドを実行することで、上記の最初の例で生成することができます。

Roles.properties

test-roles.properties の例
scott=Admin,admin,Tester,user (1)
jdoe=NoRolesUser (2)
stuart=admin,user (3)
noadmin=user
1 ユーザー scott には Admin, admin, Tester および user
2 ユーザー jdoe に役割が割り当てられています。 NoRolesUser
3 ユーザー stuart には adminuser の役割が割り当てられています。

組込レルムの設定

組込レルムは、ユーザーとパスワード、ユーザーとロールのマッピングもサポートします。この情報を埋め込むには、メインの application.properties Quarkus設定ファイルを使用します。これらは、 quarkus.security.users.embedded で始まるプロパティで設定されます。

以下は、組込レルムの設定を示すapplication.propertiesファイルのセクションの例です:

組込レルム用 application.properties ファイル部の例
quarkus.security.users.embedded.enabled=true
quarkus.security.users.embedded.plain-text=true
quarkus.security.users.embedded.users.scott=jb0ss
quarkus.security.users.embedded.users.stuart=test
quarkus.security.users.embedded.users.jdoe=p4ssw0rd
quarkus.security.users.embedded.users.noadmin=n0Adm1n
quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user
quarkus.security.users.embedded.roles.stuart=admin,user
quarkus.security.users.embedded.roles.jdoe=NoRolesUser
quarkus.security.users.embedded.roles.noadmin=user

最初の例と同様に、このファイルではユーザー名とパスワードがプレーンテキストで保存されていますが、これは推奨されません。コンフィグでプレーンテキストをfalseに設定(または省略)した場合、パスワードは MD5 ( username : realm : password ) という形式で保存する必要があります。これは、コマンドラインから echo -n scott:MyRealm:jb0ss | md5 というコマンドを実行することで、上記の最初の例に対して生成することができます。

組込ユーザー

ユーザーとパスワードのマッピングは、 application.properties ファイル内で、 quarkus.security.users.embedded.users.<user>=<password> という形式のプロパティ・キーによって指定されます。 次の パスワードの例 は、4つのユーザーとパスワードのマッピングの構文を示しています:

パスワードの例
quarkus.security.users.embedded.users.scott=jb0ss (1)
quarkus.security.users.embedded.users.stuart=test (2)
quarkus.security.users.embedded.users.jdoe=p4ssw0rd
quarkus.security.users.embedded.users.noadmin=n0Adm1n
1 ユーザー scott はパスワード jb0ss を持っています
2 ユーザー stuart はパスワード test を持っています

組込ロール

ユーザーとロールのマッピングは、 application.properties ファイルで、 quarkus.security.users.embedded.roles.<user>=role1[,role2[,role3[,…​]]] という形式のプロパティキーによって指定されます。 次の ロールの例 は、4つのユーザーからロールへのマッピングを持つ構文を示しています:

ロールの例
quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user (1)
quarkus.security.users.embedded.roles.stuart=admin,user (2)
quarkus.security.users.embedded.roles.jdoe=NoRolesUser
quarkus.security.users.embedded.roles.noadmin=user
1 ユーザー scott には Admin, admin, Tester, および user
2 ユーザー stuart には adminuser

関連コンテンツ