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

デフォルト

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

boolean

false

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

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

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_USERS

Show more

Map<String,String>

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

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ROLES

Show more

Map<String,String>

Property Files Realm Configuration

デフォルト

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

Environment variable: QUARKUS_SECURITY_USERS_FILE_REALM_NAME

Show more

string

Quarkus

Determine whether security via the file realm is enabled.

Environment variable: QUARKUS_SECURITY_USERS_FILE_ENABLED

Show more

boolean

false

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

boolean

false

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

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

デフォルト

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

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_REALM_NAME

Show more

string

Quarkus

Determine whether security via the embedded realm is enabled.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ENABLED

Show more

boolean

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